FauxVkDB
繁體中文

Turnip_v27.0.0-R1 對比 Turnip-Rutabaga-v3

在 Adreno (TM) 610 上 (HONOR Pad X8a, HONOR X8c, POCO M7, Redmi Note 11, Redmi Note 12, Redmi Note 13, Samsung Galaxy A05s, Xiaomi 220333QAG). 先列出的驅動程式與後一個對比,後一個是基準。

原廠Turnip-Rutabaga-v3Mesa 26.3.0-devel (git-b00479181d)
對比
自訂Turnip_v27.0.0-R1Mesa 27.0.0-devel (git-f28352d117)
圖形系統版本(Vulkan)1.0.359 → 1.3.363
可選功能(擴充功能)145 → 158+17 -4
通過檢測的功能(已驗證)47 → 47通過的檢測相同
跑分測試場景(基準測試)0 個更快 4 個更慢總體慢 7%(幾何平均)
各驅動程式能跑的遊戲(根據功能列表估算):綠色大致能跑,黃色未必能跑,橙色問題較多,紅色跑不動
原廠DX92002+DX102006+DX112009+DX122015+Switch
自訂DX92002+DX102006+DX112009+DX122015+Switch
  • hdr_2160p慢 9%
  • oit_linked_lists慢 4%
  • pipeline_barriers慢 6%
  • subpasses慢 7%

每個場景中自訂驅動程式與原廠驅動程式的對比。長條向右表示更快,向左表示更慢。

1 個場景的畫面有局部區域與原廠驅動程式不同 (pipeline_barriers:2304 個格子中有 1482 個). 整體畫面是一致的,所以這是局部渲染故障,而不是畫了另一個場景。

沒有每次都能啟動: compute_nbody (原廠 0 / 3, 自訂 3 / 3).

條件不一致:其中 1 個場景測試時 GPU 頻率不同(例如 subpasses: 原廠為裝置最大頻率的 100%,自訂為 88%). 幀時間的部分差異來自裝置自己選擇的頻率,而不是驅動程式。

Turnip-Rutabaga-v3 詳情 Turnip_v27.0.0-R1 詳情

結果不同的功能檢測(0)

每項功能檢測在兩個驅動程式上的結果都相同。

跑分測試場景(基準測試)

場景Turnip-Rutabaga-v3 msTurnip_v27.0.0-R1 ms差異啟動次數GPU 頻率,MHz畫面對比原廠
compute_nbodyn/a89.38 典型值 89.17僅一側有0 / 3 對比 3 / 3? 對比 1115 頻率未知未檢測
hdr_2160p317.11 典型值 310.72347.46 典型值 347.29慢 9%3 / 3 對比 3 / 31068 對比 1115 沒有明顯差異 0.0 沒有細微差異 最差 0.0 64x36
oit_linked_lists94.48 典型值 94.2998.08 典型值 96.18慢 4%3 / 3 對比 3 / 31115 對比 1115 沒有明顯差異 0.0 沒有細微差異 最差 0.0 64x36
pipeline_barriers42.19 典型值 42.5945.04 典型值 45.35慢 6%3 / 3 對比 3 / 31115 對比 1115 沒有明顯差異 10.6 有 1482 處小區域不同 最差 62.3 64x36
subpasses82.30 典型值 82.2988.72 典型值 88.73慢 7%3 / 3 對比 3 / 31115 對比 982 不可比未檢測

繪製一幀所需的時間,按場景統計:取該場景最佳一輪的平均幀時間,也就是驅動程式交付了多少幀;越低越快。旁邊的「典型值」是中位幀,當驅動程式的幀分成兩種速度時,它可能比平均值低很多。在記錄每輪平均值之前產生的一對報告,改用中位數對比。各輪之間相差超過 15% 的場景會被排除。標為「鎖幀」的場景,是被驅動程式或顯示佇列鎖在了那個平均幀時間上,並且同一次執行中至少還有另一個場景也是如此;它的耗時反映的是幀的間隔,而不是驅動程式渲染得有多快,所以不參與對比。標為「太輕」的場景,在標準尺寸(1920×1080)下兩個驅動程式都不到 8 ms,此時螢幕的幀佇列對幀間隔的影響比晶片更大;這時對比的是它更重的版本:以 _2160p 結尾的行是以 3840×2160 繪製的該場景,compute_nbody_2x 是粒子數翻倍的該場景。「更快」和「更慢」描述的是 Turnip_v27.0.0-R1 相對 Turnip-Rutabaga-v3。「畫面對比原廠」把每個場景的一個固定幀按粗略的色塊網格對比(0 為完全相同,超過 40 表示畫面不同),用來找出沒有被畫出來的場景。如果兩份報告都帶有更細的 64×36 網格,第二個數字是其 2,304 個格子中有多少個差異超過 255 裡的 4,「最差」是單個格子的最大差異;這能找出其餘部分都一致的畫面裡的小渲染錯誤。標為 16x9 的行來自細網格出現之前產生的報告。「啟動次數」是一個場景的處理程序啟動中,有多少次進入了被測量的一輪。標為「不可比」的 GPU 頻率,表示兩次計時之間的差異超過裝置最大頻率的 5%。

技術差異(Vulkan)

僅 Turnip_v27.0.0-R1 有的擴充功能(17)
  • VK_EXT_global_priority
  • VK_EXT_global_priority_query
  • VK_EXT_subgroup_size_control
  • VK_KHR_global_priority
  • VK_KHR_maintenance4
  • VK_KHR_maintenance5
  • VK_KHR_maintenance6
  • VK_KHR_maintenance7
  • VK_KHR_multiview
  • VK_KHR_shader_float_controls2
  • VK_KHR_shader_subgroup_extended_types
  • VK_KHR_shader_subgroup_uniform_control_flow
  • VK_KHR_spirv_1_4
  • VK_KHR_swapchain_mutable_format
  • VK_QCOM_rotated_copy_commands
  • VK_VALVE_buffer_device_address_allocation_alignment
  • VK_VALVE_fragment_density_map_layered
僅 Turnip-Rutabaga-v3 有的擴充功能(4)
  • VK_EXT_depth_range_unrestricted
  • VK_EXT_frame_boundary
  • VK_EXT_pipeline_robustness
  • VK_KHR_cooperative_matrix
不同的核心功能(57)
multiview Vulkan 1.1不支援 → 通過
samplerYcbcrConversion Vulkan 1.1不支援 → 通過
shaderDrawParameters 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不支援 → 通過
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不支援 → 通過
不同的限制(0)
限制Turnip-Rutabaga-v3Turnip_v27.0.0-R1
只有一個驅動程式支援的格式(多了 2 種,少了 0 種)

僅 Turnip_v27.0.0-R1 有:

  • A1B5G5R5_UNORM_PACK16
  • A8_UNORM

僅 Turnip-Rutabaga-v3 有:

  • 無