Turnip_v27.0.0-R1-Oneui 對比 Qualcomm Technologies Inc. Adreno Vulkan Driver
在 Adreno (TM) 740 上 (AYN Odin2, AYN Odin2 Portal, AYN Thor, HONOR Magic5 Pro, Moorechip Retroid Pocket 6, Moorechip Retroid Pocket Nova, motorola edge plus 2023, OnePlus 11 5G, OnePlus 12R, POCO F6 Pro, Samsung Galaxy S23, Samsung Galaxy S23, Samsung Galaxy S23, Samsung Galaxy S23 Ultra, Samsung Galaxy S23 Ultra, Samsung Galaxy S23+, Samsung Galaxy Z Fold5, Sony Xperia 1 V, Xiaomi 13 pro). 先列出的驅動程式與後一個對比,後一個是基準。
- compute_nbody快 6%
- hdr_2160p快 35%
- oit_linked_lists慢 6%
- pipeline_barriers_2160p慢 6%
- subpasses_2160p慢 4%
2 個場景的畫面有局部區域與原廠驅動程式不同 (pipeline_barriers:2304 個格子中有 1440 個, pipeline_barriers_2160p:2304 個格子中有 1489 個). 整體畫面是一致的,所以這是局部渲染故障,而不是畫了另一個場景。
條件不一致:其中 2 個場景測試時 GPU 頻率不同(例如 compute_nbody: 原廠為裝置最大頻率的 81%,自訂為 71%). 幀時間的部分差異來自裝置自己選擇的頻率,而不是驅動程式。
Qualcomm Technologies Inc. Adreno Vulkan Driver 詳情 Turnip_v27.0.0-R1-Oneui 詳情
結果不同的功能檢測(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 | 8.32 | 7.88 | 快 6% | 3 / 3 對比 3 / 3 | 550 對比 512 不可比 | 沒有明顯差異 沒有細微差異 |
| compute_nbody_2x | n/a | 15.90 | 僅一側有 | ? 對比 3 / 3 | ? 對比 719 | 未檢測 |
| hdr_2160p | 21.98 | 16.29 | 快 35% | 3 / 3 對比 3 / 3 | 680 對比 719 | 沒有明顯差異 沒有細微差異 |
| oit_linked_lists | 25.25 | 26.77 | 慢 6% | 3 / 3 對比 3 / 3 | 680 對比 719 | 沒有明顯差異 沒有細微差異 |
| pipeline_barriers | 5.42 | 2.31 | 太輕,參見 pipeline_barriers_2160p | 3 / 3 對比 3 / 3 | 413 對比 719 不可比 | 沒有明顯差異 有 1440 處小區域不同 |
| pipeline_barriers_2160p | 8.44 | 9.02 | 慢 6% | 3 / 3 對比 3 / 3 | 680 對比 719 | 沒有明顯差異 有 1489 處小區域不同 |
| subpasses | 5.54 | 3.59 | 太輕,參見 subpasses_2160p | 3 / 3 對比 3 / 3 | 572 對比 719 不可比 | 未檢測 |
| subpasses_2160p | 14.40 | 14.98 | 慢 4% | 3 / 3 對比 3 / 3 | 680 對比 678 不可比 | 未檢測 |
技術差異(Vulkan)
僅 Turnip_v27.0.0-R1-Oneui 有的擴充功能(76)
- 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_present_mode_fifo_latest_ready
- 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_swapchain_maintenance1
- 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_present_id
- VK_KHR_present_id2
- VK_KHR_present_wait2
- 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_quad_control
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate
- VK_KHR_swapchain_maintenance1
- VK_KHR_swapchain_mutable_format
- 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_buffer_device_address_allocation_alignment
- VK_VALVE_fragment_density_map_layered
- VK_VALVE_mutable_descriptor_type
僅 Qualcomm Technologies Inc. Adreno Vulkan Driver 有的擴充功能(7)
- 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_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