Mali-G52 MC2 vs Mali-G52
Mali-G52 (CHUWI HiPad-Air, HONOR X5c, HONOR X5c, Infinix HOT 60i, Oppo A18, Oppo A38, realme RMX3710, Redmi 12, Redmi 12C, Redmi 14C, Redmi 15C, TECNO POVA 3, TECNO SPARK 20, Xiaomi 24049RN28L). 最初に挙げたドライバーを、2番目のドライバー(ベースライン)と比べています。
純正Mali-G52
vsカスタムMali-G52 MC2
グラフィックスのシステムバージョン(Vulkan)1.1.149 → 1.3.278
追加機能(拡張機能)58 → 131+73 -0
チェックに成功した機能(検証済み)39 → 34Mali-G52: このサイトが確認できないデバイスから送信(未確認)Mali-G52 MC2でのみ成功 8 Mali-G52でのみ成功 13
速度テストのシーン(ベンチマーク)速い 2 遅い 3全体で6% 遅い(幾何平均)
各ドライバーが動かせそうなゲーム(機能リストからの目安): 緑は動く見込み、黄は動くかも、橙は厳しい、赤は動かない
純正DX92002+DX102006+DX112009+DX122015+Switch
カスタムDX92002+DX102006+DX112009+DX122015+Switch
- compute_nbody9% 遅い
- hdr_2160p7% 速い
- oit_linked_lists9% 速い
- pipeline_barriers22% 遅い
- subpasses10% 遅い
純正ドライバーと映像の一部が少し違います: 1件のシーン (pipeline_barriers: 2304セル中1710セル). 映像は全体として一致しているので、別のシーンではなく、一部の描画の不具合です。
結果が異なる機能チェック(35)
| 機能 | 純正 | Mali-G52 MC2 | 変化 |
|---|---|---|---|
| largePoints | 成功 | 未テスト | 欠落 |
| compat.helper_loop_terminator | 成功 | 未テスト | 欠落 |
| compat.nested_map | 成功 | 未テスト | 欠落 |
| core.blend_advertised_formats | 成功 | 未テスト | 欠落 |
| core.compute_big_stack | 成功 | 未テスト | 欠落 |
| core.host_coherent_readback | 成功 | 未テスト | 欠落 |
| core.mrt_partial_kill | 成功 | 未テスト | 欠落 |
| core.ubo_update_buffer | 成功 | 未テスト | 欠落 |
| core.ubo_written_after_record | 成功 | 未テスト | 欠落 |
| core.varying_subset | 成功 | 未テスト | 欠落 |
| mem.image_padding | 成功 | 未テスト | 欠落 |
| stage.geometry_max_output | 成功 | 未テスト | 欠落 |
| sync.first_submit_clear_then_compute | 成功 | 未テスト | 欠落 |
| borderColorSwizzle | 非対応 | 成功 | 追加 |
| customBorderColors | 非対応 | 成功 | 追加 |
| extendedDynamicState | 非対応 | 成功 | 追加 |
| extendedDynamicState2 | 非対応 | 成功 | 追加 |
| vertexInputDynamicState | 非対応 | 成功 | 追加 |
| shaderBufferInt64Atomics | 非対応 | 成功 | 追加 |
| timelineSemaphore | クラッシュ | 成功 | 追加 |
| stress.submit_memory | 判定不能 | 成功 | 追加 |
| borderColorSwizzleFromImage | 非対応 | 未テスト | 変更あり |
| customBorderColorWithoutFormat | 非対応 | 未テスト | 変更あり |
| extendedDynamicState2PatchControlPoints | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3LineRasterizationMode | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3ProvokingVertexMode | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3SampleMask | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3TessellationDomainOrigin | 非対応 | 未テスト | 変更あり |
| descriptorBindingInlineUniformBlockUpdateAfterBind | 非対応 | 未テスト | 変更あり |
| shaderSharedInt64Atomics | 非対応 | 未テスト | 変更あり |
| dualSrcBlend | 非対応 | 未テスト | 変更あり |
| logicOp | 非対応 | 未テスト | 変更あり |
| shaderInt64 | 非対応 | 未テスト | 変更あり |
| wideLines | 非対応 | 未テスト | 変更あり |
| stage.geometry_point_size | 非対応 | 未テスト | 変更あり |
速度テストのシーン(ベンチマーク)
2つのドライバーは同じ機種の組み合わせで測定されていません。異なるデバイスのフレームタイムではドライバーを比較できないので、その点を踏まえて数値を見てください。
| シーン | 純正 ms | Mali-G52 MC2 ms | 差 | 起動 | GPUクロック(MHz) | 純正との映像比較 |
|---|---|---|---|---|---|---|
| compute_nbody | 63.71 | 70.13 | 9% 遅い | 3中3 vs 3中3 | ? vs ? | 大きな差なし 小さな差なし |
| hdr_2160p | 160.91 | 150.63 | 7% 速い | 3中3 vs 3中3 | ? vs ? | 大きな差なし 小さな差なし |
| oit_linked_lists | 71.56 | 65.71 | 9% 速い | 3中3 vs 3中3 | ? vs ? | 大きな差なし 小さな差なし |
| pipeline_barriers | 44.54 | 56.80 | 22% 遅い | 3中3 vs 3中3 | ? vs ? | 大きな差なし 小さな差が1710箇所 |
| subpasses | 99.31 | 110.56 | 10% 遅い | 3中3 vs 3中3 | ? vs ? | 未チェック |
技術的な違い(Vulkan)
Mali-G52 MC2だけにある拡張機能(73)
- VK_ANDROID_external_format_resolve
- VK_ARM_rasterization_order_attachment_access
- VK_ARM_shader_core_builtins
- VK_ARM_shader_core_properties
- VK_EXT_4444_formats
- VK_EXT_border_color_swizzle
- VK_EXT_calibrated_timestamps
- VK_EXT_custom_border_color
- VK_EXT_debug_marker
- VK_EXT_device_address_binding_report
- VK_EXT_device_fault
- VK_EXT_device_memory_report
- 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_frame_boundary
- VK_EXT_global_priority_query
- 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_legacy_dithering
- VK_EXT_load_store_op_none
- VK_EXT_multisampled_render_to_single_sampled
- 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_provoking_vertex
- VK_EXT_rasterization_order_attachment_access
- VK_EXT_rgba10x6_formats
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_shader_image_atomic_int64
- VK_EXT_shader_tile_image
- VK_EXT_subgroup_size_control
- VK_EXT_subpass_merge_feedback
- VK_EXT_swapchain_maintenance1
- 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_copy_commands2
- 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_map_memory2
- 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_non_semantic_info
- VK_KHR_shader_quad_control
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_shader_terminate_invocation
- VK_KHR_synchronization2
- VK_KHR_vertex_attribute_divisor
- VK_KHR_zero_initialize_workgroup_memory
Mali-G52だけにある拡張機能(0)
- なし
差があるコア機能(45)
| multiview | 非対応 → 成功 |
| samplerYcbcrConversion | 非対応 → 成功 |
| shaderDrawParameters | 非対応 → 成功 |
| storageBuffer16BitAccess | 非対応 → 成功 |
| storageInputOutput16 | 非対応 → 成功 |
| storagePushConstant16 | 非対応 → 成功 |
| uniformAndStorageBuffer16BitAccess | 非対応 → 成功 |
| variablePointers | 非対応 → 成功 |
| variablePointersStorageBuffer | 非対応 → 成功 |
| bufferDeviceAddress | 非対応 → 成功 |
| hostQueryReset | 非対応 → 成功 |
| imagelessFramebuffer | 非対応 → 成功 |
| samplerMirrorClampToEdge | 非対応 → 成功 |
| scalarBlockLayout | 非対応 → 成功 |
| separateDepthStencilLayouts | 非対応 → 成功 |
| shaderBufferInt64Atomics | 非対応 → 成功 |
| shaderFloat16 | 非対応 → 成功 |
| shaderInt8 | 非対応 → 成功 |
| shaderOutputViewportIndex | 非対応 → 成功 |
| shaderSharedInt64Atomics | 非対応 → 成功 |
| shaderSubgroupExtendedTypes | 非対応 → 成功 |
| storageBuffer8BitAccess | 非対応 → 成功 |
| storagePushConstant8 | 非対応 → 成功 |
| subgroupBroadcastDynamicId | 非対応 → 成功 |
| timelineSemaphore | 非対応 → 成功 |
| uniformAndStorageBuffer8BitAccess | 非対応 → 成功 |
| uniformBufferStandardLayout | 非対応 → 成功 |
| vulkanMemoryModel | 非対応 → 成功 |
| vulkanMemoryModelAvailabilityVisibilityChains | 非対応 → 成功 |
| vulkanMemoryModelDeviceScope | 非対応 → 成功 |
| computeFullSubgroups | 非対応 → 成功 |
| descriptorBindingInlineUniformBlockUpdateAfterBind | 非対応 → 成功 |
| dynamicRendering | 非対応 → 成功 |
| inlineUniformBlock | 非対応 → 成功 |
| maintenance4 | 非対応 → 成功 |
| pipelineCreationCacheControl | 非対応 → 成功 |
| privateData | 非対応 → 成功 |
| robustImageAccess | 非対応 → 成功 |
| shaderDemoteToHelperInvocation | 非対応 → 成功 |
| shaderIntegerDotProduct | 非対応 → 成功 |
| shaderTerminateInvocation | 非対応 → 成功 |
| shaderZeroInitializeWorkgroupMemory | 非対応 → 成功 |
| subgroupSizeControl | 非対応 → 成功 |
| synchronization2 | 非対応 → 成功 |
| textureCompressionASTC_HDR | 非対応 → 成功 |
差がある制限(25)
| 上限 | 純正 | Mali-G52 MC2 |
|---|---|---|
| maxImageDimension2D | 16383 | 16384 |
| maxImageDimension3D | 16383 | 16384 |
| maxImageDimensionCube | 16383 | 16384 |
| maxImageArrayLayers | 1024 | 4096 |
| maxTexelBufferElements | 65536 | 268435456 |
| maxStorageBufferRange | 268435456 | 2147483648 |
| maxMemoryAllocationCount | 4294967295 | 16384 |
| bufferImageGranularity | 4096 | 1 |
| maxBoundDescriptorSets | 4 | 7 |
| maxPerStageDescriptorUniformBuffers | 36 | 241 |
| maxPerStageResources | 365 | 570 |
| maxDescriptorSetUniformBuffers | 216 | 1446 |
| maxGeometryInputComponents | 64 | 128 |
| maxGeometryTotalOutputComponents | 1024 | 2048 |
| maxFragmentDualSrcAttachments | 0 | 8 |
| maxSamplerLodBias | 255 | 126 |
| maxViewportDimensions | 16383, 16383 | 16384, 16384 |
| viewportBoundsRange | -32766, 32765 | -32768, 32767 |
| maxInterpolationOffset | 0.5 | 0.4375 |
| maxFramebufferWidth | 16383 | 16384 |
| maxFramebufferHeight | 16383 | 16384 |
| timestampComputeAndGraphics | 0 | 1 |
| timestampPeriod | 0 | 76.9231 |
| lineWidthRange | 1, 1 | 1, 4095.94 |
| lineWidthGranularity | 0 | 0.0625 |
片方のドライバーだけが対応するフォーマット(追加16、欠落0)
- A1B5G5R5_UNORM_PACK16
- A2R10G10B10_SSCALED_PACK32
- A2R10G10B10_USCALED_PACK32
- A4B4G4R4_UNORM_PACK16
- A4R4G4B4_UNORM_PACK16
- 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
- なし