Mali-G610 MC4 vs Mali-G610 MC6
On Mali-G610 (GameForce Ace, Infinix GT 20 Pro, Infinix NOTE Edge, Nothing Phone (2a) Plus, OnePlus Ace 竞速版, realme 真我 GT NEO 3 150W, Vivo iQOO Neo7 SE, Vivo V27, Xiaomi 13T). The first driver named is compared against the second, which is the baseline.
StockMali-G610 MC6
vsCustomMali-G610 MC4
Graphics system version (Vulkan)1.1.219 to 1.3.345
Optional features (extensions)93 to 147+55 -1
Features that pass their check (validated)46 to 397 pass only on Mali-G610 MC4 14 pass only on Mali-G610 MC6
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 MC6 details Mali-G610 MC4 details
Feature checks that differ (39)
| Feature | Stock | Mali-G610 MC4 | Change |
|---|---|---|---|
| depthClamp | pass | untested | lost |
| largePoints | pass | untested | lost |
| compat.helper_loop_terminator | pass | untested | lost |
| compat.nested_map | pass | untested | lost |
| core.blend_advertised_formats | pass | untested | lost |
| core.compute_big_stack | pass | untested | lost |
| core.host_coherent_readback | pass | untested | lost |
| core.mrt_partial_kill | pass | untested | lost |
| core.ubo_update_buffer | pass | untested | lost |
| core.ubo_written_after_record | pass | untested | lost |
| core.varying_subset | pass | untested | lost |
| mem.image_padding | pass | untested | lost |
| stage.geometry_max_output | pass | untested | lost |
| sync.first_submit_clear_then_compute | pass | untested | lost |
| borderColorSwizzle | unsupported | pass | gained |
| extendedDynamicState | fail | pass | gained |
| extendedDynamicState3DepthClampEnable | unsupported | pass | gained |
| vertexInputDynamicState | unsupported | pass | gained |
| shaderBufferInt64Atomics | unsupported | pass | gained |
| push.max_combined_image_samplers | unsupported | pass | gained |
| push.max_uniform_buffers | unsupported | pass | gained |
| borderColorSwizzleFromImage | unsupported | untested | changed |
| extendedDynamicState3AlphaToCoverageEnable | unsupported | untested | changed |
| extendedDynamicState3DepthClipEnable | unsupported | untested | changed |
| extendedDynamicState3LineRasterizationMode | unsupported | untested | changed |
| extendedDynamicState3LineStippleEnable | unsupported | untested | changed |
| extendedDynamicState3ProvokingVertexMode | unsupported | untested | changed |
| extendedDynamicState3RasterizationStream | unsupported | untested | changed |
| extendedDynamicState3SampleMask | unsupported | untested | changed |
| extendedDynamicState3TessellationDomainOrigin | unsupported | untested | changed |
| nullDescriptor | unsupported | untested | changed |
| geometryStreams | unsupported | untested | changed |
| shaderSharedInt64Atomics | unsupported | untested | changed |
| dualSrcBlend | unsupported | untested | changed |
| inheritedQueries | unsupported | untested | changed |
| logicOp | unsupported | untested | changed |
| shaderInt64 | unsupported | untested | changed |
| wideLines | unsupported | untested | changed |
| stage.geometry_point_size | unsupported | untested | changed |
Speed test scenes (benchmark)
Neither driver has a valid speed test (benchmark report) yet.
Technical differences (Vulkan)
Extensions only in Mali-G610 MC4 (55)
- VK_ARM_scheduling_controls
- VK_ARM_shader_core_builtins
- VK_ARM_shader_core_properties
- VK_ARM_shader_instrumentation
- VK_EXT_border_color_swizzle
- VK_EXT_debug_marker
- 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_hdr_metadata
- 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_present_mode_fifo_latest_ready
- VK_EXT_rasterization_order_attachment_access
- VK_EXT_robustness2
- VK_EXT_shader_image_atomic_int64
- VK_EXT_shader_module_identifier
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_tile_image
- VK_EXT_texture_compression_astc_3d
- VK_EXT_vertex_attribute_robustness
- VK_EXT_vertex_input_dynamic_state
- VK_GOOGLE_decorate_string
- VK_KHR_deferred_host_operations
- VK_KHR_dynamic_rendering
- VK_KHR_format_feature_flags2
- VK_KHR_global_priority
- VK_KHR_maintenance4
- VK_KHR_pipeline_executable_properties
- VK_KHR_pipeline_library
- VK_KHR_present_id
- VK_KHR_present_id2
- VK_KHR_present_wait2
- VK_KHR_push_descriptor
- VK_KHR_shader_atomic_int64
- VK_KHR_shader_clock
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_swapchain_maintenance1
- VK_KHR_swapchain_mutable_format
- VK_KHR_workgroup_memory_explicit_layout
Extensions only in Mali-G610 MC6 (1)
- VK_EXT_rgba10x6_formats
Core features that differ (71)
| multiview | unsupported to pass |
| protectedMemory | unsupported to pass |
| samplerYcbcrConversion | unsupported to pass |
| shaderDrawParameters | unsupported to pass |
| storageBuffer16BitAccess | unsupported to pass |
| storageInputOutput16 | unsupported to pass |
| storagePushConstant16 | unsupported to pass |
| uniformAndStorageBuffer16BitAccess | unsupported to pass |
| variablePointers | unsupported to pass |
| variablePointersStorageBuffer | unsupported to pass |
| bufferDeviceAddress | unsupported to pass |
| bufferDeviceAddressCaptureReplay | unsupported to pass |
| descriptorBindingPartiallyBound | unsupported to pass |
| descriptorBindingSampledImageUpdateAfterBind | unsupported to pass |
| descriptorBindingStorageBufferUpdateAfterBind | unsupported to pass |
| descriptorBindingStorageImageUpdateAfterBind | unsupported to pass |
| descriptorBindingStorageTexelBufferUpdateAfterBind | unsupported to pass |
| descriptorBindingUniformBufferUpdateAfterBind | unsupported to pass |
| descriptorBindingUniformTexelBufferUpdateAfterBind | unsupported to pass |
| descriptorBindingUpdateUnusedWhilePending | unsupported to pass |
| descriptorBindingVariableDescriptorCount | unsupported to pass |
| descriptorIndexing | unsupported to pass |
| drawIndirectCount | unsupported to pass |
| hostQueryReset | unsupported to pass |
| imagelessFramebuffer | unsupported to pass |
| runtimeDescriptorArray | unsupported to pass |
| samplerFilterMinmax | unsupported to pass |
| samplerMirrorClampToEdge | unsupported to pass |
| scalarBlockLayout | unsupported to pass |
| separateDepthStencilLayouts | unsupported to pass |
| shaderBufferInt64Atomics | unsupported to pass |
| shaderFloat16 | unsupported to pass |
| shaderInputAttachmentArrayDynamicIndexing | unsupported to pass |
| shaderInputAttachmentArrayNonUniformIndexing | unsupported to pass |
| shaderInt8 | unsupported to pass |
| shaderOutputLayer | unsupported to pass |
| shaderOutputViewportIndex | unsupported to pass |
| shaderSampledImageArrayNonUniformIndexing | unsupported to pass |
| shaderSharedInt64Atomics | unsupported to pass |
| shaderStorageBufferArrayNonUniformIndexing | unsupported to pass |
| shaderStorageImageArrayNonUniformIndexing | unsupported to pass |
| shaderStorageTexelBufferArrayDynamicIndexing | unsupported to pass |
| shaderStorageTexelBufferArrayNonUniformIndexing | unsupported to pass |
| shaderSubgroupExtendedTypes | unsupported to pass |
| shaderUniformBufferArrayNonUniformIndexing | unsupported to pass |
| shaderUniformTexelBufferArrayDynamicIndexing | unsupported to pass |
| shaderUniformTexelBufferArrayNonUniformIndexing | unsupported to pass |
| storageBuffer8BitAccess | unsupported to pass |
| storagePushConstant8 | unsupported to pass |
| subgroupBroadcastDynamicId | unsupported to pass |
| timelineSemaphore | unsupported to pass |
| uniformAndStorageBuffer8BitAccess | unsupported to pass |
| uniformBufferStandardLayout | unsupported to pass |
| vulkanMemoryModel | unsupported to pass |
| vulkanMemoryModelAvailabilityVisibilityChains | unsupported to pass |
| vulkanMemoryModelDeviceScope | unsupported to pass |
| computeFullSubgroups | unsupported to pass |
| descriptorBindingInlineUniformBlockUpdateAfterBind | unsupported to pass |
| dynamicRendering | unsupported to pass |
| inlineUniformBlock | unsupported to pass |
| maintenance4 | unsupported to pass |
| pipelineCreationCacheControl | unsupported to pass |
| privateData | unsupported to pass |
| robustImageAccess | unsupported to pass |
| shaderDemoteToHelperInvocation | unsupported to pass |
| shaderIntegerDotProduct | unsupported to pass |
| shaderTerminateInvocation | unsupported to pass |
| shaderZeroInitializeWorkgroupMemory | unsupported to pass |
| subgroupSizeControl | unsupported to pass |
| synchronization2 | unsupported to pass |
| textureCompressionASTC_HDR | unsupported to pass |
Limits that differ (29)
| Limit | Stock | Mali-G610 MC4 |
|---|---|---|
| maxImageDimension1D | 32768 | 16384 |
| maxImageDimension2D | 32768 | 16384 |
| maxImageDimension3D | 32768 | 16384 |
| maxImageDimensionCube | 32768 | 16384 |
| maxUniformBufferRange | 65536 | 2147483648 |
| maxStorageBufferRange | 268435456 | 2147483648 |
| maxPerStageDescriptorSamplers | 500000 | 8388608 |
| maxPerStageDescriptorUniformBuffers | 36 | 8388608 |
| maxPerStageDescriptorStorageBuffers | 500000 | 8388608 |
| maxPerStageDescriptorSampledImages | 500000 | 8388608 |
| maxPerStageDescriptorStorageImages | 500000 | 8388608 |
| maxPerStageResources | 500000 | 8388608 |
| maxDescriptorSetSamplers | 500000 | 8388608 |
| maxDescriptorSetUniformBuffers | 216 | 8388608 |
| maxDescriptorSetStorageBuffers | 500000 | 8388608 |
| maxDescriptorSetSampledImages | 500000 | 8388608 |
| maxDescriptorSetStorageImages | 500000 | 8388608 |
| maxFragmentDualSrcAttachments | 0 | 8 |
| maxFragmentCombinedOutputResources | 1000008 | 16777224 |
| maxSamplerLodBias | 255 | 126 |
| maxViewportDimensions | 32768, 32768 | 16384, 16384 |
| viewportBoundsRange | -65536, 65535 | -32768, 32767 |
| minUniformBufferOffsetAlignment | 16 | 8 |
| maxInterpolationOffset | 0.5 | 0.4375 |
| maxFramebufferWidth | 32768 | 16384 |
| maxFramebufferHeight | 32768 | 16384 |
| discreteQueuePriorities | 2 | 4 |
| lineWidthRange | 1, 1 | 1, 4095.94 |
| lineWidthGranularity | 0 | 0.0625 |
Formats supported by only one driver (7 gained, 0 lost)
- A2R10G10B10_SNORM_PACK32
- B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
- G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- R64_SINT
- R64_UINT
- None