Mali-G610 MC6 vs Mali-G610 MC2
On Mali-G610 (GameForce Ace, Infinix GT 20 Pro, Infinix NOTE Edge, Nothing Phone (2a) Plus, Vivo V27, Xiaomi 13T). The first driver named is compared against the second, which is the baseline.
StockMali-G610 MC2
vsCustomMali-G610 MC6
Graphics system version (Vulkan)1.3.305 to 1.1.219
Optional features (extensions)155 to 93+1 -63
Features that pass their check (validated)39 to 320 pass only on Mali-G610 MC6 7 pass only on Mali-G610 MC2
Speed test scenes (benchmark)no shared scenes
Games each driver could run (an estimate from its feature list): green likely, yellow maybe, orange limited, red no
StockDX92002+DX102006+DX112009+DX122015+Switch
CustomDX92002+DX102006+DX112009+DX122015+Switch
Mali-G610 MC2 details Mali-G610 MC6 details
Feature checks that differ (20)
| Feature | Stock | Mali-G610 MC6 | Change |
|---|---|---|---|
| borderColorSwizzle | pass | unsupported | lost |
| extendedDynamicState | pass | fail | lost |
| extendedDynamicState3DepthClampEnable | pass | unsupported | lost |
| vertexInputDynamicState | pass | unsupported | lost |
| shaderBufferInt64Atomics | pass | unsupported | lost |
| push.max_combined_image_samplers | pass | unsupported | lost |
| push.max_uniform_buffers | pass | unsupported | lost |
| borderColorSwizzleFromImage | untested | unsupported | changed |
| extendedDynamicState3DepthClipEnable | untested | unsupported | changed |
| extendedDynamicState3LineRasterizationMode | untested | unsupported | changed |
| extendedDynamicState3ProvokingVertexMode | untested | unsupported | changed |
| extendedDynamicState3SampleMask | untested | unsupported | changed |
| extendedDynamicState3TessellationDomainOrigin | untested | unsupported | changed |
| nullDescriptor | untested | unsupported | changed |
| shaderSharedInt64Atomics | untested | unsupported | changed |
| dualSrcBlend | untested | unsupported | changed |
| inheritedQueries | untested | unsupported | changed |
| logicOp | untested | unsupported | changed |
| shaderInt64 | untested | unsupported | changed |
| wideLines | untested | unsupported | changed |
Speed test scenes (benchmark)
Neither driver has a valid speed test (benchmark report) yet.
Technical differences (Vulkan)
Extensions only in Mali-G610 MC6 (1)
- VK_EXT_rgba10x6_formats
Extensions only in Mali-G610 MC2 (63)
- VK_ANDROID_external_format_resolve
- VK_ARM_scheduling_controls
- VK_ARM_shader_core_builtins
- VK_ARM_shader_core_properties
- VK_EXT_border_color_swizzle
- VK_EXT_debug_marker
- VK_EXT_depth_clamp_zero_one
- VK_EXT_depth_clip_enable
- VK_EXT_descriptor_buffer
- VK_EXT_device_address_binding_report
- VK_EXT_device_fault
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state3
- VK_EXT_external_memory_acquire_unmodified
- VK_EXT_external_memory_host
- VK_EXT_frame_boundary
- VK_EXT_graphics_pipeline_library
- VK_EXT_host_image_copy
- VK_EXT_image_2d_view_of_3d
- VK_EXT_image_compression_control_swapchain
- VK_EXT_image_sliced_view_of_3d
- VK_EXT_image_view_min_lod
- VK_EXT_legacy_dithering
- VK_EXT_mutable_descriptor_type
- VK_EXT_non_seamless_cube_map
- VK_EXT_pipeline_protected_access
- VK_EXT_pipeline_robustness
- VK_EXT_rasterization_order_attachment_access
- VK_EXT_robustness2
- VK_EXT_shader_image_atomic_int64
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_tile_image
- VK_EXT_vertex_input_dynamic_state
- VK_GOOGLE_decorate_string
- VK_GOOGLE_user_type
- VK_KHR_calibrated_timestamps
- VK_KHR_compute_shader_derivatives
- VK_KHR_deferred_host_operations
- VK_KHR_dynamic_rendering
- VK_KHR_dynamic_rendering_local_read
- VK_KHR_format_feature_flags2
- VK_KHR_global_priority
- VK_KHR_index_type_uint8
- VK_KHR_line_rasterization
- VK_KHR_load_store_op_none
- VK_KHR_maintenance4
- VK_KHR_maintenance5
- VK_KHR_maintenance6
- VK_KHR_maintenance7
- VK_KHR_map_memory2
- VK_KHR_pipeline_binary
- VK_KHR_pipeline_executable_properties
- VK_KHR_pipeline_library
- VK_KHR_push_descriptor
- VK_KHR_shader_atomic_int64
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float_controls2
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_quad_control
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_swapchain_mutable_format
- VK_KHR_vertex_attribute_divisor
Core features that differ (71)
| multiview | pass to unsupported |
| protectedMemory | pass to unsupported |
| samplerYcbcrConversion | pass to unsupported |
| shaderDrawParameters | pass to unsupported |
| storageBuffer16BitAccess | pass to unsupported |
| storageInputOutput16 | pass to unsupported |
| storagePushConstant16 | pass to unsupported |
| uniformAndStorageBuffer16BitAccess | pass to unsupported |
| variablePointers | pass to unsupported |
| variablePointersStorageBuffer | pass to unsupported |
| bufferDeviceAddress | pass to unsupported |
| bufferDeviceAddressCaptureReplay | pass to unsupported |
| descriptorBindingPartiallyBound | pass to unsupported |
| descriptorBindingSampledImageUpdateAfterBind | pass to unsupported |
| descriptorBindingStorageBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingStorageImageUpdateAfterBind | pass to unsupported |
| descriptorBindingStorageTexelBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingUniformBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingUniformTexelBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingUpdateUnusedWhilePending | pass to unsupported |
| descriptorBindingVariableDescriptorCount | pass to unsupported |
| descriptorIndexing | pass to unsupported |
| drawIndirectCount | pass to unsupported |
| hostQueryReset | pass to unsupported |
| imagelessFramebuffer | pass to unsupported |
| runtimeDescriptorArray | pass to unsupported |
| samplerFilterMinmax | pass to unsupported |
| samplerMirrorClampToEdge | pass to unsupported |
| scalarBlockLayout | pass to unsupported |
| separateDepthStencilLayouts | pass to unsupported |
| shaderBufferInt64Atomics | pass to unsupported |
| shaderFloat16 | pass to unsupported |
| shaderInputAttachmentArrayDynamicIndexing | pass to unsupported |
| shaderInputAttachmentArrayNonUniformIndexing | pass to unsupported |
| shaderInt8 | pass to unsupported |
| shaderOutputLayer | pass to unsupported |
| shaderOutputViewportIndex | pass to unsupported |
| shaderSampledImageArrayNonUniformIndexing | pass to unsupported |
| shaderSharedInt64Atomics | pass to unsupported |
| shaderStorageBufferArrayNonUniformIndexing | pass to unsupported |
| shaderStorageImageArrayNonUniformIndexing | pass to unsupported |
| shaderStorageTexelBufferArrayDynamicIndexing | pass to unsupported |
| shaderStorageTexelBufferArrayNonUniformIndexing | pass to unsupported |
| shaderSubgroupExtendedTypes | pass to unsupported |
| shaderUniformBufferArrayNonUniformIndexing | pass to unsupported |
| shaderUniformTexelBufferArrayDynamicIndexing | pass to unsupported |
| shaderUniformTexelBufferArrayNonUniformIndexing | pass to unsupported |
| storageBuffer8BitAccess | pass to unsupported |
| storagePushConstant8 | pass to unsupported |
| subgroupBroadcastDynamicId | pass to unsupported |
| timelineSemaphore | pass to unsupported |
| uniformAndStorageBuffer8BitAccess | pass to unsupported |
| uniformBufferStandardLayout | pass to unsupported |
| vulkanMemoryModel | pass to unsupported |
| vulkanMemoryModelAvailabilityVisibilityChains | pass to unsupported |
| vulkanMemoryModelDeviceScope | pass to unsupported |
| computeFullSubgroups | pass to unsupported |
| descriptorBindingInlineUniformBlockUpdateAfterBind | pass to unsupported |
| dynamicRendering | pass to unsupported |
| inlineUniformBlock | pass to unsupported |
| maintenance4 | pass to unsupported |
| pipelineCreationCacheControl | pass to unsupported |
| privateData | pass to unsupported |
| robustImageAccess | pass to unsupported |
| shaderDemoteToHelperInvocation | pass to unsupported |
| shaderIntegerDotProduct | pass to unsupported |
| shaderTerminateInvocation | pass to unsupported |
| shaderZeroInitializeWorkgroupMemory | pass to unsupported |
| subgroupSizeControl | pass to unsupported |
| synchronization2 | pass to unsupported |
| textureCompressionASTC_HDR | pass to unsupported |
Limits that differ (27)
| Limit | Stock | Mali-G610 MC6 |
|---|---|---|
| maxImageDimension1D | 16384 | 32768 |
| maxImageDimension2D | 16384 | 32768 |
| maxImageDimension3D | 16384 | 32768 |
| maxImageDimensionCube | 16384 | 32768 |
| maxUniformBufferRange | 2147483648 | 65536 |
| maxStorageBufferRange | 2147483648 | 268435456 |
| maxPerStageDescriptorSamplers | 8388608 | 500000 |
| maxPerStageDescriptorUniformBuffers | 8388608 | 36 |
| maxPerStageDescriptorStorageBuffers | 8388608 | 500000 |
| maxPerStageDescriptorSampledImages | 8388608 | 500000 |
| maxPerStageDescriptorStorageImages | 8388608 | 500000 |
| maxPerStageResources | 8388608 | 500000 |
| maxDescriptorSetSamplers | 8388608 | 500000 |
| maxDescriptorSetUniformBuffers | 8388608 | 216 |
| maxDescriptorSetStorageBuffers | 8388608 | 500000 |
| maxDescriptorSetSampledImages | 8388608 | 500000 |
| maxDescriptorSetStorageImages | 8388608 | 500000 |
| maxFragmentDualSrcAttachments | 8 | 0 |
| maxFragmentCombinedOutputResources | 16777224 | 1000008 |
| maxSamplerLodBias | 126 | 255 |
| maxViewportDimensions | 16384, 16384 | 32768, 32768 |
| viewportBoundsRange | -32768, 32767 | -65536, 65535 |
| maxInterpolationOffset | 0.4375 | 0.5 |
| maxFramebufferWidth | 16384 | 32768 |
| maxFramebufferHeight | 16384 | 32768 |
| lineWidthRange | 1, 4095.94 | 1, 1 |
| lineWidthGranularity | 0.0625 | 0 |
Formats supported by only one driver (0 gained, 8 lost)
- None
- A1B5G5R5_UNORM_PACK16
- A8_UNORM
- B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
- G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- R64_SINT
- R64_UINT