FauxVkDB
English
Home / Mali-G610 / Compare

Mali-G610 MC2 vs Mali-G610 MC6

On Mali-G610 (GameForce Ace, Infinix GT 20 Pro, Infinix NOTE Edge, Nothing Phone (2a) Plus, realme 真我 GT NEO 3 150W, Vivo V27, Xiaomi 13T). The first driver named is compared against the second, which is the baseline.

StockMali-G610 MC6v1.r32p1-01eac0.b89152572cfa9465230812a8225a45a0
vs
CustomMali-G610 MC2v1.r54p1-11eac0.3e07f5a9886cc9d27e6237f888de30bc
Graphics system version (Vulkan)1.1.177 to 1.3.305
Optional features (extensions)71 to 155+84 -0
Features that pass their check (validated)31 to 398 pass only on Mali-G610 MC2 0 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 MC2 details

Feature checks that differ (22)

FeatureStockMali-G610 MC2Change
borderColorSwizzle
VK_EXT_border_color_swizzle
unsupportedpassgained
extendedDynamicState
VK_EXT_extended_dynamic_state
unsupportedpassgained
extendedDynamicState2
VK_EXT_extended_dynamic_state2
unsupportedpassgained
extendedDynamicState3DepthClampEnable
VK_EXT_extended_dynamic_state3
unsupportedpassgained
vertexInputDynamicState
VK_EXT_vertex_input_dynamic_state
unsupportedpassgained
shaderBufferInt64Atomics
VK_KHR_shader_atomic_int64
unsupportedpassgained
push.max_combined_image_samplers
core
unsupportedpassgained
push.max_uniform_buffers
core
unsupportedpassgained
borderColorSwizzleFromImage
VK_EXT_border_color_swizzle
unsupporteduntestedchanged
extendedDynamicState2PatchControlPoints
VK_EXT_extended_dynamic_state2
unsupporteduntestedchanged
extendedDynamicState3DepthClipEnable
VK_EXT_extended_dynamic_state3
unsupporteduntestedchanged
extendedDynamicState3LineRasterizationMode
VK_EXT_extended_dynamic_state3
unsupporteduntestedchanged
extendedDynamicState3ProvokingVertexMode
VK_EXT_extended_dynamic_state3
unsupporteduntestedchanged
extendedDynamicState3SampleMask
VK_EXT_extended_dynamic_state3
unsupporteduntestedchanged
extendedDynamicState3TessellationDomainOrigin
VK_EXT_extended_dynamic_state3
unsupporteduntestedchanged
nullDescriptor
VK_EXT_robustness2
unsupporteduntestedchanged
shaderSharedInt64Atomics
VK_KHR_shader_atomic_int64
unsupporteduntestedchanged
dualSrcBlend
VkPhysicalDeviceFeatures
unsupporteduntestedchanged
inheritedQueries
VkPhysicalDeviceFeatures
unsupporteduntestedchanged
logicOp
VkPhysicalDeviceFeatures
unsupporteduntestedchanged
shaderInt64
VkPhysicalDeviceFeatures
unsupporteduntestedchanged
wideLines
VkPhysicalDeviceFeatures
unsupporteduntestedchanged

Speed test scenes (benchmark)

The two drivers were not measured on the same set of device models. Frame times from different devices do not compare drivers, so read these numbers with that in mind.

SceneStock msMali-G610 MC2 msDifferenceStartsGPU clock, MHzPicture vs stock
compute_nbody17.69 typical 17.56n/aonly one side3 of 3 vs ?? vs ? clock unknownnot checked
hdr_2160p27.32 typical 27.39n/aonly one side3 of 3 vs ?? vs ? clock unknownnot checked
oit_linked_lists21.38 typical 21.20n/aonly one side3 of 3 vs ?? vs ? clock unknownnot checked
pipeline_barriers8.42 typical 8.35n/aonly one side3 of 3 vs ?? vs ? clock unknownnot checked
subpasses16.43 typical 16.49n/aonly one side3 of 3 vs ?? vs ? clock unknownnot checked

Time to draw one frame, per scene: the average (mean) frame time of the scene's best round, which is how many frames the driver delivered; lower is faster. "Typical" beside it is the median frame, which can sit well under the average when a driver's frames come in two speeds. A pair of reports made before per-round averages were recorded is compared on the median. A scene whose rounds disagree by more than 15% is left out. A scene marked "paced" was held at that mean frame time by the driver or the display queue, together with at least one other scene of the same run; its time says how the frames were spaced, not how fast the driver rendered, so it is not compared. A scene marked "too light" took under 8 ms at the standard size (1920 by 1080) on both drivers, where the screen's frame queue spaces the frames more than the chip does; its heavier run is the one compared: the row ending in _2160p is the scene drawn at 3840 by 2160, and compute_nbody_2x is that scene with twice the particles. "Faster" and "slower" describe Mali-G610 MC2 against Mali-G610 MC6. "Picture vs stock" compares one fixed frame per scene as a coarse colour grid (0 is identical, above 40 is a different picture); it finds a scene that was not drawn. Where both reports carry the finer 64x36 grid, the second figure is how many of its 2,304 cells differ by more than 4 of 255, and "worst" is the largest single cell; this is what finds a small rendering error in a picture that otherwise matches. A row marked 16x9 comes from a report made before the finer grid existed. "Starts" is how many of a scene's process starts reached a measured round. A GPU clock marked "not comparable" differed by more than 5% of the device's maximum between the two timings.

Technical differences (Vulkan)

Extensions only in Mali-G610 MC2 (84)
  • VK_ANDROID_external_format_resolve
  • VK_ARM_rasterization_order_attachment_access
  • 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_state
  • VK_EXT_extended_dynamic_state2
  • VK_EXT_extended_dynamic_state3
  • VK_EXT_external_memory_acquire_unmodified
  • VK_EXT_external_memory_host
  • VK_EXT_frame_boundary
  • VK_EXT_global_priority_query
  • VK_EXT_graphics_pipeline_library
  • VK_EXT_host_image_copy
  • VK_EXT_image_2d_view_of_3d
  • VK_EXT_image_compression_control
  • 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_load_store_op_none
  • VK_EXT_multisampled_render_to_single_sampled
  • VK_EXT_mutable_descriptor_type
  • VK_EXT_non_seamless_cube_map
  • VK_EXT_pipeline_creation_cache_control
  • VK_EXT_pipeline_creation_feedback
  • VK_EXT_pipeline_protected_access
  • VK_EXT_pipeline_robustness
  • VK_EXT_primitive_topology_list_restart
  • VK_EXT_primitives_generated_query
  • VK_EXT_private_data
  • VK_EXT_rasterization_order_attachment_access
  • VK_EXT_robustness2
  • VK_EXT_shader_demote_to_helper_invocation
  • VK_EXT_shader_image_atomic_int64
  • VK_EXT_shader_replicated_composites
  • VK_EXT_shader_tile_image
  • VK_EXT_subpass_merge_feedback
  • VK_EXT_texel_buffer_alignment
  • VK_EXT_tooling_info
  • 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_copy_commands2
  • 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_integer_dot_product
  • VK_KHR_shader_maximal_reconvergence
  • VK_KHR_shader_quad_control
  • VK_KHR_shader_subgroup_rotate
  • VK_KHR_shader_subgroup_uniform_control_flow
  • VK_KHR_shader_terminate_invocation
  • VK_KHR_swapchain_mutable_format
  • VK_KHR_synchronization2
  • VK_KHR_vertex_attribute_divisor
  • VK_KHR_zero_initialize_workgroup_memory
Extensions only in Mali-G610 MC6 (0)
  • None
Core features that differ (71)
multiview Vulkan 1.1unsupported to pass
protectedMemory Vulkan 1.1unsupported to pass
samplerYcbcrConversion Vulkan 1.1unsupported to pass
shaderDrawParameters Vulkan 1.1unsupported to pass
storageBuffer16BitAccess Vulkan 1.1unsupported to pass
storageInputOutput16 Vulkan 1.1unsupported to pass
storagePushConstant16 Vulkan 1.1unsupported to pass
uniformAndStorageBuffer16BitAccess Vulkan 1.1unsupported to pass
variablePointers Vulkan 1.1unsupported to pass
variablePointersStorageBuffer Vulkan 1.1unsupported to pass
bufferDeviceAddress Vulkan 1.2unsupported to pass
bufferDeviceAddressCaptureReplay Vulkan 1.2unsupported to pass
descriptorBindingPartiallyBound Vulkan 1.2unsupported to pass
descriptorBindingSampledImageUpdateAfterBind Vulkan 1.2unsupported to pass
descriptorBindingStorageBufferUpdateAfterBind Vulkan 1.2unsupported to pass
descriptorBindingStorageImageUpdateAfterBind Vulkan 1.2unsupported to pass
descriptorBindingStorageTexelBufferUpdateAfterBind Vulkan 1.2unsupported to pass
descriptorBindingUniformBufferUpdateAfterBind Vulkan 1.2unsupported to pass
descriptorBindingUniformTexelBufferUpdateAfterBind Vulkan 1.2unsupported to pass
descriptorBindingUpdateUnusedWhilePending Vulkan 1.2unsupported to pass
descriptorBindingVariableDescriptorCount Vulkan 1.2unsupported to pass
descriptorIndexing Vulkan 1.2unsupported to pass
drawIndirectCount Vulkan 1.2unsupported to pass
hostQueryReset Vulkan 1.2unsupported to pass
imagelessFramebuffer Vulkan 1.2unsupported to pass
runtimeDescriptorArray Vulkan 1.2unsupported to pass
samplerFilterMinmax Vulkan 1.2unsupported to pass
samplerMirrorClampToEdge Vulkan 1.2unsupported to pass
scalarBlockLayout Vulkan 1.2unsupported to pass
separateDepthStencilLayouts Vulkan 1.2unsupported to pass
shaderBufferInt64Atomics Vulkan 1.2unsupported to pass
shaderFloat16 Vulkan 1.2unsupported to pass
shaderInputAttachmentArrayDynamicIndexing Vulkan 1.2unsupported to pass
shaderInputAttachmentArrayNonUniformIndexing Vulkan 1.2unsupported to pass
shaderInt8 Vulkan 1.2unsupported to pass
shaderOutputLayer Vulkan 1.2unsupported to pass
shaderOutputViewportIndex Vulkan 1.2unsupported to pass
shaderSampledImageArrayNonUniformIndexing Vulkan 1.2unsupported to pass
shaderSharedInt64Atomics Vulkan 1.2unsupported to pass
shaderStorageBufferArrayNonUniformIndexing Vulkan 1.2unsupported to pass
shaderStorageImageArrayNonUniformIndexing Vulkan 1.2unsupported to pass
shaderStorageTexelBufferArrayDynamicIndexing Vulkan 1.2unsupported to pass
shaderStorageTexelBufferArrayNonUniformIndexing Vulkan 1.2unsupported to pass
shaderSubgroupExtendedTypes Vulkan 1.2unsupported to pass
shaderUniformBufferArrayNonUniformIndexing Vulkan 1.2unsupported to pass
shaderUniformTexelBufferArrayDynamicIndexing Vulkan 1.2unsupported to pass
shaderUniformTexelBufferArrayNonUniformIndexing Vulkan 1.2unsupported to pass
storageBuffer8BitAccess Vulkan 1.2unsupported to pass
storagePushConstant8 Vulkan 1.2unsupported to pass
subgroupBroadcastDynamicId Vulkan 1.2unsupported to pass
timelineSemaphore Vulkan 1.2unsupported to pass
uniformAndStorageBuffer8BitAccess Vulkan 1.2unsupported to pass
uniformBufferStandardLayout Vulkan 1.2unsupported to pass
vulkanMemoryModel Vulkan 1.2unsupported to pass
vulkanMemoryModelAvailabilityVisibilityChains Vulkan 1.2unsupported to pass
vulkanMemoryModelDeviceScope Vulkan 1.2unsupported to pass
computeFullSubgroups Vulkan 1.3unsupported to pass
descriptorBindingInlineUniformBlockUpdateAfterBind Vulkan 1.3unsupported to pass
dynamicRendering Vulkan 1.3unsupported to pass
inlineUniformBlock Vulkan 1.3unsupported to pass
maintenance4 Vulkan 1.3unsupported to pass
pipelineCreationCacheControl Vulkan 1.3unsupported to pass
privateData Vulkan 1.3unsupported to pass
robustImageAccess Vulkan 1.3unsupported to pass
shaderDemoteToHelperInvocation Vulkan 1.3unsupported to pass
shaderIntegerDotProduct Vulkan 1.3unsupported to pass
shaderTerminateInvocation Vulkan 1.3unsupported to pass
shaderZeroInitializeWorkgroupMemory Vulkan 1.3unsupported to pass
subgroupSizeControl Vulkan 1.3unsupported to pass
synchronization2 Vulkan 1.3unsupported to pass
textureCompressionASTC_HDR Vulkan 1.3unsupported to pass
Limits that differ (32)
LimitStockMali-G610 MC2
maxImageDimension1D3276816384
maxImageDimension2D3276816384
maxImageDimension3D3276816384
maxImageDimensionCube3276816384
maxUniformBufferRange655362147483648
maxStorageBufferRange2684354562147483648
maxMemoryAllocationCount429496729516384
bufferImageGranularity40961
maxBoundDescriptorSets47
maxPerStageDescriptorSamplers5000008388608
maxPerStageDescriptorUniformBuffers368388608
maxPerStageDescriptorStorageBuffers5000008388608
maxPerStageDescriptorSampledImages5000008388608
maxPerStageDescriptorStorageImages5000008388608
maxPerStageResources5000008388608
maxDescriptorSetSamplers5000008388608
maxDescriptorSetUniformBuffers2168388608
maxDescriptorSetStorageBuffers5000008388608
maxDescriptorSetSampledImages5000008388608
maxDescriptorSetStorageImages5000008388608
maxGeometryInputComponents64128
maxGeometryTotalOutputComponents10242048
maxFragmentDualSrcAttachments08
maxFragmentCombinedOutputResources100000816777224
maxSamplerLodBias255126
maxViewportDimensions32768, 3276816384, 16384
viewportBoundsRange-65536, 65535-32768, 32767
maxInterpolationOffset0.50.4375
maxFramebufferWidth3276816384
maxFramebufferHeight3276816384
lineWidthRange1, 11, 4095.94
lineWidthGranularity00.0625
Formats supported by only one driver (14 gained, 0 lost)

Only in Mali-G610 MC2:

  • A1B5G5R5_UNORM_PACK16
  • A2R10G10B10_SSCALED_PACK32
  • A2R10G10B10_USCALED_PACK32
  • A8_UNORM
  • B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
  • B8G8R8A8_SSCALED
  • B8G8R8A8_USCALED
  • B8G8R8_SSCALED
  • B8G8R8_USCALED
  • G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
  • G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
  • G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
  • R64_SINT
  • R64_UINT

Only in Mali-G610 MC6:

  • None