FauxVkDB
简体中文

turnip_faux123_v1.1.9-rc13 对比 Qualcomm Technologies Inc. Adreno Vulkan Driver

在 Adreno (TM) 660 上 (Asus ROG Phone 5 series, Razer Edge, Samsung Galaxy S21 Ultra 5G, Samsung Galaxy S21+ 5G, Sony Xperia PRO-I). 先列出的驱动与后一个对比,后一个是基准。

原厂Qualcomm Technologies Inc. Adreno Vulkan DriverDriver Build: 9ad1b67875, Ib48d2dada6, 1746950435
对比
第三方turnip_faux123_v1.1.9-rc13Mesa 26.3.0-devel (git-dd45fd0baa)
图形系统版本(Vulkan)1.1.128 → 1.3.359
可选功能(扩展)75 → 164+95 -6
通过检测的功能(已验证)31 → 5019 个仅在 turnip_faux123_v1.1.9-rc13 上通过 0 个仅在 Qualcomm Technologies Inc. Adreno Vulkan Driver 上通过
跑分测试场景(基准测试)没有共同场景
各驱动能跑的游戏(根据功能列表估算):绿色基本能跑,黄色可能能跑,橙色问题较多,红色跑不了
原厂DX92002+DX102006+DX112009+DX122015+Switch
第三方DX92002+DX102006+DX112009+DX122015+Switch

Qualcomm Technologies Inc. Adreno Vulkan Driver 详情 turnip_faux123_v1.1.9-rc13 详情

结果不同的功能检测(40)

功能原厂第三方变化
borderColorSwizzle
VK_EXT_border_color_swizzle
不支持通过新增
colorWriteEnable
VK_EXT_color_write_enable
不支持通过新增
customBorderColors
VK_EXT_custom_border_color
不支持通过新增
depthClipControl
VK_EXT_depth_clip_control
不支持通过新增
extendedDynamicState2
VK_EXT_extended_dynamic_state2
不支持通过新增
extendedDynamicState2LogicOp
VK_EXT_extended_dynamic_state2
不支持通过新增
extendedDynamicState3ColorBlendEnable
VK_EXT_extended_dynamic_state3
不支持通过新增
extendedDynamicState3ColorBlendEquation
VK_EXT_extended_dynamic_state3
不支持通过新增
extendedDynamicState3ColorWriteMask
VK_EXT_extended_dynamic_state3
不支持通过新增
extendedDynamicState3DepthClampEnable
VK_EXT_extended_dynamic_state3
不支持通过新增
extendedDynamicState3LogicOpEnable
VK_EXT_extended_dynamic_state3
不支持通过新增
extendedDynamicState3PolygonMode
VK_EXT_extended_dynamic_state3
不支持通过新增
inlineUniformBlock
VK_EXT_inline_uniform_block
不支持通过新增
robustBufferAccess2
VK_EXT_robustness2
不支持通过新增
robustImageAccess2
VK_EXT_robustness2
不支持通过新增
vertexInputDynamicState
VK_EXT_vertex_input_dynamic_state
不支持通过新增
multiViewport
VkPhysicalDeviceFeatures
不支持通过新增
textureCompressionBC
VkPhysicalDeviceFeatures
不支持通过新增
core.copy_wide_row_length
core
失败通过新增
borderColorSwizzleFromImage
VK_EXT_border_color_swizzle
不支持未检测有变化
customBorderColorWithoutFormat
VK_EXT_custom_border_color
不支持未检测有变化
extendedDynamicState2PatchControlPoints
VK_EXT_extended_dynamic_state2
不支持未检测有变化
extendedDynamicState3AlphaToCoverageEnable
VK_EXT_extended_dynamic_state3
不支持未检测有变化
extendedDynamicState3AlphaToOneEnable
VK_EXT_extended_dynamic_state3
不支持未检测有变化
extendedDynamicState3DepthClipEnable
VK_EXT_extended_dynamic_state3
不支持未检测有变化
extendedDynamicState3DepthClipNegativeOneToOne
VK_EXT_extended_dynamic_state3
不支持未检测有变化
extendedDynamicState3LineRasterizationMode
VK_EXT_extended_dynamic_state3
不支持未检测有变化
extendedDynamicState3ProvokingVertexMode
VK_EXT_extended_dynamic_state3
不支持未检测有变化
extendedDynamicState3RasterizationSamples
VK_EXT_extended_dynamic_state3
不支持未检测有变化
extendedDynamicState3RasterizationStream
VK_EXT_extended_dynamic_state3
不支持未检测有变化
extendedDynamicState3SampleLocationsEnable
VK_EXT_extended_dynamic_state3
不支持未检测有变化
extendedDynamicState3SampleMask
VK_EXT_extended_dynamic_state3
不支持未检测有变化
extendedDynamicState3TessellationDomainOrigin
VK_EXT_extended_dynamic_state3
不支持未检测有变化
descriptorBindingInlineUniformBlockUpdateAfterBind
VK_EXT_inline_uniform_block
不支持未检测有变化
nullDescriptor
VK_EXT_robustness2
不支持未检测有变化
logicOp
VkPhysicalDeviceFeatures
不支持未检测有变化
shaderInt64
VkPhysicalDeviceFeatures
不支持未检测有变化
shaderResourceMinLod
VkPhysicalDeviceFeatures
不支持未检测有变化
shaderTessellationAndGeometryPointSize
VkPhysicalDeviceFeatures
不支持未检测有变化
variableMultisampleRate
VkPhysicalDeviceFeatures
不支持未检测有变化

跑分测试场景(基准测试)

两个驱动不是在同一批设备型号上测的。不同设备的帧时间不能用来比较驱动,看这些数据时请记住这一点。

场景原厂 ms第三方 ms差异启动次数GPU 频率,MHz画面对比原厂
compute_nbody11.62 典型值 11.83n/a仅一侧有3 / 3 对比 3 / 3840 对比 720 不可比没有明显差异 0.0 没有细微差异 最差 0.0 64x36
hdr_2160p58.90 典型值 58.91n/a仅一侧有3 / 3 对比 ?840 对比 ? 频率未知未检测
oit_linked_lists29.63 典型值 29.72n/a仅一侧有3 / 3 对比 3 / 3840 对比 840 没有明显差异 0.0 没有细微差异 最差 0.0 64x36
pipeline_barriers8.21 典型值 8.24n/a仅一侧有3 / 3 对比 3 / 3774 对比 792 没有明显差异 8.3 有 1588 处小区域不同 最差 54.3 64x36
pipeline_barriers_2160p27.06 典型值 27.20n/a仅一侧有? 对比 3 / 3? 对比 751 频率未知未检测
subpasses14.23 典型值 14.23n/a仅一侧有3 / 3 对比 3 / 3840 对比 809 未检测

绘制一帧所需的时间,按场景统计:取该场景最佳一轮的平均帧时间,也就是驱动交付了多少帧;越低越快。旁边的“典型值”是中位帧,当驱动的帧分成两种速度时,它可能比平均值低很多。在记录每轮平均值之前生成的一对报告,改用中位数对比。各轮之间相差超过 15% 的场景会被排除。标为“被锁帧”的场景,是被驱动或显示队列锁在了那个平均帧时间上,并且同一次运行中至少还有另一个场景也是如此;它的耗时反映的是帧的间隔,而不是驱动渲染得有多快,所以不参与对比。标为“太轻”的场景,在标准尺寸(1920×1080)下两个驱动都不到 8 ms,此时屏幕的帧队列对帧间隔的影响比芯片更大;这时对比的是它更重的版本:以 _2160p 结尾的行是以 3840×2160 绘制的该场景,compute_nbody_2x 是粒子数翻倍的该场景。“更快”和“更慢”描述的是 turnip_faux123_v1.1.9-rc13 相对 Qualcomm Technologies Inc. Adreno Vulkan Driver。“画面对比原厂”把每个场景的一个固定帧按粗略的色块网格对比(0 为完全相同,超过 40 表示画面不同),用来找出没有被画出来的场景。如果两份报告都带有更细的 64×36 网格,第二个数字是其 2,304 个格子中有多少个差异超过 255 里的 4,“最差”是单个格子的最大差异;这能找出其余部分都一致的画面里的小渲染错误。标为 16x9 的行来自细网格出现之前生成的报告。“启动次数”是一个场景的进程启动中,有多少次进入了被测量的一轮。标为“不可比”的 GPU 频率,表示两次计时之间的差异超过设备最大频率的 5%。

技术差异(Vulkan)

仅 turnip_faux123_v1.1.9-rc13 有的扩展(95)
  • 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_device_address_binding_report
  • VK_EXT_dynamic_rendering_unused_attachments
  • 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_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_provoking_vertex
  • VK_EXT_rasterization_order_attachment_access
  • VK_EXT_robustness2
  • VK_EXT_shader_atomic_float
  • VK_EXT_shader_module_identifier
  • VK_EXT_shader_replicated_composites
  • VK_EXT_shader_stencil_export
  • VK_EXT_shader_subgroup_vote
  • 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_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_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 有的扩展(6)
  • 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
不同的核心功能(60)
multiview Vulkan 1.1不支持 → 通过
samplerYcbcrConversion Vulkan 1.1不支持 → 通过
shaderDrawParameters Vulkan 1.1不支持 → 通过
storageBuffer16BitAccess Vulkan 1.1不支持 → 通过
variablePointers Vulkan 1.1不支持 → 通过
variablePointersStorageBuffer Vulkan 1.1不支持 → 通过
bufferDeviceAddress Vulkan 1.2不支持 → 通过
bufferDeviceAddressCaptureReplay Vulkan 1.2不支持 → 通过
descriptorBindingPartiallyBound Vulkan 1.2不支持 → 通过
descriptorBindingSampledImageUpdateAfterBind Vulkan 1.2不支持 → 通过
descriptorBindingStorageBufferUpdateAfterBind Vulkan 1.2不支持 → 通过
descriptorBindingStorageImageUpdateAfterBind Vulkan 1.2不支持 → 通过
descriptorBindingStorageTexelBufferUpdateAfterBind Vulkan 1.2不支持 → 通过
descriptorBindingUniformBufferUpdateAfterBind Vulkan 1.2不支持 → 通过
descriptorBindingUniformTexelBufferUpdateAfterBind Vulkan 1.2不支持 → 通过
descriptorBindingUpdateUnusedWhilePending Vulkan 1.2不支持 → 通过
descriptorBindingVariableDescriptorCount Vulkan 1.2不支持 → 通过
descriptorIndexing Vulkan 1.2不支持 → 通过
drawIndirectCount Vulkan 1.2不支持 → 通过
hostQueryReset Vulkan 1.2不支持 → 通过
imagelessFramebuffer Vulkan 1.2不支持 → 通过
runtimeDescriptorArray Vulkan 1.2不支持 → 通过
samplerFilterMinmax Vulkan 1.2不支持 → 通过
samplerMirrorClampToEdge Vulkan 1.2不支持 → 通过
scalarBlockLayout Vulkan 1.2不支持 → 通过
separateDepthStencilLayouts Vulkan 1.2不支持 → 通过
shaderFloat16 Vulkan 1.2不支持 → 通过
shaderInt8 Vulkan 1.2不支持 → 通过
shaderOutputLayer Vulkan 1.2不支持 → 通过
shaderOutputViewportIndex Vulkan 1.2不支持 → 通过
shaderSampledImageArrayNonUniformIndexing Vulkan 1.2不支持 → 通过
shaderStorageBufferArrayNonUniformIndexing Vulkan 1.2不支持 → 通过
shaderStorageImageArrayNonUniformIndexing Vulkan 1.2不支持 → 通过
shaderStorageTexelBufferArrayDynamicIndexing Vulkan 1.2不支持 → 通过
shaderStorageTexelBufferArrayNonUniformIndexing Vulkan 1.2不支持 → 通过
shaderSubgroupExtendedTypes Vulkan 1.2不支持 → 通过
shaderUniformBufferArrayNonUniformIndexing Vulkan 1.2不支持 → 通过
shaderUniformTexelBufferArrayDynamicIndexing Vulkan 1.2不支持 → 通过
shaderUniformTexelBufferArrayNonUniformIndexing Vulkan 1.2不支持 → 通过
subgroupBroadcastDynamicId Vulkan 1.2不支持 → 通过
timelineSemaphore Vulkan 1.2不支持 → 通过
uniformBufferStandardLayout Vulkan 1.2不支持 → 通过
vulkanMemoryModel Vulkan 1.2不支持 → 通过
vulkanMemoryModelAvailabilityVisibilityChains Vulkan 1.2不支持 → 通过
vulkanMemoryModelDeviceScope Vulkan 1.2不支持 → 通过
computeFullSubgroups Vulkan 1.3不支持 → 通过
descriptorBindingInlineUniformBlockUpdateAfterBind Vulkan 1.3不支持 → 通过
dynamicRendering Vulkan 1.3不支持 → 通过
inlineUniformBlock Vulkan 1.3不支持 → 通过
maintenance4 Vulkan 1.3不支持 → 通过
pipelineCreationCacheControl Vulkan 1.3不支持 → 通过
privateData Vulkan 1.3不支持 → 通过
robustImageAccess Vulkan 1.3不支持 → 通过
shaderDemoteToHelperInvocation Vulkan 1.3不支持 → 通过
shaderIntegerDotProduct Vulkan 1.3不支持 → 通过
shaderTerminateInvocation Vulkan 1.3不支持 → 通过
shaderZeroInitializeWorkgroupMemory Vulkan 1.3不支持 → 通过
subgroupSizeControl Vulkan 1.3不支持 → 通过
synchronization2 Vulkan 1.3不支持 → 通过
textureCompressionASTC_HDR Vulkan 1.3不支持 → 通过
不同的限制(34)
限制原厂第三方
maxStorageBufferRange536870912134217728
maxPushConstantsSize128256
maxMemoryAllocationCount40964294967295
maxSamplerAllocationCount400065536
bufferImageGranularity164
maxPerStageDescriptorSamplers52428816777216
maxPerStageDescriptorUniformBuffers52428816777216
maxPerStageDescriptorStorageBuffers52428816777216
maxPerStageDescriptorSampledImages52428816777216
maxPerStageDescriptorStorageImages52428816777216
maxPerStageResources157286416777216
maxDescriptorSetSamplers52428816777216
maxDescriptorSetUniformBuffers52428816777216
maxDescriptorSetUniformBuffersDynamic3216
maxDescriptorSetStorageBuffers52428816777216
maxDescriptorSetStorageBuffersDynamic168
maxDescriptorSetSampledImages52428816777216
maxDescriptorSetStorageImages52428816777216
maxVertexInputAttributeOffset40964095
maxGeometryInputComponents12864
maxGeometryOutputVertices1024256
maxGeometryTotalOutputComponents1310721024
maxFragmentInputComponents112128
maxFragmentCombinedOutputResources7233554440
maxComputeWorkGroupInvocations10242048
maxComputeWorkGroupSize1024, 1024, 641024, 1024, 1024
maxViewports116
minMemoryMapAlignment644096
minStorageBufferOffsetAlignment644
maxFramebufferLayers20481024
discreteQueuePriorities32
optimalBufferCopyOffsetAlignment64128
optimalBufferCopyRowPitchAlignment64128
nonCoherentAtomSize164
只有一个驱动支持的格式(多了 39 种,少了 1 种)

仅 turnip_faux123_v1.1.9-rc13 有:

  • 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_RGB_SRGB_BLOCK
  • BC2_SRGB_BLOCK
  • BC3_SRGB_BLOCK
  • BC7_SRGB_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

仅 Qualcomm Technologies Inc. Adreno Vulkan Driver 有:

  • G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16