turnip_faux123_v1.2.1-rc4 對比 Qualcomm Technologies Inc. Adreno Vulkan Driver
在 Adreno (TM) 650 上 (blackshark SHARK PAR-A0, MANGMI Pocket Max, Moorechip Retroid Pocket 5, Moorechip Retroid Pocket Flip2, motorola moto g(100), POCO F3, POCO F4, Samsung Galaxy S20 FE, Samsung Galaxy S20 FE 5G, Samsung Galaxy S20 FE 5G, Samsung Galaxy S20+ 5G, Samsung Galaxy Tab S7+, Sony Xperia 5 II, Xiaomi Mi 10 Ultra, Xiaomi Pad 6). 先列出的驅動程式與後一個對比,後一個是基準。
原廠Qualcomm Technologies Inc. Adreno Vulkan Driver
對比自訂turnip_faux123_v1.2.1-rc4
圖形系統版本(Vulkan)1.1.128 → 1.3.359
可選功能(擴充功能)65 → 162+101 -4
通過檢測的功能(已驗證)44 → 6925 個僅在 turnip_faux123_v1.2.1-rc4 上通過 0 個僅在 Qualcomm Technologies Inc. Adreno Vulkan Driver 上通過
跑分測試場景(基準測試)4 個更快 0 個更慢 1 個持平總體快 40%(幾何平均)
各驅動程式能跑的遊戲(根據功能列表估算):綠色大致能跑,黃色未必能跑,橙色問題較多,紅色跑不動
原廠DX92002+DX102006+DX112009+DX122015+Switch
自訂DX92002+DX102006+DX112009+DX122015+Switch
- compute_nbody快 13%
- hdr_2160p快 10%
- oit_linked_lists快 0%
- pipeline_barriers快 96%
- subpasses快 119%
Qualcomm Technologies Inc. Adreno Vulkan Driver 詳情 turnip_faux123_v1.2.1-rc4 詳情
結果不同的功能檢測(46)
| 功能 | 原廠 | 自訂 | 變化 |
|---|---|---|---|
| borderColorSwizzle | 不支援 | 通過 | 新增 |
| colorWriteEnable | 不支援 | 通過 | 新增 |
| customBorderColors | 不支援 | 通過 | 新增 |
| depthClipControl | 不支援 | 通過 | 新增 |
| extendedDynamicState | 不支援 | 通過 | 新增 |
| extendedDynamicState2 | 不支援 | 通過 | 新增 |
| extendedDynamicState2LogicOp | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorBlendEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorBlendEquation | 不支援 | 通過 | 新增 |
| extendedDynamicState3ColorWriteMask | 不支援 | 通過 | 新增 |
| extendedDynamicState3DepthClampEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3LogicOpEnable | 不支援 | 通過 | 新增 |
| extendedDynamicState3PolygonMode | 不支援 | 通過 | 新增 |
| inlineUniformBlock | 不支援 | 通過 | 新增 |
| robustBufferAccess2 | 不支援 | 通過 | 新增 |
| robustImageAccess2 | 不支援 | 通過 | 新增 |
| vertexInputDynamicState | 不支援 | 通過 | 新增 |
| timelineSemaphore | 不支援 | 通過 | 新增 |
| depthClamp | 未檢測 | 通過 | 新增 |
| largePoints | 未檢測 | 通過 | 新增 |
| multiViewport | 不支援 | 通過 | 新增 |
| textureCompressionBC | 不支援 | 通過 | 新增 |
| core.copy_wide_row_length | 失敗 | 通過 | 新增 |
| limit.color_attachments | 失敗 | 通過 | 新增 |
| stage.geometry_point_size | 不支援 | 通過 | 新增 |
| borderColorSwizzleFromImage | 不支援 | 未檢測 | 有變化 |
| customBorderColorWithoutFormat | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState2PatchControlPoints | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3AlphaToCoverageEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3AlphaToOneEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3DepthClipEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3DepthClipNegativeOneToOne | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3LineRasterizationMode | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3ProvokingVertexMode | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3RasterizationSamples | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3RasterizationStream | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3SampleLocationsEnable | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3SampleMask | 不支援 | 未檢測 | 有變化 |
| extendedDynamicState3TessellationDomainOrigin | 不支援 | 未檢測 | 有變化 |
| descriptorBindingInlineUniformBlockUpdateAfterBind | 不支援 | 未檢測 | 有變化 |
| nullDescriptor | 不支援 | 未檢測 | 有變化 |
| logicOp | 不支援 | 未檢測 | 有變化 |
| shaderInt64 | 不支援 | 未檢測 | 有變化 |
| shaderResourceMinLod | 不支援 | 未檢測 | 有變化 |
| shaderTessellationAndGeometryPointSize | 不支援 | 未檢測 | 有變化 |
| variableMultisampleRate | 不支援 | 未檢測 | 有變化 |
跑分測試場景(基準測試)
兩個驅動程式不是在同一批裝置型號上測的。不同裝置的幀時間不能用來比較驅動程式,看這些資料時請記住這一點。
| 場景 | 原廠 ms | 自訂 ms | 差異 | 啟動次數 | GPU 頻率,MHz | 畫面對比原廠 |
|---|---|---|---|---|---|---|
| compute_nbody | 14.12 | 12.52 | 快 13% | 3 / 3 對比 3 / 3 | ? 對比 ? | 沒有明顯差異 沒有細微差異 |
| hdr_2160p | 61.85 | 56.04 | 快 10% | 3 / 3 對比 3 / 3 | ? 對比 ? | 沒有明顯差異 沒有細微差異 |
| oit_linked_lists | 38.07 | 37.98 | 快 0% | 3 / 3 對比 3 / 3 | ? 對比 ? | 沒有明顯差異 沒有細微差異 |
| pipeline_barriers | 11.00 | 5.60 | 快 96% | 3 / 3 對比 3 / 3 | ? 對比 ? | 沒有明顯差異 沒有細微差異 |
| pipeline_barriers_2160p | n/a | 19.22 | 僅一側有 | ? 對比 3 / 3 | ? 對比 ? | 未檢測 |
| subpasses | 20.01 | 9.14 | 快 119% | 3 / 3 對比 3 / 3 | ? 對比 ? | 未檢測 |
技術差異(Vulkan)
僅 turnip_faux123_v1.2.1-rc4 有的擴充功能(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_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_QCOM_multiview_per_view_viewports
- VK_VALVE_fragment_density_map_layered
- VK_VALVE_mutable_descriptor_type
僅 Qualcomm Technologies Inc. Adreno Vulkan Driver 有的擴充功能(4)
- VK_EXT_astc_decode_mode
- VK_KHR_shared_presentable_image
- VK_QCOM_render_pass_store_ops
- VK_QCOM_render_pass_transform
不同的核心功能(60)
| multiview | 不支援 → 通過 |
| samplerYcbcrConversion | 不支援 → 通過 |
| shaderDrawParameters | 不支援 → 通過 |
| storageBuffer16BitAccess | 不支援 → 通過 |
| 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
- 無