PanVK-FristOneRR-V.3.7.0 对比 Mali-G78
在 Mali-G78 上 (Google Pixel 6, Samsung Galaxy S21 5G, Samsung Galaxy S21 FE 5G, Samsung Galaxy S21 Ultra 5G, Samsung Galaxy S22). 先列出的驱动与后一个对比,后一个是基准。
原厂Mali-G78
对比第三方PanVK-FristOneRR-V.3.7.0
图形系统版本(Vulkan)1.3.213 → 1.3.366
可选功能(扩展)95 → 159+72 -8
通过检测的功能(已验证)29 → 5732 个仅在 PanVK-FristOneRR-V.3.7.0 上通过 4 个仅在 Mali-G78 上通过
跑分测试场景(基准测试)没有共同场景
各驱动能跑的游戏(根据功能列表估算):绿色基本能跑,黄色可能能跑,橙色问题较多,红色跑不了
原厂DX92002+DX102006+DX112009+DX122015+Switch
第三方DX92002+DX102006+DX112009+DX122015+Switch
Mali-G78 详情 PanVK-FristOneRR-V.3.7.0 详情
结果不同的功能检测(59)
| 功能 | 原厂 | 第三方 | 变化 |
|---|---|---|---|
| inlineUniformBlock | 通过 | 失败 | 减少 |
| transformFeedback | 通过 | 不支持 | 减少 |
| drawIndirectFirstInstance | 通过 | 失败 | 减少 |
| geometryShader | 通过 | 不支持 | 减少 |
| borderColorSwizzle | 不支持 | 通过 | 新增 |
| colorWriteEnable | 不支持 | 通过 | 新增 |
| depthClipControl | 不支持 | 通过 | 新增 |
| extendedDynamicState | 崩溃 | 通过 | 新增 |
| extendedDynamicState2LogicOp | 不支持 | 通过 | 新增 |
| extendedDynamicState3ColorBlendEnable | 不支持 | 通过 | 新增 |
| extendedDynamicState3ColorBlendEquation | 不支持 | 通过 | 新增 |
| extendedDynamicState3ColorWriteMask | 不支持 | 通过 | 新增 |
| extendedDynamicState3DepthClampEnable | 不支持 | 通过 | 新增 |
| extendedDynamicState3LogicOpEnable | 不支持 | 通过 | 新增 |
| robustBufferAccess2 | 不支持 | 通过 | 新增 |
| vertexInputDynamicState | 不支持 | 通过 | 新增 |
| shaderBufferInt64Atomics | 不支持 | 通过 | 新增 |
| timelineSemaphore | 失败 | 通过 | 新增 |
| depthClamp | 未检测 | 通过 | 新增 |
| compat.helper_loop_terminator | 未检测 | 通过 | 新增 |
| compat.nested_map | 未检测 | 通过 | 新增 |
| core.blend_advertised_formats | 未检测 | 通过 | 新增 |
| core.compute_big_stack | 未检测 | 通过 | 新增 |
| core.host_coherent_readback | 未检测 | 通过 | 新增 |
| core.ubo_update_buffer | 未检测 | 通过 | 新增 |
| core.varying_subset | 未检测 | 通过 | 新增 |
| mem.image_padding | 未检测 | 通过 | 新增 |
| perf.fb_local_barrier_large_draws | 未检测 | 通过 | 新增 |
| perf.fb_local_barrier_overdraw | 未检测 | 通过 | 新增 |
| push.max_combined_image_samplers | 不支持 | 通过 | 新增 |
| push.max_uniform_buffers | 不支持 | 通过 | 新增 |
| stress.many_command_buffers_one_submit | 未检测 | 通过 | 新增 |
| stress.multi_draw_indirect_large | 不支持 | 通过 | 新增 |
| stress.scratch_per_batch | 未检测 | 通过 | 新增 |
| stress.spill_helper_lanes | 未检测 | 通过 | 新增 |
| sync.first_submit_clear_then_compute | 未检测 | 通过 | 新增 |
| borderColorSwizzleFromImage | 不支持 | 未检测 | 有变化 |
| depthBiasControl | 不支持 | 未检测 | 有变化 |
| depthBiasExact | 不支持 | 未检测 | 有变化 |
| extendedDynamicState2PatchControlPoints | 未检测 | 不支持 | 有变化 |
| extendedDynamicState3AlphaToCoverageEnable | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3DepthClipEnable | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3LineRasterizationMode | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3RasterizationSamples | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3SampleMask | 不支持 | 未检测 | 有变化 |
| nullDescriptor | 不支持 | 未检测 | 有变化 |
| robustImageAccess2 | 不支持 | 失败 | 有变化 |
| shaderSharedInt64Atomics | 不支持 | 未检测 | 有变化 |
| dualSrcBlend | 不支持 | 未检测 | 有变化 |
| fillModeNonSolid | 不支持 | 未检测 | 有变化 |
| largePoints | 未检测 | 失败 | 有变化 |
| logicOp | 不支持 | 未检测 | 有变化 |
| multiDrawIndirect | 不支持 | 失败 | 有变化 |
| shaderInt64 | 不支持 | 未检测 | 有变化 |
| wideLines | 不支持 | 未检测 | 有变化 |
| core.mrt_partial_kill | 未检测 | 失败 | 有变化 |
| core.ubo_written_after_record | 未检测 | 失败 | 有变化 |
| stage.geometry_max_output | 未检测 | 不支持 | 有变化 |
| stage.geometry_point_size | 未检测 | 不支持 | 有变化 |
跑分测试场景(基准测试)
两个驱动都还没有有效的跑分测试(基准测试报告)。
技术差异(Vulkan)
仅 PanVK-FristOneRR-V.3.7.0 有的扩展(72)
- VK_ARM_scheduling_controls
- VK_ARM_shader_core_builtins
- VK_ARM_shader_core_properties
- VK_EXT_attachment_feedback_loop_dynamic_state
- VK_EXT_attachment_feedback_loop_layout
- VK_EXT_border_color_swizzle
- VK_EXT_buffer_device_address
- VK_EXT_color_write_enable
- VK_EXT_conditional_rendering
- VK_EXT_debug_marker
- 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_device_address_binding_report
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state3
- VK_EXT_external_memory_acquire_unmodified
- VK_EXT_external_memory_host
- VK_EXT_graphics_pipeline_library
- VK_EXT_host_image_copy
- VK_EXT_image_2d_view_of_3d
- VK_EXT_image_sliced_view_of_3d
- VK_EXT_image_view_min_lod
- VK_EXT_legacy_dithering
- VK_EXT_memory_budget
- VK_EXT_memory_priority
- VK_EXT_multi_draw
- VK_EXT_multisampled_render_to_single_sampled
- VK_EXT_mutable_descriptor_type
- VK_EXT_non_seamless_cube_map
- VK_EXT_physical_device_drm
- VK_EXT_pipeline_robustness
- VK_EXT_robustness2
- VK_EXT_shader_atomic_float
- VK_EXT_shader_image_atomic_int64
- VK_EXT_shader_module_identifier
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_stencil_export
- VK_EXT_shader_tile_image
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_vertex_attribute_divisor
- VK_EXT_vertex_attribute_robustness
- VK_EXT_vertex_input_dynamic_state
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_decorate_string
- VK_GOOGLE_hlsl_functionality1
- VK_INTEL_shader_integer_functions2
- VK_KHR_calibrated_timestamps
- VK_KHR_draw_indirect_count
- VK_KHR_dynamic_rendering_local_read
- VK_KHR_index_type_uint8
- VK_KHR_line_rasterization
- VK_KHR_load_store_op_none
- VK_KHR_maintenance5
- VK_KHR_maintenance6
- VK_KHR_map_memory2
- VK_KHR_pipeline_executable_properties
- VK_KHR_pipeline_library
- VK_KHR_push_descriptor
- VK_KHR_shader_atomic_int64
- VK_KHR_shader_clock
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float_controls2
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_quad_control
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_VALVE_mutable_descriptor_type
仅 Mali-G78 有的扩展(8)
- VK_ARM_rasterization_order_attachment_access
- VK_EXT_fragment_density_map
- VK_EXT_fragment_density_map2
- VK_EXT_primitives_generated_query
- VK_EXT_rgba10x6_formats
- VK_EXT_transform_feedback
- VK_KHR_shared_presentable_image
- VK_KHR_swapchain_mutable_format
不同的核心功能(6)
| protectedMemory | 通过 → 不支持 |
| drawIndirectCount | 不支持 → 通过 |
| shaderBufferInt64Atomics | 不支持 → 通过 |
| shaderOutputLayer | 不支持 → 通过 |
| shaderOutputViewportIndex | 通过 → 不支持 |
| shaderSharedInt64Atomics | 不支持 → 通过 |
不同的限制(47)
| 限制 | 原厂 | 第三方 |
|---|---|---|
| maxImageDimension1D | 16384 | 65536 |
| maxImageDimension2D | 16384 | 65536 |
| maxImageDimension3D | 16384 | 65536 |
| maxImageDimensionCube | 16384 | 65536 |
| maxImageArrayLayers | 4096 | 65536 |
| maxTexelBufferElements | 268435456 | 134217728 |
| maxUniformBufferRange | 65536 | 1048576 |
| maxStorageBufferRange | 268435456 | 4294967295 |
| bufferImageGranularity | 1 | 64 |
| maxPerStageDescriptorSamplers | 500000 | 1048576 |
| maxPerStageDescriptorUniformBuffers | 36 | 1048576 |
| maxPerStageDescriptorStorageBuffers | 500000 | 1048576 |
| maxPerStageDescriptorSampledImages | 500000 | 1048576 |
| maxPerStageDescriptorStorageImages | 500000 | 1048576 |
| maxPerStageResources | 500000 | 5242889 |
| maxDescriptorSetSamplers | 500000 | 1048576 |
| maxDescriptorSetUniformBuffers | 216 | 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 | 0 |
| maxGeometryInputComponents | 128 | 0 |
| maxGeometryOutputComponents | 128 | 0 |
| maxGeometryOutputVertices | 256 | 0 |
| maxGeometryTotalOutputComponents | 2048 | 0 |
| maxFragmentDualSrcAttachments | 0 | 8 |
| maxFragmentCombinedOutputResources | 1000008 | 4360 |
| maxComputeSharedMemorySize | 32768 | 49152 |
| maxComputeWorkGroupCount | 4294967295, 4294967295, 4294967295 | 65535, 65535, 65535 |
| maxDrawIndirectCount | 1 | 4294967295 |
| maxSamplerLodBias | 255 | 127.996 |
| viewportSubPixelBits | 0 | 8 |
| minMemoryMapAlignment | 64 | 4096 |
| minTexelBufferOffsetAlignment | 64 | 16 |
| minStorageBufferOffsetAlignment | 64 | 16 |
| subPixelInterpolationOffsetBits | 4 | 8 |
| framebufferNoAttachmentsSampleCounts | 29 | 13 |
| timestampPeriod | 38.4615 | 1 |
| pointSizeRange | 1, 1024 | 0.125, 4095.94 |
| lineWidthRange | 1, 1 | 0, 7.99219 |
| lineWidthGranularity | 0 | 0.0078125 |
只有一个驱动支持的格式(多了 21 种,少了 4 种)
- A1B5G5R5_UNORM_PACK16
- A2R10G10B10_SNORM_PACK32
- A8_UNORM
- BC4_SNORM_BLOCK
- BC4_UNORM_BLOCK
- BC5_SNORM_BLOCK
- BC5_UNORM_BLOCK
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- 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
- R64_SINT
- R64_UINT
- B5G5R5A1_UNORM_PACK16
- B8G8R8_SNORM
- R4G4_UNORM_PACK8
- R5G5B5A1_UNORM_PACK16