FauxVkDB
简体中文
首页 / Mali-G52 / 对比

PanVK-Droid.0.3.5 对比 mali-panvk-27.0.0-devel-r8

在 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). 先列出的驱动与后一个对比,后一个是基准。

原厂mali-panvk-27.0.0-devel-r8Mesa 27.0.0-devel (git-d896b0a9c1)
对比
第三方PanVK-Droid.0.3.5v1.r49p1-03bet0.19498e0ae1d5dac223383c39a2e58f04
图形系统版本(Vulkan)1.3.363 → 1.3.278
可选功能(扩展)160 → 131+17 -46
通过检测的功能(已验证)45 → 343 个仅在 PanVK-Droid.0.3.5 上通过 14 个仅在 mali-panvk-27.0.0-devel-r8 上通过
跑分测试场景(基准测试)3 个更快 1 个更慢总体快 14%(几何平均)
各驱动能跑的游戏(根据功能列表估算):绿色基本能跑,黄色可能能跑,橙色问题较多,红色跑不了
原厂DX92002+DX102006+DX112009+DX122015+Switch
第三方DX92002+DX102006+DX112009+DX122015+Switch
  • compute_nbody快 28%
  • hdr_2160p慢 15%
  • pipeline_barriers快 33%
  • subpasses快 18%

每个场景中第三方驱动与原厂驱动的对比。条形向右表示更快,向左表示更慢。

1 个场景的画面有局部区域与原厂驱动不同 (pipeline_barriers:2304 个格子中有 1326 个). 整体画面是一致的,所以这是局部渲染故障,而不是画了另一个场景。

没有每次都能启动: hdr_2160p (原厂 0 / 3, 第三方 3 / 3).

mali-panvk-27.0.0-devel-r8 详情 PanVK-Droid.0.3.5 详情

结果不同的功能检测(37)

功能mali-panvk-27.0.0-devel-r8PanVK-Droid.0.3.5变化
colorWriteEnable
VK_EXT_color_write_enable
通过不支持减少
depthClipControl
VK_EXT_depth_clip_control
通过不支持减少
extendedDynamicState2LogicOp
VK_EXT_extended_dynamic_state2
通过不支持减少
extendedDynamicState3ColorBlendEnable
VK_EXT_extended_dynamic_state3
通过不支持减少
extendedDynamicState3ColorBlendEquation
VK_EXT_extended_dynamic_state3
通过不支持减少
extendedDynamicState3ColorWriteMask
VK_EXT_extended_dynamic_state3
通过不支持减少
extendedDynamicState3DepthClampEnable
VK_EXT_extended_dynamic_state3
通过不支持减少
extendedDynamicState3LogicOpEnable
VK_EXT_extended_dynamic_state3
通过不支持减少
robustBufferAccess2
VK_EXT_robustness2
通过不支持减少
multiDrawIndirect
VkPhysicalDeviceFeatures
通过不支持减少
multiViewport
VkPhysicalDeviceFeatures
通过不支持减少
textureCompressionBC
VkPhysicalDeviceFeatures
通过不支持减少
push.max_uniform_buffers
core
通过不支持减少
stress.multi_draw_indirect_large
core
通过不支持减少
transformFeedback
VK_EXT_transform_feedback
失败通过新增
shaderBufferInt64Atomics
VK_KHR_shader_atomic_int64
不支持通过新增
limit.uniform_buffer_range
core
失败通过新增
customBorderColorWithoutFormat
VK_EXT_custom_border_color
不支持未检测有变化
depthBiasControl
VK_EXT_depth_bias_control
未检测不支持有变化
depthBiasExact
VK_EXT_depth_bias_control
未检测不支持有变化
extendedDynamicState2PatchControlPoints
VK_EXT_extended_dynamic_state2
不支持未检测有变化
extendedDynamicState3AlphaToCoverageEnable
VK_EXT_extended_dynamic_state3
未检测不支持有变化
extendedDynamicState3DepthClipEnable
VK_EXT_extended_dynamic_state3
未检测不支持有变化
extendedDynamicState3ProvokingVertexMode
VK_EXT_extended_dynamic_state3
不支持未检测有变化
extendedDynamicState3RasterizationSamples
VK_EXT_extended_dynamic_state3
未检测不支持有变化
extendedDynamicState3TessellationDomainOrigin
VK_EXT_extended_dynamic_state3
不支持未检测有变化
nullDescriptor
VK_EXT_robustness2
未检测不支持有变化
geometryStreams
VK_EXT_transform_feedback
未检测不支持有变化
shaderSharedInt64Atomics
VK_KHR_shader_atomic_int64
不支持未检测有变化
depthClamp
VkPhysicalDeviceFeatures
未检测不支持有变化
fillModeNonSolid
VkPhysicalDeviceFeatures
未检测不支持有变化
shaderClipDistance
VkPhysicalDeviceFeatures
未检测不支持有变化
shaderCullDistance
VkPhysicalDeviceFeatures
未检测不支持有变化
vertexPipelineStoresAndAtomics
VkPhysicalDeviceFeatures
未检测不支持有变化
compat.helper_loop_terminator
core
失败未检测有变化
compat.nested_map
core
失败未检测有变化
push.max_combined_image_samplers
core
失败不支持有变化

跑分测试场景(基准测试)

两个驱动不是在同一批设备型号上测的。不同设备的帧时间不能用来比较驱动,看这些数据时请记住这一点。

场景mali-panvk-27.0.0-devel-r8 msPanVK-Droid.0.3.5 ms差异启动次数GPU 频率,MHz画面对比原厂
compute_nbody103.56 典型值 103.1080.79 典型值 81.50快 28%3 / 3 对比 3 / 3? 对比 ? 频率未知没有明显差异 0.0 没有细微差异 最差 0.0 64x36
hdr_2160p148.09 典型值 147.38173.86 典型值 173.13慢 15%0 / 3 对比 3 / 3? 对比 ? 频率未知未检测
oit_linked_lists80.24n/a仅一侧有3 / 3 对比 3 / 3? 对比 ? 频率未知没有明显差异 0.0 没有细微差异 最差 0.0 64x36
pipeline_barriers88.24 典型值 90.5466.50 典型值 67.66快 33%3 / 3 对比 3 / 3? 对比 ? 频率未知没有明显差异 9.3 有 1326 处小区域不同 最差 77.3 64x36
subpasses151.35 典型值 152.48127.93 典型值 128.69快 18%3 / 3 对比 3 / 3? 对比 ? 频率未知未检测

绘制一帧所需的时间,按场景统计:取该场景最佳一轮的平均帧时间,也就是驱动交付了多少帧;越低越快。旁边的“典型值”是中位帧,当驱动的帧分成两种速度时,它可能比平均值低很多。在记录每轮平均值之前生成的一对报告,改用中位数对比。各轮之间相差超过 15% 的场景会被排除。标为“被锁帧”的场景,是被驱动或显示队列锁在了那个平均帧时间上,并且同一次运行中至少还有另一个场景也是如此;它的耗时反映的是帧的间隔,而不是驱动渲染得有多快,所以不参与对比。标为“太轻”的场景,在标准尺寸(1920×1080)下两个驱动都不到 8 ms,此时屏幕的帧队列对帧间隔的影响比芯片更大;这时对比的是它更重的版本:以 _2160p 结尾的行是以 3840×2160 绘制的该场景,compute_nbody_2x 是粒子数翻倍的该场景。“更快”和“更慢”描述的是 PanVK-Droid.0.3.5 相对 mali-panvk-27.0.0-devel-r8。“画面对比原厂”把每个场景的一个固定帧按粗略的色块网格对比(0 为完全相同,超过 40 表示画面不同),用来找出没有被画出来的场景。如果两份报告都带有更细的 64×36 网格,第二个数字是其 2,304 个格子中有多少个差异超过 255 里的 4,“最差”是单个格子的最大差异;这能找出其余部分都一致的画面里的小渲染错误。标为 16x9 的行来自细网格出现之前生成的报告。“启动次数”是一个场景的进程启动中,有多少次进入了被测量的一轮。标为“不可比”的 GPU 频率,表示两次计时之间的差异超过设备最大频率的 5%。

技术差异(Vulkan)

仅 PanVK-Droid.0.3.5 有的扩展(17)
  • VK_ANDROID_external_format_resolve
  • VK_ARM_rasterization_order_attachment_access
  • VK_EXT_device_fault
  • VK_EXT_frame_boundary
  • VK_EXT_image_compression_control_swapchain
  • VK_EXT_pipeline_protected_access
  • VK_EXT_primitives_generated_query
  • VK_EXT_rasterization_order_attachment_access
  • VK_EXT_rgba10x6_formats
  • VK_EXT_shader_image_atomic_int64
  • VK_EXT_shader_tile_image
  • VK_EXT_subpass_merge_feedback
  • VK_KHR_shader_atomic_int64
  • VK_KHR_shader_maximal_reconvergence
  • VK_KHR_shader_quad_control
  • VK_KHR_shader_subgroup_uniform_control_flow
  • VK_KHR_shared_presentable_image
仅 mali-panvk-27.0.0-devel-r8 有的扩展(46)
  • 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_depth_bias_control
  • VK_EXT_depth_clamp_control
  • VK_EXT_depth_clamp_zero_one
  • VK_EXT_depth_clip_control
  • VK_EXT_depth_clip_enable
  • VK_EXT_graphics_pipeline_library
  • VK_EXT_hdr_metadata
  • VK_EXT_host_image_copy
  • VK_EXT_image_view_min_lod
  • VK_EXT_map_memory_placed
  • VK_EXT_memory_budget
  • VK_EXT_non_seamless_cube_map
  • VK_EXT_physical_device_drm
  • 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_INTEL_shader_integer_functions2
  • VK_KHR_depth_clamp_zero_one
  • VK_KHR_internally_synchronized_queues
  • VK_KHR_maintenance10
  • VK_KHR_maintenance11
  • VK_KHR_maintenance7
  • VK_KHR_maintenance8
  • VK_KHR_maintenance9
  • VK_KHR_pipeline_binary
  • VK_KHR_pipeline_executable_properties
  • VK_KHR_pipeline_library
  • VK_KHR_push_descriptor
  • VK_KHR_robustness2
  • VK_KHR_shader_clock
  • VK_KHR_shader_constant_data
  • VK_KHR_shader_fma
  • VK_KHR_shader_relaxed_extended_instruction
  • VK_KHR_unified_image_layouts
  • VK_KHR_workgroup_memory_explicit_layout
不同的核心功能(16)
descriptorBindingVariableDescriptorCount Vulkan 1.2通过 → 不支持
runtimeDescriptorArray Vulkan 1.2通过 → 不支持
shaderBufferInt64Atomics Vulkan 1.2不支持 → 通过
shaderFloat16 Vulkan 1.2不支持 → 通过
shaderInputAttachmentArrayDynamicIndexing Vulkan 1.2通过 → 不支持
shaderInputAttachmentArrayNonUniformIndexing Vulkan 1.2通过 → 不支持
shaderOutputViewportIndex Vulkan 1.2不支持 → 通过
shaderSampledImageArrayNonUniformIndexing Vulkan 1.2通过 → 不支持
shaderSharedInt64Atomics Vulkan 1.2不支持 → 通过
shaderStorageBufferArrayNonUniformIndexing Vulkan 1.2通过 → 不支持
shaderStorageImageArrayNonUniformIndexing Vulkan 1.2通过 → 不支持
shaderStorageTexelBufferArrayDynamicIndexing Vulkan 1.2通过 → 不支持
shaderStorageTexelBufferArrayNonUniformIndexing Vulkan 1.2通过 → 不支持
shaderUniformBufferArrayNonUniformIndexing Vulkan 1.2通过 → 不支持
shaderUniformTexelBufferArrayDynamicIndexing Vulkan 1.2通过 → 不支持
shaderUniformTexelBufferArrayNonUniformIndexing Vulkan 1.2通过 → 不支持
不同的限制(52)
限制mali-panvk-27.0.0-devel-r8PanVK-Droid.0.3.5
maxImageDimension1D6553616384
maxImageDimension2D6553616384
maxImageDimension3D6553616384
maxImageDimensionCube6553616384
maxImageArrayLayers655364096
maxTexelBufferElements134217728268435456
maxUniformBufferRange104857665536
maxStorageBufferRange42949672952147483648
maxMemoryAllocationCount429496729516384
bufferImageGranularity641
sparseAddressSpaceSize300647710720
maxPerStageDescriptorUniformBuffers223241
maxPerStageDescriptorStorageBuffers6435
maxPerStageDescriptorStorageImages3221
maxPerStageResources712570
maxDescriptorSetSamplers65535768
maxDescriptorSetUniformBuffers2231446
maxDescriptorSetUniformBuffersDynamic1632
maxDescriptorSetStorageBuffers4096210
maxDescriptorSetStorageBuffersDynamic832
maxDescriptorSetSampledImages655351536
maxDescriptorSetStorageImages256126
maxVertexInputAttributes1632
maxVertexInputBindings1632
maxVertexInputAttributeOffset42949672952047
maxVertexInputBindingStride655352048
maxTessellationControlPerVertexInputComponents64128
maxTessellationControlPerVertexOutputComponents64128
maxTessellationControlTotalOutputComponents20484096
maxTessellationEvaluationInputComponents64128
maxTessellationEvaluationOutputComponents64128
maxGeometryInputComponents64128
maxGeometryTotalOutputComponents10242048
maxFragmentCombinedOutputResources436064
maxComputeWorkGroupCount65535, 65535, 655354294967295, 4294967295, 4294967295
maxDrawIndirectCount42949672951
maxSamplerLodBias127.996126
maxViewports161
minMemoryMapAlignment409664
minTexelBufferOffsetAlignment1664
minStorageBufferOffsetAlignment1664
maxInterpolationOffset0.50.4375
subPixelInterpolationOffsetBits84
framebufferNoAttachmentsSampleCounts529
timestampComputeAndGraphics01
timestampPeriod076.9231
maxClipDistances80
maxCullDistances80
maxCombinedClipAndCullDistances80
pointSizeRange0.125, 4095.941, 1024
lineWidthRange0, 7.992191, 4095.94
lineWidthGranularity0.00781250.0625
只有一个驱动支持的格式(多了 10 种,少了 27 种)

仅 PanVK-Droid.0.3.5 有:

  • B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
  • B5G5R5A1_UNORM_PACK16
  • B8G8R8G8_422_UNORM
  • B8G8R8_SNORM
  • G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
  • G8B8G8R8_422_UNORM
  • R4G4_UNORM_PACK8
  • R5G5B5A1_UNORM_PACK16
  • R64_SINT
  • R64_UINT

仅 mali-panvk-27.0.0-devel-r8 有:

  • A2R10G10B10_SNORM_PACK32
  • 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
  • G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16
  • G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16
  • G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16
  • G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16
  • G16_B16R16_2PLANE_420_UNORM
  • G16_B16R16_2PLANE_422_UNORM
  • G16_B16R16_2PLANE_444_UNORM
  • G8_B8R8_2PLANE_444_UNORM
  • R10X6G10X6_UNORM_2PACK16
  • R10X6_UNORM_PACK16