Mali-G57 对比 Mali-G57
在 Mali-G57 上 (Anbernic RG556, Motorola moto g35 5G, Redmi A5, TECNO KL4). 先列出的驱动与后一个对比,后一个是基准。
原厂Mali-G57
对比第三方Mali-G57
图形系统版本(Vulkan)1.3.278 → 1.3.225
可选功能(扩展)121 → 97+0 -24
通过检测的功能(已验证)53 → 420 个仅在 Mali-G57 上通过 11 个仅在 Mali-G57 上通过
跑分测试场景(基准测试)2 个更快 3 个更慢总体慢 30%(几何平均)
各驱动能跑的游戏(根据功能列表估算):绿色基本能跑,黄色可能能跑,橙色问题较多,红色跑不了
原厂DX92002+DX102006+DX112009+DX122015+Switch
第三方DX92002+DX102006+DX112009+DX122015+Switch
- compute_nbody快 30%
- hdr_2160p慢 53%
- oit_linked_lists慢 71%
- pipeline_barriers慢 28%
- subpasses快 28%
1 个场景的画面有局部区域与原厂驱动不同 (pipeline_barriers:2304 个格子中有 1466 个). 整体画面是一致的,所以这是局部渲染故障,而不是画了另一个场景。
结果不同的功能检测(21)
| 功能 | 原厂 | Mali-G57 | 变化 |
|---|---|---|---|
| extendedDynamicState | 通过 | 失败 | 减少 |
| extendedDynamicState3DepthClampEnable | 通过 | 不支持 | 减少 |
| vertexInputDynamicState | 通过 | 不支持 | 减少 |
| shaderBufferInt64Atomics | 通过 | 不支持 | 减少 |
| timelineSemaphore | 通过 | 失败 | 减少 |
| depthClamp | 通过 | 未检测 | 减少 |
| largePoints | 通过 | 未检测 | 减少 |
| compat.helper_loop_terminator | 通过 | 失败 | 减少 |
| push.max_combined_image_samplers | 通过 | 不支持 | 减少 |
| push.max_uniform_buffers | 通过 | 不支持 | 减少 |
| stress.submit_memory | 通过 | 无结论 | 减少 |
| extendedDynamicState3DepthClipEnable | 未检测 | 不支持 | 有变化 |
| extendedDynamicState3LineRasterizationMode | 未检测 | 不支持 | 有变化 |
| extendedDynamicState3ProvokingVertexMode | 未检测 | 不支持 | 有变化 |
| extendedDynamicState3SampleMask | 未检测 | 不支持 | 有变化 |
| extendedDynamicState3TessellationDomainOrigin | 未检测 | 不支持 | 有变化 |
| shaderSharedInt64Atomics | 未检测 | 不支持 | 有变化 |
| dualSrcBlend | 未检测 | 不支持 | 有变化 |
| logicOp | 未检测 | 不支持 | 有变化 |
| wideLines | 未检测 | 不支持 | 有变化 |
| stress.scratch_per_batch | 不支持 | 未检测 | 有变化 |
跑分测试场景(基准测试)
两个驱动不是在同一批设备型号上测的。不同设备的帧时间不能用来比较驱动,看这些数据时请记住这一点。
| 场景 | 原厂 ms | Mali-G57 ms | 差异 | 启动次数 | GPU 频率,MHz | 画面对比原厂 |
|---|---|---|---|---|---|---|
| compute_nbody | 37.01 | 28.52 | 快 30% | 3 / 3 对比 3 / 3 | ? 对比 ? | 没有明显差异 没有细微差异 |
| hdr_2160p | 107.99 | 230.27 | 慢 53% | 3 / 3 对比 ? | ? 对比 ? | 未检测 |
| oit_linked_lists | 42.86 | 145.73 | 慢 71% | 3 / 3 对比 3 / 3 | ? 对比 ? | 没有明显差异 没有细微差异 |
| pipeline_barriers | 22.44 | 31.05 | 慢 28% | 3 / 3 对比 3 / 3 | ? 对比 ? | 没有明显差异 有 1466 处小区域不同 |
| subpasses | 62.67 | 49.14 | 快 28% | 3 / 3 对比 3 / 3 | ? 对比 ? | 未检测 |
技术差异(Vulkan)
仅 Mali-G57 有的扩展(0)
- 无
仅 Mali-G57 有的扩展(24)
- VK_ARM_shader_core_builtins
- VK_ARM_shader_core_properties
- VK_EXT_debug_marker
- VK_EXT_depth_clamp_zero_one
- VK_EXT_depth_clip_enable
- 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_frame_boundary
- VK_EXT_image_2d_view_of_3d
- VK_EXT_image_sliced_view_of_3d
- VK_EXT_legacy_dithering
- VK_EXT_pipeline_protected_access
- VK_EXT_pipeline_robustness
- VK_EXT_shader_image_atomic_int64
- VK_EXT_shader_tile_image
- VK_EXT_swapchain_maintenance1
- VK_EXT_vertex_input_dynamic_state
- VK_GOOGLE_decorate_string
- VK_KHR_push_descriptor
- VK_KHR_shader_atomic_int64
- VK_KHR_shader_subgroup_uniform_control_flow
不同的核心功能(2)
| shaderBufferInt64Atomics | 通过 → 不支持 |
| shaderSharedInt64Atomics | 通过 → 不支持 |
不同的限制(9)
| 限制 | 原厂 | Mali-G57 |
|---|---|---|
| maxUniformBufferRange | 2147483648 | 65536 |
| maxStorageBufferRange | 2147483648 | 268435456 |
| maxPerStageDescriptorUniformBuffers | 500000 | 36 |
| maxDescriptorSetUniformBuffers | 500000 | 216 |
| maxFragmentDualSrcAttachments | 8 | 0 |
| maxSamplerLodBias | 126 | 255 |
| maxInterpolationOffset | 0.4375 | 0.5 |
| lineWidthRange | 1, 4095.94 | 1, 1 |
| lineWidthGranularity | 0.0625 | 0 |
只有一个驱动支持的格式(多了 0 种,少了 6 种)
- 无
- B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
- G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- R64_SINT
- R64_UINT