turnip_faux123_v1.1.9-rc14 对比 Qualcomm Technologies Inc. Adreno Vulkan Driver
在 Adreno (TM) 830 上 (AYN Odin 3). 先列出的驱动与后一个对比,后一个是基准。
原厂Qualcomm Technologies Inc. Adreno Vulkan Driver
对比第三方turnip_faux123_v1.1.9-rc14
图形系统版本(Vulkan)1.3.284 → 1.4.359
可选功能(扩展)164 → 172+31 -23
通过检测的功能(已验证)44 → 517 个仅在 turnip_faux123_v1.1.9-rc14 上通过 0 个仅在 Qualcomm Technologies Inc. Adreno Vulkan Driver 上通过
跑分测试场景(基准测试)0 个更快 4 个更慢 1 个持平总体慢 11%(几何平均)
各驱动能跑的游戏(根据功能列表估算):绿色基本能跑,黄色可能能跑,橙色问题较多,红色跑不了
原厂DX92002+DX102006+DX112009+DX122015+Switch
第三方DX92002+DX102006+DX112009+DX122015+Switch
- compute_nbody_2x慢 21%
- hdr_2160p慢 21%
- oit_linked_lists慢 6%
- pipeline_barriers_2160p快 1%
- subpasses_2160p慢 2%
2 个场景的画面有局部区域与原厂驱动不同 (pipeline_barriers:2304 个格子中有 1337 个, pipeline_barriers_2160p:2304 个格子中有 1038 个). 整体画面是一致的,所以这是局部渲染故障,而不是画了另一个场景。
条件不一致:其中 3 个场景测试时 GPU 频率不同(例如 compute_nbody_2x: 原厂为设备最大频率的 88%,第三方为 100%). 帧时间的部分差异来自设备自己选择的频率,而不是驱动。
未对比:3 个场景的帧率被锁帧(compute_nbody, pipeline_barriers, subpasses)。两个驱动中至少有一个在这里被锁在固定帧率,所以两边的耗时测的不是同一件事。
Qualcomm Technologies Inc. Adreno Vulkan Driver 详情 turnip_faux123_v1.1.9-rc14 详情
结果不同的功能检测(24)
| 功能 | 原厂 | 第三方 | 变化 |
|---|---|---|---|
| extendedDynamicState3ColorBlendEnable | 不支持 | 通过 | 新增 |
| extendedDynamicState3ColorBlendEquation | 不支持 | 通过 | 新增 |
| extendedDynamicState3ColorWriteMask | 不支持 | 通过 | 新增 |
| extendedDynamicState3DepthClampEnable | 不支持 | 通过 | 新增 |
| extendedDynamicState3LogicOpEnable | 不支持 | 通过 | 新增 |
| extendedDynamicState3PolygonMode | 不支持 | 通过 | 新增 |
| core.copy_wide_row_length | 失败 | 通过 | 新增 |
| extendedDynamicState3AlphaToCoverageEnable | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3AlphaToOneEnable | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3ConservativeRasterizationMode | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3DepthClipEnable | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3DepthClipNegativeOneToOne | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3ExtraPrimitiveOverestimationSize | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3LineRasterizationMode | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3ProvokingVertexMode | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3RasterizationSamples | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3RasterizationStream | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3SampleLocationsEnable | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3SampleMask | 不支持 | 未检测 | 有变化 |
| extendedDynamicState3TessellationDomainOrigin | 不支持 | 未检测 | 有变化 |
| shaderResourceMinLod | 不支持 | 未检测 | 有变化 |
| shaderResourceResidency | 不支持 | 未检测 | 有变化 |
| sparseResidency16Samples | 未检测 | 不支持 | 有变化 |
| sparseResidencyAliased | 不支持 | 未检测 | 有变化 |
跑分测试场景(基准测试)
| 场景 | 原厂 ms | 第三方 ms | 差异 | 启动次数 | GPU 频率,MHz | 画面对比原厂 |
|---|---|---|---|---|---|---|
| compute_nbody | n/a | 太轻,参见 compute_nbody_2x | 3 / 3 对比 3 / 3 | 967 对比 1100 不可比 | 没有明显差异 没有细微差异 | |
| compute_nbody_2x | 8.49 | 10.82 | 慢 21% | 3 / 3 对比 3 / 3 | 967 对比 1100 不可比 | 没有明显差异 没有细微差异 |
| hdr_2160p | 13.63 | 17.25 | 慢 21% | ? 对比 3 / 3 | ? 对比 911 | 未检测 |
| oit_linked_lists | 16.38 | 17.46 | 慢 6% | 3 / 3 对比 3 / 3 | 967 对比 1100 不可比 | 没有明显差异 没有细微差异 |
| pipeline_barriers | n/a | 太轻,参见 pipeline_barriers_2160p | 3 / 3 对比 3 / 3 | 967 对比 1100 不可比 | 没有明显差异 有 1337 处小区域不同 | |
| pipeline_barriers_2160p | 6.02 | 5.96 | 快 1% | 3 / 3 对比 3 / 3 | 967 对比 995 | 没有明显差异 有 1038 处小区域不同 |
| subpasses | 2.52 | 太轻,参见 subpasses_2160p | 3 / 3 对比 3 / 3 | 967 对比 1100 不可比 | 未检测 | |
| subpasses_2160p | 9.44 | 9.68 | 慢 2% | 3 / 3 对比 3 / 3 | 967 对比 1036 不可比 | 未检测 |
技术差异(Vulkan)
仅 turnip_faux123_v1.1.9-rc14 有的扩展(31)
- VK_AMD_buffer_marker
- VK_ARM_rasterization_order_attachment_access
- VK_EXT_attachment_feedback_loop_dynamic_state
- VK_EXT_attachment_feedback_loop_layout
- VK_EXT_custom_resolve
- VK_EXT_debug_marker
- VK_EXT_depth_clamp_control
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state3
- VK_EXT_external_memory_dma_buf
- VK_EXT_graphics_pipeline_library
- VK_EXT_host_image_copy
- VK_EXT_image_drm_format_modifier
- VK_EXT_legacy_dithering
- VK_EXT_legacy_vertex_attributes
- VK_EXT_map_memory_placed
- VK_EXT_memory_budget
- VK_EXT_nested_command_buffer
- VK_EXT_non_seamless_cube_map
- VK_EXT_primitive_restart_index
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_decorate_string
- VK_GOOGLE_hlsl_functionality1
- VK_KHR_compute_shader_derivatives
- VK_KHR_maintenance7
- VK_KHR_pipeline_library
- VK_KHR_shader_relaxed_extended_instruction
- VK_NV_compute_shader_derivatives
- VK_VALVE_mutable_descriptor_type
仅 Qualcomm Technologies Inc. Adreno Vulkan Driver 有的扩展(23)
- VK_ANDROID_external_format_resolve
- VK_EXT_astc_decode_mode
- VK_EXT_blend_operation_advanced
- VK_EXT_depth_range_unrestricted
- VK_EXT_device_fault
- VK_EXT_external_memory_acquire_unmodified
- VK_EXT_fragment_density_map
- VK_EXT_fragment_density_map2
- VK_EXT_image_compression_control_swapchain
- VK_EXT_pipeline_protected_access
- VK_KHR_ray_tracing_position_fetch
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_quad_control
- VK_KHR_shared_presentable_image
- VK_NV_optical_flow
- VK_QCOM_filter_cubic_weights
- VK_QCOM_fragment_density_map_offset
- VK_QCOM_image_processing2
- VK_QCOM_render_pass_store_ops
- VK_QCOM_render_pass_transform
- VK_QCOM_rotated_copy_commands
- VK_QCOM_tile_properties
- VK_QCOM_ycbcr_degamma
不同的核心功能(20)
| multiviewGeometryShader | 不支持 → 通过 |
| protectedMemory | 通过 → 不支持 |
| shaderInputAttachmentArrayDynamicIndexing | 通过 → 不支持 |
| shaderInputAttachmentArrayNonUniformIndexing | 通过 → 不支持 |
| bresenhamLines | 不支持 → 通过 |
| dynamicRenderingLocalRead | 不支持 → 通过 |
| globalPriorityQuery | 不支持 → 通过 |
| hostImageCopy | 不支持 → 通过 |
| indexTypeUint8 | 不支持 → 通过 |
| maintenance5 | 不支持 → 通过 |
| maintenance6 | 不支持 → 通过 |
| pipelineRobustness | 不支持 → 通过 |
| pushDescriptor | 不支持 → 通过 |
| rectangularLines | 不支持 → 通过 |
| shaderExpectAssume | 不支持 → 通过 |
| shaderFloatControls2 | 不支持 → 通过 |
| shaderSubgroupRotate | 不支持 → 通过 |
| shaderSubgroupRotateClustered | 不支持 → 通过 |
| vertexAttributeInstanceRateDivisor | 不支持 → 通过 |
| vertexAttributeInstanceRateZeroDivisor | 不支持 → 通过 |
不同的限制(20)
| 限制 | 原厂 | 第三方 |
|---|---|---|
| maxTexelBufferElements | 134217728 | 536870911 |
| bufferImageGranularity | 1 | 64 |
| sparseAddressSpaceSize | 562949953421311 | 274877906944 |
| maxPerStageResources | 50331648 | 16777216 |
| maxDescriptorSetUniformBuffersDynamic | 32 | 16 |
| maxDescriptorSetStorageBuffersDynamic | 16 | 8 |
| maxVertexInputAttributeOffset | 4096 | 4095 |
| maxGeometryInputComponents | 128 | 64 |
| maxGeometryOutputVertices | 1024 | 256 |
| maxGeometryTotalOutputComponents | 131072 | 1024 |
| maxFragmentInputComponents | 112 | 128 |
| minMemoryMapAlignment | 64 | 4096 |
| minUniformBufferOffsetAlignment | 256 | 64 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| maxFramebufferLayers | 2048 | 1024 |
| discreteQueuePriorities | 3 | 2 |
| pointSizeRange | 1, 4095 | 1, 4092 |
| optimalBufferCopyOffsetAlignment | 64 | 128 |
| optimalBufferCopyRowPitchAlignment | 64 | 128 |
| nonCoherentAtomSize | 1 | 64 |
只有一个驱动支持的格式(多了 5 种,少了 1 种)
- B8G8R8A8_SSCALED
- B8G8R8A8_USCALED
- B8G8R8_SINT
- B8G8R8_SNORM
- B8G8R8_UINT
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16