turnip_faux123_v1.2.0 vs Qualcomm Technologies Inc. Adreno Vulkan Driver
Adreno (TM) 730 (motorola edge 30 pro, Samsung Galaxy S22, Samsung Galaxy S22 Ultra, Samsung Galaxy S22 Ultra, Samsung Galaxy Tab S8). 最初に挙げたドライバーを、2番目のドライバー(ベースライン)と比べています。
純正Qualcomm Technologies Inc. Adreno Vulkan Driver
vsカスタムturnip_faux123_v1.2.0
グラフィックスのシステムバージョン(Vulkan)1.1.128 → 1.4.359
追加機能(拡張機能)90 → 168+85 -7
チェックに成功した機能(検証済み)35 → 65turnip_faux123_v1.2.0でのみ成功 30 Qualcomm Technologies Inc. Adreno Vulkan Driverでのみ成功 0
速度テストのシーン(ベンチマーク)速い 3 遅い 0全体で60% 速い(幾何平均)
各ドライバーが動かせそうなゲーム(機能リストからの目安): 緑は動く見込み、黄は動くかも、橙は厳しい、赤は動かない
純正DX92002+DX102006+DX112009+DX122015+Switch
カスタムDX92002+DX102006+DX112009+DX122015+Switch
- oit_linked_lists3% 速い
- pipeline_barriers111% 速い
- subpasses88% 速い
純正ドライバーと映像の一部が少し違います: 2件のシーン (pipeline_barriers: 2304セル中1333セル, pipeline_barriers_2160p: 2304セル中1483セル). 映像は全体として一致しているので、別のシーンではなく、一部の描画の不具合です。
条件がそろっていません: これらのシーンのうち1件でGPUクロックが異なりました(例: pipeline_barriers: 純正はデバイス最大値の100%、カスタムは87%). フレームタイムの差の一部は、ドライバーではなく、デバイスが選んだクロックによるものです。
Qualcomm Technologies Inc. Adreno Vulkan Driverの詳細 turnip_faux123_v1.2.0の詳細
結果が異なる機能チェック(57)
| 機能 | 純正 | カスタム | 変化 |
|---|---|---|---|
| borderColorSwizzle | 非対応 | 成功 | 追加 |
| colorWriteEnable | 非対応 | 成功 | 追加 |
| depthClipControl | 非対応 | 成功 | 追加 |
| extendedDynamicState2 | 非対応 | 成功 | 追加 |
| extendedDynamicState2LogicOp | 非対応 | 成功 | 追加 |
| extendedDynamicState3ColorBlendEnable | 非対応 | 成功 | 追加 |
| extendedDynamicState3ColorBlendEquation | 非対応 | 成功 | 追加 |
| extendedDynamicState3ColorWriteMask | 非対応 | 成功 | 追加 |
| extendedDynamicState3DepthClampEnable | 非対応 | 成功 | 追加 |
| extendedDynamicState3LogicOpEnable | 非対応 | 成功 | 追加 |
| extendedDynamicState3PolygonMode | 非対応 | 成功 | 追加 |
| inlineUniformBlock | 非対応 | 成功 | 追加 |
| vertexInputDynamicState | 非対応 | 成功 | 追加 |
| depthClamp | 未テスト | 成功 | 追加 |
| largePoints | 未テスト | 成功 | 追加 |
| multiViewport | 非対応 | 成功 | 追加 |
| compat.helper_loop_terminator | 未テスト | 成功 | 追加 |
| compat.nested_map | 未テスト | 成功 | 追加 |
| core.blend_advertised_formats | 未テスト | 成功 | 追加 |
| core.compute_big_stack | 未テスト | 成功 | 追加 |
| core.copy_wide_row_length | 失敗 | 成功 | 追加 |
| core.host_coherent_readback | 未テスト | 成功 | 追加 |
| core.mrt_partial_kill | 未テスト | 成功 | 追加 |
| core.ubo_update_buffer | 未テスト | 成功 | 追加 |
| core.ubo_written_after_record | 未テスト | 成功 | 追加 |
| core.varying_subset | 未テスト | 成功 | 追加 |
| mem.image_padding | 未テスト | 成功 | 追加 |
| stage.geometry_max_output | 未テスト | 成功 | 追加 |
| stage.geometry_point_size | 未テスト | 成功 | 追加 |
| sync.first_submit_clear_then_compute | 未テスト | 成功 | 追加 |
| borderColorSwizzleFromImage | 非対応 | 未テスト | 変更あり |
| extendedDynamicState2PatchControlPoints | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3AlphaToCoverageEnable | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3AlphaToOneEnable | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3ConservativeRasterizationMode | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3DepthClipEnable | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3DepthClipNegativeOneToOne | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3ExtraPrimitiveOverestimationSize | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3LineRasterizationMode | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3ProvokingVertexMode | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3RasterizationSamples | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3RasterizationStream | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3SampleLocationsEnable | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3SampleMask | 非対応 | 未テスト | 変更あり |
| extendedDynamicState3TessellationDomainOrigin | 非対応 | 未テスト | 変更あり |
| descriptorBindingInlineUniformBlockUpdateAfterBind | 非対応 | 未テスト | 変更あり |
| shaderInt64 | 非対応 | 未テスト | 変更あり |
| shaderResourceMinLod | 非対応 | 未テスト | 変更あり |
| shaderResourceResidency | 非対応 | 未テスト | 変更あり |
| shaderTessellationAndGeometryPointSize | 非対応 | 未テスト | 変更あり |
| sparseResidency16Samples | 未テスト | 非対応 | 変更あり |
| sparseResidency2Samples | 未テスト | 非対応 | 変更あり |
| sparseResidency4Samples | 未テスト | 非対応 | 変更あり |
| sparseResidency8Samples | 未テスト | 非対応 | 変更あり |
| sparseResidencyAliased | 非対応 | 未テスト | 変更あり |
| sparseResidencyImage2D | 未テスト | 非対応 | 変更あり |
| variableMultisampleRate | 非対応 | 未テスト | 変更あり |
速度テストのシーン(ベンチマーク)
2つのドライバーは同じ機種の組み合わせで測定されていません。異なるデバイスのフレームタイムではドライバーを比較できないので、その点を踏まえて数値を見てください。
| シーン | 純正 ms | カスタム ms | 差 | 起動 | GPUクロック(MHz) | 純正との映像比較 |
|---|---|---|---|---|---|---|
| compute_nbody | 8.84 | n/a | 片方のみ | 3中3 vs 3中3 | 753 vs 744 | 大きな差なし 小さな差なし |
| hdr_2160p | 42.84 | n/a | 片方のみ | 3中3 vs 3中3 | 734 vs 818 | 大きな差なし 小さな差なし |
| oit_linked_lists | 24.34 | 23.53 | 3% 速い | 3中3 vs 3中3 | 818 vs 818 | 大きな差なし 小さな差なし |
| pipeline_barriers | 6.10 | 2.90 | 111% 速い | 3中3 vs 3中3 | 734 vs 711 比較不可 | 大きな差なし 小さな差が1333箇所 |
| pipeline_barriers_2160p | n/a | 11.41 | 片方のみ | 3中3 vs 3中3 | 818 vs 701 比較不可 | 大きな差なし 小さな差が1483箇所 |
| subpasses | 10.49 | 5.58 | 88% 速い | 3中3 vs 3中3 | 791 vs 786 | 未チェック |
| subpasses_2160p | n/a | 17.55 | 片方のみ | ? vs 3中3 | ? vs 770 | 未チェック |
技術的な違い(Vulkan)
turnip_faux123_v1.2.0だけにある拡張機能(85)
- 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_conservative_rasterization
- 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_primitives_generated_query
- VK_EXT_rasterization_order_attachment_access
- 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_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_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_library
- VK_KHR_shader_clock
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float_controls2
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_swapchain_mutable_format
- 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だけにある拡張機能(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_rotated_copy_commands
差があるコア機能(78)
| multiview | 非対応 → 成功 |
| multiviewGeometryShader | 非対応 → 成功 |
| 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 | 非対応 → 成功 |
| storageBuffer8BitAccess | 非対応 → 成功 |
| subgroupBroadcastDynamicId | 非対応 → 成功 |
| timelineSemaphore | 非対応 → 成功 |
| uniformBufferStandardLayout | 非対応 → 成功 |
| vulkanMemoryModel | 非対応 → 成功 |
| vulkanMemoryModelAvailabilityVisibilityChains | 非対応 → 成功 |
| vulkanMemoryModelDeviceScope | 非対応 → 成功 |
| computeFullSubgroups | 非対応 → 成功 |
| descriptorBindingInlineUniformBlockUpdateAfterBind | 非対応 → 成功 |
| dynamicRendering | 非対応 → 成功 |
| inlineUniformBlock | 非対応 → 成功 |
| maintenance4 | 非対応 → 成功 |
| pipelineCreationCacheControl | 非対応 → 成功 |
| privateData | 非対応 → 成功 |
| robustImageAccess | 非対応 → 成功 |
| shaderDemoteToHelperInvocation | 非対応 → 成功 |
| shaderIntegerDotProduct | 非対応 → 成功 |
| shaderTerminateInvocation | 非対応 → 成功 |
| shaderZeroInitializeWorkgroupMemory | 非対応 → 成功 |
| subgroupSizeControl | 非対応 → 成功 |
| synchronization2 | 非対応 → 成功 |
| textureCompressionASTC_HDR | 非対応 → 成功 |
| bresenhamLines | 非対応 → 成功 |
| dynamicRenderingLocalRead | 非対応 → 成功 |
| globalPriorityQuery | 非対応 → 成功 |
| hostImageCopy | 非対応 → 成功 |
| indexTypeUint8 | 非対応 → 成功 |
| maintenance5 | 非対応 → 成功 |
| maintenance6 | 非対応 → 成功 |
| pipelineRobustness | 非対応 → 成功 |
| pushDescriptor | 非対応 → 成功 |
| rectangularLines | 非対応 → 成功 |
| shaderExpectAssume | 非対応 → 成功 |
| shaderFloatControls2 | 非対応 → 成功 |
| shaderSubgroupRotate | 非対応 → 成功 |
| shaderSubgroupRotateClustered | 非対応 → 成功 |
| vertexAttributeInstanceRateDivisor | 非対応 → 成功 |
| vertexAttributeInstanceRateZeroDivisor | 非対応 → 成功 |
差がある制限(33)
| 上限 | 純正 | カスタム |
|---|---|---|
| maxMemoryAllocationCount | 4096 | 4294967295 |
| maxSamplerAllocationCount | 4000 | 65536 |
| bufferImageGranularity | 1 | 64 |
| sparseAddressSpaceSize | 562949953421311 | 0 |
| 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 |
片方のドライバーだけが対応するフォーマット(追加34、欠落1)
- 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
- 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
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16