WN-Turnip-1.14-p_Axxx 對比 Qualcomm Technologies Inc. Adreno Vulkan Driver
在 Adreno (TM) 740 上 (AYN Odin2, AYN Odin2 Portal, AYN Thor, Moorechip Retroid Pocket Nova, motorola edge plus 2023, OnePlus 11 5G, POCO F6 Pro, Samsung Galaxy S23, Samsung Galaxy S23, Samsung Galaxy S23, Samsung Galaxy S23 Ultra, Samsung Galaxy S23 Ultra, Samsung Galaxy S23+, Sony Xperia 1 V, Xiaomi 13 pro). 先列出的驅動程式與後一個對比,後一個是基準。
原廠Qualcomm Technologies Inc. Adreno Vulkan Driver
對比自訂WN-Turnip-1.14-p_Axxx
圖形系統版本(Vulkan)1.3.128 → 1.4.362
可選功能(擴充功能)113 → 172+67 -8
通過檢測的功能(已驗證)41 → 499 個僅在 WN-Turnip-1.14-p_Axxx 上通過 1 個僅在 Qualcomm Technologies Inc. Adreno Vulkan Driver 上通過
跑分測試場景(基準測試)1 個更快 2 個更慢 1 個持平總體慢 11%(幾何平均)
各驅動程式能跑的遊戲(根據功能列表估算):綠色大致能跑,黃色未必能跑,橙色問題較多,紅色跑不動
原廠DX92002+DX102006+DX112009+DX122015+Switch
自訂DX92002+DX102006+DX112009+DX122015+Switch
- hdr_2160p慢 38%
- oit_linked_lists慢 4%
- pipeline_barriers_2160p快 6%
- subpasses_2160p慢 0%
2 個場景的畫面有局部區域與原廠驅動程式不同 (pipeline_barriers:2304 個格子中有 1425 個, pipeline_barriers_2160p:2304 個格子中有 1028 個). 整體畫面是一致的,所以這是局部渲染故障,而不是畫了另一個場景。
沒有每次都能啟動: compute_nbody (原廠 3 / 3, 自訂 0 / 3).
Qualcomm Technologies Inc. Adreno Vulkan Driver 詳情 WN-Turnip-1.14-p_Axxx 詳情
結果不同的功能檢測(35)
| 功能 | 原廠 | 自訂 | 變化 |
|---|---|---|---|
| core.compute_udiv | 通過 | 失敗 | 減少 |
| borderColorSwizzle | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorBlendEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorBlendEquation | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorWriteMask | 不支援 | 通過 | 新增 |
| extendedDynamicState3DepthClampEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3LogicOpEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3PolygonMode | 不支援 | 通過 | 新增 |
| inlineUniformBlock | 不支援 | 通過 | 新增 |
| shaderBufferInt64Atomics | 不支援 | 通過 | 新增 |
| borderColorSwizzleFromImage | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3AlphaToCoverageEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3AlphaToOneEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3ConservativeRasterizationMode | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3DepthClipEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3DepthClipNegativeOneToOne | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3ExtraPrimitiveOverestimationSize | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3LineRasterizationMode | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3ProvokingVertexMode | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3RasterizationSamples | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3RasterizationStream | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3SampleLocationsEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3SampleMask | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3TessellationDomainOrigin | 不支援 | 未檢測 | 有變化 |
| descriptorBindingInlineUniformBlockUpdateAfterBind | 不支援 | 未檢測 | 有變化 |
| shaderInt64 | 不支援 | 未檢測 | 有變化 |
| shaderResourceMinLod | 不支援 | 未檢測 | 有變化 |
| shaderResourceResidency | 不支援 | 未檢測 | 有變化 |
| shaderTessellationAndGeometryPointSize | 不支援 | 未檢測 | 有變化 |
| sparseResidency16Samples | 未檢測 | 不支援 | 有變化 |
| sparseResidency2Samples | 未檢測 | 不支援 | 有變化 |
| sparseResidency4Samples | 未檢測 | 不支援 | 有變化 |
| sparseResidency8Samples | 未檢測 | 不支援 | 有變化 |
| sparseResidencyAliased | 不支援 | 未檢測 | 有變化 |
| sparseResidencyImage2D | 未檢測 | 不支援 | 有變化 |
跑分測試場景(基準測試)
兩個驅動程式不是在同一批裝置型號上測的。不同裝置的幀時間不能用來比較驅動程式,看這些資料時請記住這一點。
| 場景 | 原廠 ms | 自訂 ms | 差異 | 啟動次數 | GPU 頻率,MHz | 畫面對比原廠 |
|---|---|---|---|---|---|---|
| compute_nbody | 7.17 | n/a | 僅一側有 | 3 / 3 對比 0 / 3 | 626 對比 ? | 未檢測 |
| compute_nbody_2x | 20.34 | n/a | 僅一側有 | 3 / 3 對比 ? | 680 對比 ? | 未檢測 |
| hdr_2160p | 21.44 | 34.82 | 慢 38% | 3 / 3 對比 3 / 3 | 680 對比 680 | 沒有明顯差異 沒有細微差異 |
| oit_linked_lists | 25.48 | 26.48 | 慢 4% | 3 / 3 對比 3 / 3 | 680 對比 680 | 沒有明顯差異 沒有細微差異 |
| pipeline_barriers | 3.23 | 2.27 | 太輕,參見 pipeline_barriers_2160p | 3 / 3 對比 3 / 3 | 626 對比 680 不可比 | 沒有明顯差異 有 1425 處小區域不同 |
| pipeline_barriers_2160p | 8.08 | 7.62 | 快 6% | 3 / 3 對比 3 / 3 | 680 對比 680 | 沒有明顯差異 有 1028 處小區域不同 |
| subpasses | 4.13 | 3.80 | 太輕,參見 subpasses_2160p | 3 / 3 對比 3 / 3 | 680 對比 680 | 未檢測 |
| subpasses_2160p | 13.72 | 13.75 | 慢 0% | 3 / 3 對比 3 / 3 | 680 對比 680 | 未檢測 |
技術差異(Vulkan)
僅 WN-Turnip-1.14-p_Axxx 有的擴充功能(67)
- 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_border_color_swizzle
- VK_EXT_conditional_rendering
- VK_EXT_custom_resolve
- VK_EXT_debug_marker
- VK_EXT_depth_clamp_control
- VK_EXT_depth_clamp_zero_one
- VK_EXT_descriptor_buffer
- VK_EXT_device_address_binding_report
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state3
- VK_EXT_external_memory_dma_buf
- VK_EXT_fragment_density_map_offset
- VK_EXT_graphics_pipeline_library
- VK_EXT_host_image_copy
- VK_EXT_image_2d_view_of_3d
- VK_EXT_image_compression_control
- VK_EXT_image_drm_format_modifier
- VK_EXT_inline_uniform_block
- VK_EXT_legacy_dithering
- VK_EXT_legacy_vertex_attributes
- VK_EXT_map_memory_placed
- VK_EXT_memory_budget
- VK_EXT_multi_draw
- VK_EXT_multisampled_render_to_single_sampled
- VK_EXT_mutable_descriptor_type
- VK_EXT_nested_command_buffer
- VK_EXT_non_seamless_cube_map
- VK_EXT_primitive_restart_index
- VK_EXT_primitives_generated_query
- VK_EXT_rasterization_order_attachment_access
- VK_EXT_shader_image_atomic_int64
- VK_EXT_shader_module_identifier
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_subgroup_vote
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_shader_viewport_index_layer
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_decorate_string
- VK_GOOGLE_hlsl_functionality1
- VK_KHR_compute_shader_derivatives
- 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_maintenance7
- VK_KHR_map_memory2
- VK_KHR_pipeline_library
- VK_KHR_ray_tracing_maintenance1
- VK_KHR_shader_atomic_int64
- VK_KHR_shader_clock
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float_controls2
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_NV_compute_shader_derivatives
- VK_QCOM_multiview_per_view_render_areas
- VK_QCOM_multiview_per_view_viewports
- VK_VALVE_fragment_density_map_layered
- VK_VALVE_mutable_descriptor_type
僅 Qualcomm Technologies Inc. Adreno Vulkan Driver 有的擴充功能(8)
- VK_EXT_astc_decode_mode
- VK_EXT_blend_operation_advanced
- VK_EXT_fragment_density_map2
- VK_KHR_shared_presentable_image
- VK_QCOM_render_pass_store_ops
- VK_QCOM_render_pass_transform
- VK_QCOM_rotated_copy_commands
- VK_QCOM_tile_properties
不同的核心功能(23)
| multiviewGeometryShader | 不支援 → 通過 |
| protectedMemory | 通過 → 不支援 |
| shaderBufferInt64Atomics | 不支援 → 通過 |
| shaderInputAttachmentArrayDynamicIndexing | 通過 → 不支援 |
| shaderInputAttachmentArrayNonUniformIndexing | 通過 → 不支援 |
| shaderOutputLayer | 不支援 → 通過 |
| shaderOutputViewportIndex | 不支援 → 通過 |
| bresenhamLines | 不支援 → 通過 |
| dynamicRenderingLocalRead | 不支援 → 通過 |
| globalPriorityQuery | 不支援 → 通過 |
| hostImageCopy | 不支援 → 通過 |
| indexTypeUint8 | 不支援 → 通過 |
| maintenance5 | 不支援 → 通過 |
| maintenance6 | 不支援 → 通過 |
| pipelineRobustness | 不支援 → 通過 |
| pushDescriptor | 不支援 → 通過 |
| rectangularLines | 不支援 → 通過 |
| shaderExpectAssume | 不支援 → 通過 |
| shaderFloatControls2 | 不支援 → 通過 |
| shaderSubgroupRotate | 不支援 → 通過 |
| shaderSubgroupRotateClustered | 不支援 → 通過 |
| vertexAttributeInstanceRateDivisor | 不支援 → 通過 |
| vertexAttributeInstanceRateZeroDivisor | 不支援 → 通過 |
不同的限制(18)
| 限制 | 原廠 | 自訂 |
|---|---|---|
| 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 |
| maxComputeWorkGroupInvocations | 1024 | 2048 |
| minMemoryMapAlignment | 64 | 4096 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| maxFramebufferLayers | 2048 | 1024 |
| discreteQueuePriorities | 3 | 2 |
| optimalBufferCopyOffsetAlignment | 64 | 128 |
| optimalBufferCopyRowPitchAlignment | 64 | 128 |
| nonCoherentAtomSize | 1 | 64 |
只有一個驅動程式支援的格式(多了 31 種,少了 1 種)
- A1B5G5R5_UNORM_PACK16
- A2B10G10R10_SSCALED_PACK32
- A2B10G10R10_USCALED_PACK32
- A2R10G10B10_SSCALED_PACK32
- A2R10G10B10_USCALED_PACK32
- A8B8G8R8_SSCALED_PACK32
- A8B8G8R8_USCALED_PACK32
- A8_UNORM
- B8G8R8A8_SSCALED
- B8G8R8A8_USCALED
- B8G8R8_SINT
- B8G8R8_SNORM
- B8G8R8_UINT
- R16G16B16A16_SSCALED
- R16G16B16A16_USCALED
- R16G16B16_SSCALED
- R16G16B16_USCALED
- R16G16_SSCALED
- R16G16_USCALED
- R16_SSCALED
- R16_USCALED
- R64_SINT
- R64_UINT
- R8G8B8A8_SSCALED
- R8G8B8A8_USCALED
- R8G8B8_SSCALED
- R8G8B8_USCALED
- R8G8_SSCALED
- R8G8_USCALED
- R8_SSCALED
- R8_USCALED
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16