panvk_faux123_v1.0.2 對比 Mali-G57
在 Mali-G57 上 (Anbernic RG556, Motorola moto g35 5G, Redmi A5, TECNO KL4). 先列出的驅動程式與後一個對比,後一個是基準。
原廠Mali-G57
對比自訂panvk_faux123_v1.0.2
圖形系統版本(Vulkan)1.3.278 → 1.3.363
可選功能(擴充功能)121 → 178+67 -10
通過檢測的功能(已驗證)53 → 6514 個僅在 panvk_faux123_v1.0.2 上通過 2 個僅在 Mali-G57 上通過
跑分測試場景(基準測試)2 個更快 3 個更慢總體慢 33%(幾何平均)
各驅動程式能跑的遊戲(根據功能列表估算):綠色大致能跑,黃色未必能跑,橙色問題較多,紅色跑不動
原廠DX92002+DX102006+DX112009+DX122015+Switch
自訂DX92002+DX102006+DX112009+DX122015+Switch
- compute_nbody快 21%
- hdr_2160p慢 54%
- oit_linked_lists慢 73%
- pipeline_barriers慢 23%
- subpasses快 19%
1 個場景的畫面有局部區域與原廠驅動程式不同 (pipeline_barriers:2304 個格子中有 1477 個). 整體畫面是一致的,所以這是局部渲染故障,而不是畫了另一個場景。
Mali-G57 詳情 panvk_faux123_v1.0.2 詳情
結果不同的功能檢測(33)
| 功能 | 原廠 | 自訂 | 變化 |
|---|---|---|---|
| perf.fb_local_barrier_large_draws | 通過 | 未檢測 | 減少 |
| perf.fb_local_barrier_overdraw | 通過 | 未檢測 | 減少 |
| colorWriteEnable | 不支援 | 通過 | 新增 |
| depthClipControl | 不支援 | 通過 | 新增 |
| extendedDynamicState2LogicOp | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorBlendEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorBlendEquation | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorWriteMask | 不支援 | 通過 | 新增 |
| extendedDynamicState3LogicOpEnable | 不支援 | 通過 | 新增 |
| robustBufferAccess2 | 不支援 | 通過 | 新增 |
| robustImageAccess2 | 不支援 | 通過 | 新增 |
| multiDrawIndirect | 不支援 | 通過 | 新增 |
| multiViewport | 不支援 | 通過 | 新增 |
| textureCompressionBC | 不支援 | 通過 | 新增 |
| stage.geometry_point_size | 不支援 | 通過 | 新增 |
| stress.multi_draw_indirect_large | 不支援 | 通過 | 新增 |
| depthBiasControl | 不支援 | 未檢測 | 有變化 |
| depthBiasExact | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3AlphaToCoverageEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3ProvokingVertexMode | 未檢測 | 不支援 | 有變化 |
| extendedDynamicState3RasterizationSamples | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3TessellationDomainOrigin | 未檢測 | 不支援 | 有變化 |
| nullDescriptor | 不支援 | 未檢測 | 有變化 |
| geometryStreams | 不支援 | 未檢測 | 有變化 |
| depthBounds | 不支援 | 未檢測 | 有變化 |
| fillModeNonSolid | 不支援 | 未檢測 | 有變化 |
| pipelineStatisticsQuery | 不支援 | 未檢測 | 有變化 |
| shaderClipDistance | 不支援 | 未檢測 | 有變化 |
| shaderCullDistance | 不支援 | 未檢測 | 有變化 |
| shaderTessellationAndGeometryPointSize | 不支援 | 未檢測 | 有變化 |
| variableMultisampleRate | 不支援 | 未檢測 | 有變化 |
| vertexPipelineStoresAndAtomics | 不支援 | 未檢測 | 有變化 |
| stress.scratch_per_batch | 不支援 | 未檢測 | 有變化 |
跑分測試場景(基準測試)
兩個驅動程式不是在同一批裝置型號上測的。不同裝置的幀時間不能用來比較驅動程式,看這些資料時請記住這一點。
| 場景 | 原廠 ms | 自訂 ms | 差異 | 啟動次數 | GPU 頻率,MHz | 畫面對比原廠 |
|---|---|---|---|---|---|---|
| compute_nbody | 37.01 | 30.58 | 快 21% | 3 / 3 對比 3 / 3 | ? 對比 ? | 沒有明顯差異 沒有細微差異 |
| hdr_2160p | 107.99 | 234.46 | 慢 54% | 3 / 3 對比 3 / 3 | ? 對比 ? | 沒有明顯差異 沒有細微差異 |
| oit_linked_lists | 42.86 | 156.14 | 慢 73% | 3 / 3 對比 3 / 3 | ? 對比 ? | 沒有明顯差異 沒有細微差異 |
| pipeline_barriers | 22.44 | 29.18 | 慢 23% | 3 / 3 對比 3 / 3 | ? 對比 ? | 沒有明顯差異 有 1477 處小區域不同 |
| subpasses | 62.67 | 52.81 | 快 19% | 3 / 3 對比 3 / 3 | ? 對比 ? | 未檢測 |
技術差異(Vulkan)
僅 panvk_faux123_v1.0.2 有的擴充功能(67)
- VK_ARM_scheduling_controls
- VK_EXT_attachment_feedback_loop_dynamic_state
- VK_EXT_attachment_feedback_loop_layout
- VK_EXT_buffer_device_address
- VK_EXT_color_write_enable
- VK_EXT_conditional_rendering
- VK_EXT_depth_bias_control
- VK_EXT_depth_clamp_control
- VK_EXT_depth_clip_control
- VK_EXT_graphics_pipeline_library
- VK_EXT_host_image_copy
- VK_EXT_image_view_min_lod
- VK_EXT_map_memory_placed
- VK_EXT_memory_budget
- VK_EXT_mutable_descriptor_type
- VK_EXT_non_seamless_cube_map
- VK_EXT_physical_device_drm
- VK_EXT_present_timing
- VK_EXT_robustness2
- VK_EXT_shader_atomic_float
- VK_EXT_shader_module_identifier
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_stencil_export
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_vertex_attribute_divisor
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_hlsl_functionality1
- VK_GOOGLE_user_type
- VK_KHR_calibrated_timestamps
- VK_KHR_compute_shader_derivatives
- VK_KHR_depth_clamp_zero_one
- VK_KHR_draw_indirect_count
- VK_KHR_dynamic_rendering_local_read
- VK_KHR_index_type_uint8
- VK_KHR_internally_synchronized_queues
- VK_KHR_line_rasterization
- VK_KHR_load_store_op_none
- VK_KHR_maintenance5
- VK_KHR_maintenance6
- VK_KHR_maintenance7
- VK_KHR_maintenance8
- VK_KHR_maintenance9
- VK_KHR_map_memory2
- VK_KHR_pipeline_binary
- VK_KHR_pipeline_executable_properties
- VK_KHR_pipeline_library
- VK_KHR_present_id
- VK_KHR_present_id2
- VK_KHR_present_wait
- VK_KHR_present_wait2
- VK_KHR_robustness2
- VK_KHR_shader_clock
- VK_KHR_shader_constant_data
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float_controls2
- VK_KHR_shader_fma
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_quad_control
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_untyped_pointers
- VK_KHR_swapchain_maintenance1
- VK_KHR_swapchain_mutable_format
- VK_KHR_unified_image_layouts
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_VALVE_mutable_descriptor_type
僅 Mali-G57 有的擴充功能(10)
- VK_ARM_rasterization_order_attachment_access
- VK_EXT_device_fault
- VK_EXT_fragment_density_map
- VK_EXT_fragment_density_map2
- VK_EXT_frame_boundary
- VK_EXT_pipeline_protected_access
- VK_EXT_rasterization_order_attachment_access
- VK_EXT_rgba10x6_formats
- VK_EXT_subpass_merge_feedback
- VK_KHR_shared_presentable_image
不同的核心功能(1)
| drawIndirectCount | 不支援 → 通過 |
不同的限制(48)
| 限制 | 原廠 | 自訂 |
|---|---|---|
| maxImageDimension1D | 16384 | 65536 |
| maxImageDimension2D | 16384 | 65536 |
| maxImageDimension3D | 16384 | 65536 |
| maxImageDimensionCube | 16384 | 65536 |
| maxImageArrayLayers | 4096 | 65536 |
| maxTexelBufferElements | 268435456 | 134217728 |
| maxUniformBufferRange | 2147483648 | 1048576 |
| maxStorageBufferRange | 2147483648 | 4294967295 |
| maxMemoryAllocationCount | 16384 | 4294967295 |
| bufferImageGranularity | 1 | 64 |
| sparseAddressSpaceSize | 0 | 140737454800896 |
| maxPerStageDescriptorSamplers | 500000 | 1048576 |
| maxPerStageDescriptorUniformBuffers | 500000 | 1048576 |
| maxPerStageDescriptorStorageBuffers | 500000 | 1048576 |
| maxPerStageDescriptorSampledImages | 500000 | 1048576 |
| maxPerStageDescriptorStorageImages | 500000 | 1048576 |
| maxPerStageResources | 500000 | 5242889 |
| maxDescriptorSetSamplers | 500000 | 1048576 |
| maxDescriptorSetUniformBuffers | 500000 | 1048576 |
| maxDescriptorSetUniformBuffersDynamic | 32 | 16 |
| maxDescriptorSetStorageBuffers | 500000 | 1048576 |
| maxDescriptorSetStorageBuffersDynamic | 32 | 8 |
| maxDescriptorSetSampledImages | 500000 | 1048576 |
| maxDescriptorSetStorageImages | 500000 | 1048576 |
| maxVertexInputAttributes | 32 | 16 |
| maxVertexInputBindings | 32 | 16 |
| maxVertexInputAttributeOffset | 2047 | 4294967295 |
| maxVertexInputBindingStride | 2048 | 65535 |
| maxGeometryShaderInvocations | 32 | 64 |
| maxGeometryOutputVertices | 256 | 1024 |
| maxGeometryTotalOutputComponents | 2048 | 1024 |
| maxFragmentCombinedOutputResources | 1000008 | 4360 |
| maxComputeWorkGroupCount | 4294967295, 4294967295, 4294967295 | 65535, 65535, 65535 |
| maxDrawIndirectCount | 1 | 65535 |
| maxSamplerLodBias | 126 | 127.996 |
| maxViewports | 1 | 16 |
| minMemoryMapAlignment | 64 | 4096 |
| minTexelBufferOffsetAlignment | 64 | 16 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| maxInterpolationOffset | 0.4375 | 0.5 |
| subPixelInterpolationOffsetBits | 4 | 8 |
| framebufferNoAttachmentsSampleCounts | 29 | 13 |
| maxClipDistances | 0 | 8 |
| maxCullDistances | 0 | 8 |
| maxCombinedClipAndCullDistances | 0 | 8 |
| pointSizeRange | 1, 1024 | 0.125, 4095.94 |
| lineWidthRange | 1, 4095.94 | 0, 7.99219 |
| lineWidthGranularity | 0.0625 | 0.0078125 |
只有一個驅動程式支援的格式(多了 23 種,少了 10 種)
- A1B5G5R5_UNORM_PACK16
- A2R10G10B10_SNORM_PACK32
- A8_UNORM
- BC1_RGBA_SRGB_BLOCK
- BC1_RGBA_UNORM_BLOCK
- BC1_RGB_SRGB_BLOCK
- BC1_RGB_UNORM_BLOCK
- BC2_SRGB_BLOCK
- BC2_UNORM_BLOCK
- BC3_SRGB_BLOCK
- BC3_UNORM_BLOCK
- BC4_SNORM_BLOCK
- BC4_UNORM_BLOCK
- BC5_SNORM_BLOCK
- BC5_UNORM_BLOCK
- BC6H_SFLOAT_BLOCK
- BC6H_UFLOAT_BLOCK
- BC7_SRGB_BLOCK
- BC7_UNORM_BLOCK
- G16_B16R16_2PLANE_420_UNORM
- G16_B16R16_2PLANE_422_UNORM
- G16_B16R16_2PLANE_444_UNORM
- G8_B8R8_2PLANE_444_UNORM
- B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
- B5G5R5A1_UNORM_PACK16
- B8G8R8G8_422_UNORM
- B8G8R8_SNORM
- G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- G8B8G8R8_422_UNORM
- R4G4_UNORM_PACK8
- R5G5B5A1_UNORM_PACK16