Mali-G610 vs Mali-G610
On Mali-G610 (CUBOT MAX 5, GameForce Ace, HUAWEI CHZ-LX1, Infinix GT 20 Pro, Infinix NOTE Edge, Nothing Phone (2a) Plus, OnePlus Ace 竞速版, POCO X4 GT, realme 真我 GT NEO 3 150W, Redmi Note 13 Pro+ 5G, Vivo iQOO Neo7 SE, Vivo V27, Xiaomi 13T). The first driver named is compared against the second, which is the baseline.
StockMali-G610
vsCustomMali-G610
Graphics system version (Vulkan)1.1.231 to 1.3.231
Optional features (extensions)98 to 104+7 -1
Features that pass their check (validated)52 to 36Mali-G610: sent from a device this site could not confirm (unverified)0 pass only on Mali-G610 16 pass only on Mali-G610
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 details Mali-G610 details
Feature checks that differ (17)
| Feature | Stock | Mali-G610 | Change |
|---|---|---|---|
| depthClamp | pass | untested | lost |
| largePoints | pass | untested | lost |
| compat.helper_loop_terminator | pass | fail | 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 |
| perf.fb_local_barrier_large_draws | pass | untested | lost |
| perf.fb_local_barrier_overdraw | pass | untested | lost |
| stage.geometry_max_output | pass | untested | lost |
| stress.scratch_per_batch | pass | untested | lost |
| sync.first_submit_clear_then_compute | pass | untested | lost |
| stage.geometry_point_size | unsupported | untested | changed |
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.
| Scene | Stock ms | Mali-G610 ms | Difference | Starts | GPU clock, MHz | Picture vs stock |
|---|---|---|---|---|---|---|
| compute_nbody | n/a | 17.98 | only one side | ? vs 3 of 3 | ? vs 917 | not checked |
| hdr_2160p | n/a | 33.42 | only one side | ? vs ? | ? vs ? | not checked |
| oit_linked_lists | n/a | 23.96 | only one side | ? vs 3 of 3 | ? vs 1000 | not checked |
| pipeline_barriers | n/a | 9.52 | only one side | ? vs 3 of 3 | ? vs 1000 | not checked |
| subpasses | n/a | 17.47 | only one side | ? vs 3 of 3 | ? vs 883 | not checked |
Technical differences (Vulkan)
Extensions only in Mali-G610 (7)
- VK_EXT_image_2d_view_of_3d
- VK_EXT_legacy_dithering
- VK_EXT_pipeline_robustness
- VK_KHR_dynamic_rendering
- VK_KHR_format_feature_flags2
- VK_KHR_global_priority
- VK_KHR_maintenance4
Extensions only in Mali-G610 (1)
- VK_EXT_hdr_metadata
Core features that differ (70)
| multiview | 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 (2)
| Limit | Stock | Mali-G610 |
|---|---|---|
| maxUniformBufferRange | 65536 | 2147483648 |
| timestampPeriod | 520.833 | 41.6667 |
Formats supported by only one driver (0 gained, 0 lost)
- None
- None