Turnip_Gen8_V38 contre Qualcomm Technologies Inc. Adreno Vulkan Driver
Sur Adreno (TM) 840 (HONOR Magic8 pro, iQOO 15, LENOVO TB324ZC, nubia NX809J, OnePlus 15, POCO F8 Ultra, POCO F9 Ultra, realme RMX5210, Samsung Galaxy S26, Samsung Galaxy S26, Samsung Galaxy S26 Ultra, Samsung Galaxy S26 Ultra, Samsung Galaxy S26 Ultra, Samsung Galaxy Z Fold8, Samsung Galaxy Z Fold8 Ultra, Xiaomi 17, Xiaomi 2512BPNDAG). Le premier pilote cité est comparé au second, qui sert de référence.
- hdr_2160p11% plus rapide
- oit_linked_lists18% plus lent
- pipeline_barriers_2160p9% plus lent
De petites zones de l'image diffèrent de celles du pilote système dans 2 scènes (pipeline_barriers : 1337 cellules sur 2304, pipeline_barriers_2160p : 1207 cellules sur 2304). L'image correspond globalement, il s'agit donc d'un défaut d'affichage local, pas d'une scène différente.
Détails de Qualcomm Technologies Inc. Adreno Vulkan Driver Détails de Turnip_Gen8_V38
Vérifications des fonctionnalités qui diffèrent (42)
| Fonctionnalité | Système | Personnalisé | Variation |
|---|---|---|---|
| core.compute_udiv | réussi | échec | perdu |
| extendedDynamicState3ColorBlendEnable | non pris en charge | réussi | gagné |
| extendedDynamicState3ColorBlendEquation | non pris en charge | réussi | gagné |
| extendedDynamicState3ColorWriteMask | non pris en charge | réussi | gagné |
| extendedDynamicState3DepthClampEnable | non pris en charge | réussi | gagné |
| extendedDynamicState3LogicOpEnable | non pris en charge | réussi | gagné |
| extendedDynamicState3PolygonMode | non pris en charge | réussi | gagné |
| depthClamp | non testé | réussi | gagné |
| largePoints | non testé | réussi | gagné |
| compat.helper_loop_terminator | non testé | réussi | gagné |
| core.blend_advertised_formats | non testé | réussi | gagné |
| core.compute_big_stack | non testé | réussi | gagné |
| core.host_coherent_readback | non testé | réussi | gagné |
| core.mrt_partial_kill | non testé | réussi | gagné |
| core.ubo_update_buffer | non testé | réussi | gagné |
| core.ubo_written_after_record | non testé | réussi | gagné |
| core.varying_subset | non testé | réussi | gagné |
| mem.image_padding | non testé | réussi | gagné |
| perf.fb_local_barrier_large_draws | non testé | réussi | gagné |
| perf.fb_local_barrier_overdraw | non testé | réussi | gagné |
| stage.geometry_max_output | non testé | réussi | gagné |
| stage.geometry_point_size | non testé | réussi | gagné |
| sync.first_submit_clear_then_compute | non testé | réussi | gagné |
| extendedDynamicState3AlphaToCoverageEnable | non pris en charge | non testé | modifié |
| extendedDynamicState3AlphaToOneEnable | non pris en charge | non testé | modifié |
| extendedDynamicState3ConservativeRasterizationMode | non pris en charge | non testé | modifié |
| extendedDynamicState3DepthClipEnable | non pris en charge | non testé | modifié |
| extendedDynamicState3DepthClipNegativeOneToOne | non pris en charge | non testé | modifié |
| extendedDynamicState3ExtraPrimitiveOverestimationSize | non pris en charge | non testé | modifié |
| extendedDynamicState3LineRasterizationMode | non pris en charge | non testé | modifié |
| extendedDynamicState3ProvokingVertexMode | non pris en charge | non testé | modifié |
| extendedDynamicState3RasterizationSamples | non pris en charge | non testé | modifié |
| extendedDynamicState3RasterizationStream | non pris en charge | non testé | modifié |
| extendedDynamicState3SampleLocationsEnable | non pris en charge | non testé | modifié |
| extendedDynamicState3SampleMask | non pris en charge | non testé | modifié |
| extendedDynamicState3TessellationDomainOrigin | non pris en charge | non testé | modifié |
| shaderSharedInt64Atomics | non testé | non pris en charge | modifié |
| shaderResourceMinLod | non pris en charge | non testé | modifié |
| shaderResourceResidency | non pris en charge | non testé | modifié |
| sparseResidency16Samples | non testé | non pris en charge | modifié |
| sparseResidencyAliased | non pris en charge | non testé | modifié |
| compat.nested_map | non testé | plantage | modifié |
Scènes du benchmark
Les deux pilotes n'ont pas été mesurés sur les mêmes modèles d'appareils. Des temps de frame venant d'appareils différents ne permettent pas de comparer des pilotes : lisez ces chiffres en en tenant compte.
| Scène | Système ms | Personnalisé ms | Écart | Démarrages | Fréquence du GPU, MHz | Image vs système |
|---|---|---|---|---|---|---|
| compute_nbody | n/a | n/a | un seul côté | 3 sur 3 contre 3 sur 3 | ? contre ? | pas de grande différence pas de petite différence |
| compute_nbody_2x | n/a | 10.64 | un seul côté | 3 sur 3 contre 3 sur 3 | ? contre ? | pas de grande différence pas de petite différence |
| hdr_2160p | 9.89 | 8.91 | 11% plus rapide | 3 sur 3 contre 3 sur 3 | ? contre ? | pas de grande différence pas de petite différence |
| oit_linked_lists | 10.55 | 12.89 | 18% plus lent | 3 sur 3 contre 3 sur 3 | ? contre ? | pas de grande différence pas de petite différence |
| pipeline_barriers | 2.82 | 1.56 | trop légère, voir pipeline_barriers_2160p | 3 sur 3 contre 3 sur 3 | ? contre ? | pas de grande différence diffère dans 1337 petites zones |
| pipeline_barriers_2160p | 6.08 | 6.71 | 9% plus lent | 3 sur 3 contre 3 sur 3 | ? contre ? | pas de grande différence diffère dans 1207 petites zones |
| subpasses | n/a | n/a | un seul côté | 3 sur 3 contre 3 sur 3 | ? contre ? | non vérifié |
| subpasses_2160p | n/a | n/a | un seul côté | 3 sur 3 contre 3 sur 3 | ? contre ? | non vérifié |
Différences techniques (Vulkan)
Extensions uniquement dans Turnip_Gen8_V38 (27)
- VK_AMD_buffer_marker
- VK_ARM_rasterization_order_attachment_access
- VK_EXT_attachment_feedback_loop_dynamic_state
- VK_EXT_attachment_feedback_loop_layout
- VK_EXT_custom_resolve
- VK_EXT_debug_marker
- VK_EXT_depth_clamp_control
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state3
- VK_EXT_fragment_density_map_offset
- VK_EXT_image_drm_format_modifier
- VK_EXT_legacy_dithering
- VK_EXT_legacy_vertex_attributes
- VK_EXT_memory_budget
- VK_EXT_nested_command_buffer
- VK_EXT_non_seamless_cube_map
- VK_EXT_primitive_restart_index
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_decorate_string
- VK_GOOGLE_hlsl_functionality1
- VK_KHR_shader_relaxed_extended_instruction
- VK_NV_compute_shader_derivatives
- VK_VALVE_buffer_device_address_allocation_alignment
- VK_VALVE_fragment_density_map_layered
- VK_VALVE_mutable_descriptor_type
Extensions uniquement dans Qualcomm Technologies Inc. Adreno Vulkan Driver (28)
- VK_ANDROID_external_format_resolve
- VK_EXT_astc_decode_mode
- VK_EXT_blend_operation_advanced
- VK_EXT_depth_range_unrestricted
- VK_EXT_device_fault
- VK_EXT_external_memory_acquire_unmodified
- VK_EXT_fragment_density_map2
- VK_EXT_image_compression_control_swapchain
- VK_EXT_mesh_shader
- VK_EXT_pipeline_protected_access
- VK_EXT_pipeline_robustness
- VK_EXT_shader_subgroup_ballot
- VK_EXT_subpass_merge_feedback
- VK_KHR_cooperative_matrix
- VK_KHR_pipeline_binary
- VK_KHR_ray_tracing_pipeline
- VK_KHR_ray_tracing_position_fetch
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shared_presentable_image
- VK_NV_optical_flow
- VK_QCOM_filter_cubic_weights
- VK_QCOM_image_processing2
- VK_QCOM_render_pass_store_ops
- VK_QCOM_render_pass_transform
- VK_QCOM_tile_memory_heap
- VK_QCOM_tile_properties
- VK_QCOM_tile_shading
- VK_QCOM_ycbcr_degamma
Fonctionnalités de base qui diffèrent (6)
| multiviewGeometryShader | non pris en charge à réussi |
| protectedMemory | réussi à non pris en charge |
| shaderInputAttachmentArrayDynamicIndexing | réussi à non pris en charge |
| shaderInputAttachmentArrayNonUniformIndexing | réussi à non pris en charge |
| shaderSharedInt64Atomics | réussi à non pris en charge |
| pipelineProtectedAccess | réussi à non pris en charge |
Limites qui diffèrent (22)
| Limite | Système | Personnalisé |
|---|---|---|
| maxTexelBufferElements | 134217728 | 536870911 |
| bufferImageGranularity | 1 | 64 |
| sparseAddressSpaceSize | 4294967295 | 274877906944 |
| maxPerStageResources | 50331648 | 16777216 |
| maxDescriptorSetUniformBuffersDynamic | 32 | 16 |
| maxDescriptorSetStorageBuffersDynamic | 16 | 8 |
| maxVertexInputAttributeOffset | 4096 | 4095 |
| maxGeometryInputComponents | 128 | 64 |
| maxGeometryOutputVertices | 1024 | 256 |
| maxGeometryTotalOutputComponents | 131072 | 1024 |
| maxFragmentInputComponents | 112 | 128 |
| maxComputeSharedMemorySize | 32768 | 65536 |
| maxComputeWorkGroupInvocations | 1024 | 2048 |
| minMemoryMapAlignment | 64 | 4096 |
| minUniformBufferOffsetAlignment | 256 | 64 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| maxFramebufferLayers | 2048 | 1024 |
| discreteQueuePriorities | 4 | 2 |
| pointSizeRange | 1, 4095 | 1, 4092 |
| optimalBufferCopyOffsetAlignment | 64 | 128 |
| optimalBufferCopyRowPitchAlignment | 64 | 128 |
| nonCoherentAtomSize | 1 | 64 |
Formats pris en charge par un seul pilote (5 gagnés, 3 perdus)
- B8G8R8A8_SSCALED
- B8G8R8A8_USCALED
- B8G8R8_SINT
- B8G8R8_SNORM
- B8G8R8_UINT
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- G16_B16R16_2PLANE_420_UNORM