Turnip_v26.3.0-R5 對比 Qualcomm Technologies Inc. Adreno Vulkan Driver
在 Adreno (TM) 640 上 (Samsung Galaxy Note10+, Samsung Galaxy S10+, Samsung Galaxy S10+, Xiaomi Pad 5). 先列出的驅動程式與後一個對比,後一個是基準。
原廠Qualcomm Technologies Inc. Adreno Vulkan Driver
對比自訂Turnip_v26.3.0-R5
圖形系統版本(Vulkan)1.1.128 → 1.3.359
可選功能(擴充功能)59 → 157+101 -3
通過檢測的功能(已驗證)27 → 48Qualcomm Technologies Inc. Adreno Vulkan Driver和Turnip_v26.3.0-R5:來自本站無法確認的裝置(未驗證)22 個僅在 Turnip_v26.3.0-R5 上通過 1 個僅在 Qualcomm Technologies Inc. Adreno Vulkan Driver 上通過
跑分測試場景(基準測試)2 個更快 1 個更慢 1 個持平總體快 34%(幾何平均)
各驅動程式能跑的遊戲(根據功能列表估算):綠色大致能跑,黃色未必能跑,橙色問題較多,紅色跑不動
原廠DX92002+DX102006+DX112009+DX122015+Switch
自訂DX92002+DX102006+DX112009+DX122015+Switch
- hdr_2160p慢 9%
- oit_linked_lists快 0%
- pipeline_barriers快 79%
- subpasses快 99%
1 個場景的畫面有局部區域與原廠驅動程式不同 (pipeline_barriers:2304 個格子中有 1562 個). 整體畫面是一致的,所以這是局部渲染故障,而不是畫了另一個場景。
沒有每次都能啟動: compute_nbody (原廠 3 / 3, 自訂 0 / 3).
Qualcomm Technologies Inc. Adreno Vulkan Driver 詳情 Turnip_v26.3.0-R5 詳情
結果不同的功能檢測(44)
| 功能 | 原廠 | 自訂 | 變化 |
|---|---|---|---|
| core.compute_udiv | 通過 | 失敗 | 減少 |
| borderColorSwizzle | 不支援 | 通過 | 新增 |
| colorWriteEnable | 不支援 | 通過 | 新增 |
| customBorderColors | 不支援 | 通過 | 新增 |
| depthClipControl | 不支援 | 通過 | 新增 |
| extendedDynamicState | 不支援 | 通過 | 新增 |
| extendedDynamicState2 | 不支援 | 通過 | 新增 |
| extendedDynamicState2LogicOp | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorBlendEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorBlendEquation | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorWriteMask | 不支援 | 通過 | 新增 |
| extendedDynamicState3DepthClampEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3LogicOpEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3PolygonMode | 不支援 | 通過 | 新增 |
| inlineUniformBlock | 不支援 | 通過 | 新增 |
| robustBufferAccess2 | 不支援 | 通過 | 新增 |
| robustImageAccess2 | 不支援 | 通過 | 新增 |
| transformFeedback | 不支援 | 通過 | 新增 |
| vertexInputDynamicState | 不支援 | 通過 | 新增 |
| timelineSemaphore | 不支援 | 通過 | 新增 |
| multiViewport | 不支援 | 通過 | 新增 |
| textureCompressionBC | 不支援 | 通過 | 新增 |
| limit.color_attachments | 失敗 | 通過 | 新增 |
| borderColorSwizzleFromImage | 不支援 | 未檢測 | 有變化 |
| customBorderColorWithoutFormat | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState2PatchControlPoints | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3AlphaToCoverageEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3AlphaToOneEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3DepthClipEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3DepthClipNegativeOneToOne | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3LineRasterizationMode | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3ProvokingVertexMode | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3RasterizationSamples | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3RasterizationStream | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3SampleMask | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3TessellationDomainOrigin | 不支援 | 未檢測 | 有變化 |
| descriptorBindingInlineUniformBlockUpdateAfterBind | 不支援 | 未檢測 | 有變化 |
| nullDescriptor | 不支援 | 未檢測 | 有變化 |
| geometryStreams | 不支援 | 未檢測 | 有變化 |
| logicOp | 不支援 | 未檢測 | 有變化 |
| shaderInt64 | 不支援 | 未檢測 | 有變化 |
| shaderResourceMinLod | 不支援 | 未檢測 | 有變化 |
| shaderTessellationAndGeometryPointSize | 不支援 | 未檢測 | 有變化 |
| variableMultisampleRate | 不支援 | 未檢測 | 有變化 |
跑分測試場景(基準測試)
兩個驅動程式不是在同一批裝置型號上測的。不同裝置的幀時間不能用來比較驅動程式,看這些資料時請記住這一點。
| 場景 | 原廠 ms | 自訂 ms | 差異 | 啟動次數 | GPU 頻率,MHz | 畫面對比原廠 |
|---|---|---|---|---|---|---|
| compute_nbody | 34.38 | n/a | 僅一側有 | 3 / 3 對比 0 / 3 | ? 對比 ? | 未檢測 |
| hdr_2160p | 109.92 | 120.46 | 慢 9% | 3 / 3 對比 3 / 3 | ? 對比 ? | 沒有明顯差異 沒有細微差異 |
| oit_linked_lists | 41.06 | 40.94 | 快 0% | 3 / 3 對比 3 / 3 | ? 對比 ? | 沒有明顯差異 沒有細微差異 |
| pipeline_barriers | 14.38 | 8.05 | 快 79% | 3 / 3 對比 3 / 3 | ? 對比 ? | 沒有明顯差異 有 1562 處小區域不同 |
| subpasses | 24.59 | 12.37 | 快 99% | 3 / 3 對比 3 / 3 | ? 對比 ? | 未檢測 |
技術差異(Vulkan)
僅 Turnip_v26.3.0-R5 有的擴充功能(101)
- VK_AMD_buffer_marker
- VK_ARM_rasterization_order_attachment_access
- VK_EXT_4444_formats
- VK_EXT_attachment_feedback_loop_dynamic_state
- VK_EXT_attachment_feedback_loop_layout
- VK_EXT_border_color_swizzle
- VK_EXT_color_write_enable
- VK_EXT_conditional_rendering
- VK_EXT_custom_border_color
- VK_EXT_custom_resolve
- VK_EXT_debug_marker
- VK_EXT_depth_clamp_control
- VK_EXT_depth_clamp_zero_one
- VK_EXT_depth_clip_control
- VK_EXT_depth_clip_enable
- VK_EXT_descriptor_buffer
- VK_EXT_descriptor_indexing
- VK_EXT_device_address_binding_report
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state
- VK_EXT_extended_dynamic_state2
- VK_EXT_extended_dynamic_state3
- VK_EXT_external_memory_dma_buf
- VK_EXT_fragment_density_map_offset
- VK_EXT_global_priority_query
- 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_image_robustness
- VK_EXT_image_view_min_lod
- VK_EXT_inline_uniform_block
- VK_EXT_legacy_dithering
- VK_EXT_legacy_vertex_attributes
- VK_EXT_load_store_op_none
- 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_primitive_topology_list_restart
- VK_EXT_primitives_generated_query
- VK_EXT_private_data
- VK_EXT_provoking_vertex
- VK_EXT_rasterization_order_attachment_access
- VK_EXT_robustness2
- VK_EXT_shader_atomic_float
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_shader_module_identifier
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_stencil_export
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_shader_viewport_index_layer
- VK_EXT_texel_buffer_alignment
- VK_EXT_tooling_info
- VK_EXT_transform_feedback
- VK_EXT_vertex_input_dynamic_state
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_decorate_string
- VK_GOOGLE_hlsl_functionality1
- VK_KHR_compute_shader_derivatives
- VK_KHR_copy_commands2
- VK_KHR_deferred_host_operations
- VK_KHR_dynamic_rendering
- VK_KHR_dynamic_rendering_local_read
- VK_KHR_format_feature_flags2
- VK_KHR_global_priority
- VK_KHR_imageless_framebuffer
- VK_KHR_index_type_uint8
- VK_KHR_line_rasterization
- VK_KHR_load_store_op_none
- VK_KHR_maintenance4
- VK_KHR_maintenance5
- VK_KHR_maintenance6
- VK_KHR_maintenance7
- VK_KHR_map_memory2
- VK_KHR_pipeline_executable_properties
- VK_KHR_pipeline_library
- VK_KHR_shader_clock
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float_controls2
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_non_semantic_info
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_shader_terminate_invocation
- VK_KHR_synchronization2
- VK_KHR_timeline_semaphore
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_KHR_zero_initialize_workgroup_memory
- VK_NV_compute_shader_derivatives
- VK_QCOM_fragment_density_map_offset
- VK_QCOM_multiview_per_view_render_areas
- VK_VALVE_fragment_density_map_layered
- VK_VALVE_mutable_descriptor_type
僅 Qualcomm Technologies Inc. Adreno Vulkan Driver 有的擴充功能(3)
- VK_KHR_shared_presentable_image
- VK_QCOM_render_pass_store_ops
- VK_QCOM_render_pass_transform
不同的核心功能(59)
| multiview | 不支援 → 通過 |
| samplerYcbcrConversion | 不支援 → 通過 |
| shaderDrawParameters | 不支援 → 通過 |
| variablePointers | 不支援 → 通過 |
| variablePointersStorageBuffer | 不支援 → 通過 |
| bufferDeviceAddress | 不支援 → 通過 |
| bufferDeviceAddressCaptureReplay | 不支援 → 通過 |
| descriptorBindingPartiallyBound | 不支援 → 通過 |
| descriptorBindingSampledImageUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingStorageBufferUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingStorageImageUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingStorageTexelBufferUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingUniformBufferUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingUniformTexelBufferUpdateAfterBind | 不支援 → 通過 |
| descriptorBindingUpdateUnusedWhilePending | 不支援 → 通過 |
| descriptorBindingVariableDescriptorCount | 不支援 → 通過 |
| descriptorIndexing | 不支援 → 通過 |
| drawIndirectCount | 不支援 → 通過 |
| hostQueryReset | 不支援 → 通過 |
| imagelessFramebuffer | 不支援 → 通過 |
| runtimeDescriptorArray | 不支援 → 通過 |
| samplerFilterMinmax | 不支援 → 通過 |
| samplerMirrorClampToEdge | 不支援 → 通過 |
| scalarBlockLayout | 不支援 → 通過 |
| separateDepthStencilLayouts | 不支援 → 通過 |
| shaderFloat16 | 不支援 → 通過 |
| shaderInt8 | 不支援 → 通過 |
| shaderOutputLayer | 不支援 → 通過 |
| shaderOutputViewportIndex | 不支援 → 通過 |
| shaderSampledImageArrayNonUniformIndexing | 不支援 → 通過 |
| shaderStorageBufferArrayNonUniformIndexing | 不支援 → 通過 |
| shaderStorageImageArrayNonUniformIndexing | 不支援 → 通過 |
| shaderStorageTexelBufferArrayDynamicIndexing | 不支援 → 通過 |
| shaderStorageTexelBufferArrayNonUniformIndexing | 不支援 → 通過 |
| shaderSubgroupExtendedTypes | 不支援 → 通過 |
| shaderUniformBufferArrayNonUniformIndexing | 不支援 → 通過 |
| shaderUniformTexelBufferArrayDynamicIndexing | 不支援 → 通過 |
| shaderUniformTexelBufferArrayNonUniformIndexing | 不支援 → 通過 |
| subgroupBroadcastDynamicId | 不支援 → 通過 |
| timelineSemaphore | 不支援 → 通過 |
| uniformBufferStandardLayout | 不支援 → 通過 |
| vulkanMemoryModel | 不支援 → 通過 |
| vulkanMemoryModelAvailabilityVisibilityChains | 不支援 → 通過 |
| vulkanMemoryModelDeviceScope | 不支援 → 通過 |
| computeFullSubgroups | 不支援 → 通過 |
| descriptorBindingInlineUniformBlockUpdateAfterBind | 不支援 → 通過 |
| dynamicRendering | 不支援 → 通過 |
| inlineUniformBlock | 不支援 → 通過 |
| maintenance4 | 不支援 → 通過 |
| pipelineCreationCacheControl | 不支援 → 通過 |
| privateData | 不支援 → 通過 |
| robustImageAccess | 不支援 → 通過 |
| shaderDemoteToHelperInvocation | 不支援 → 通過 |
| shaderIntegerDotProduct | 不支援 → 通過 |
| shaderTerminateInvocation | 不支援 → 通過 |
| shaderZeroInitializeWorkgroupMemory | 不支援 → 通過 |
| subgroupSizeControl | 不支援 → 通過 |
| synchronization2 | 不支援 → 通過 |
| textureCompressionASTC_HDR | 不支援 → 通過 |
不同的限制(34)
| 限制 | 原廠 | 自訂 |
|---|---|---|
| maxStorageBufferRange | 536870912 | 134217728 |
| maxPushConstantsSize | 128 | 256 |
| maxMemoryAllocationCount | 4096 | 4294967295 |
| maxSamplerAllocationCount | 4000 | 65536 |
| bufferImageGranularity | 1 | 64 |
| maxPerStageDescriptorSamplers | 524288 | 16777216 |
| maxPerStageDescriptorUniformBuffers | 524288 | 16777216 |
| maxPerStageDescriptorStorageBuffers | 524288 | 16777216 |
| maxPerStageDescriptorSampledImages | 524288 | 16777216 |
| maxPerStageDescriptorStorageImages | 524288 | 16777216 |
| maxPerStageResources | 1572864 | 16777216 |
| maxDescriptorSetSamplers | 524288 | 16777216 |
| maxDescriptorSetUniformBuffers | 524288 | 16777216 |
| maxDescriptorSetUniformBuffersDynamic | 32 | 16 |
| maxDescriptorSetStorageBuffers | 524288 | 16777216 |
| maxDescriptorSetStorageBuffersDynamic | 16 | 8 |
| maxDescriptorSetSampledImages | 524288 | 16777216 |
| maxDescriptorSetStorageImages | 524288 | 16777216 |
| maxVertexInputAttributeOffset | 4096 | 4095 |
| maxGeometryInputComponents | 128 | 64 |
| maxGeometryOutputVertices | 1024 | 256 |
| maxGeometryTotalOutputComponents | 131072 | 1024 |
| maxFragmentInputComponents | 112 | 128 |
| maxFragmentCombinedOutputResources | 72 | 33554440 |
| maxComputeWorkGroupInvocations | 1024 | 2048 |
| maxComputeWorkGroupSize | 1024, 1024, 64 | 1024, 1024, 1024 |
| maxViewports | 1 | 16 |
| minMemoryMapAlignment | 64 | 4096 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| maxFramebufferLayers | 2048 | 1024 |
| discreteQueuePriorities | 3 | 2 |
| optimalBufferCopyOffsetAlignment | 64 | 128 |
| optimalBufferCopyRowPitchAlignment | 64 | 128 |
| nonCoherentAtomSize | 1 | 64 |
只有一個驅動程式支援的格式(多了 50 種,少了 0 種)
- A1B5G5R5_UNORM_PACK16
- A2B10G10R10_SSCALED_PACK32
- A2B10G10R10_USCALED_PACK32
- A2R10G10B10_SSCALED_PACK32
- A2R10G10B10_USCALED_PACK32
- A4B4G4R4_UNORM_PACK16
- A4R4G4B4_UNORM_PACK16
- A8B8G8R8_SSCALED_PACK32
- A8B8G8R8_USCALED_PACK32
- A8_UNORM
- B8G8R8A8_SINT
- B8G8R8A8_SNORM
- B8G8R8A8_SSCALED
- B8G8R8A8_UINT
- B8G8R8A8_USCALED
- B8G8R8_SINT
- B8G8R8_SNORM
- B8G8R8_UINT
- 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
- R16G16B16A16_SSCALED
- R16G16B16A16_USCALED
- R16G16B16_SSCALED
- R16G16B16_USCALED
- R16G16_SSCALED
- R16G16_USCALED
- R16_SSCALED
- R16_USCALED
- R8G8B8A8_SSCALED
- R8G8B8A8_USCALED
- R8G8B8_SSCALED
- R8G8B8_USCALED
- R8G8_SSCALED
- R8G8_USCALED
- R8_SSCALED
- R8_USCALED
- 無