WN-Turnip-1.14-p_Axxx vs Qualcomm Technologies Inc. Adreno Vulkan Driver
Na Adreno (TM) 740 (AYN Odin2, AYN Odin2 Portal, AYN Thor, Moorechip Retroid Pocket 6, Moorechip Retroid Pocket Nova, motorola edge plus 2023, OnePlus 11 5G, POCO F6 Pro, Samsung Galaxy S23, Samsung Galaxy S23, Samsung Galaxy S23, Samsung Galaxy S23 Ultra, Samsung Galaxy S23 Ultra, Samsung Galaxy S23+, Sony Xperia 1 V, Xiaomi 13 pro). O primeiro driver citado é comparado com o segundo, que é a referência.
- hdr_2160p23% mais lento
- pipeline_barriers_2160p25% mais rápido
- subpasses_2160p13% mais rápido
Pequenas áreas da imagem diferem do driver do sistema em 2 cenas (pipeline_barriers: 1671 de 2304 células, pipeline_barriers_2160p: 1596 de 2304 células). A imagem bate no geral, então isto é uma falha local de renderização, não uma cena diferente.
Nem sempre iniciou: compute_nbody (do sistema 3 de 3, customizado 0 de 3).
Condições diferentes: o clock da GPU foi diferente em 1 dessas cenas (por exemplo pipeline_barriers_2160p: do sistema a 90% do máximo do aparelho, customizado a 100%). Parte da diferença de frametime vem do clock que o aparelho escolheu, não do driver.
Detalhes do Qualcomm Technologies Inc. Adreno Vulkan Driver Detalhes do WN-Turnip-1.14-p_Axxx
Verificações de recursos que diferem (35)
| Recurso | Sistema | Customizado | Mudança |
|---|---|---|---|
| core.compute_udiv | passou | falhou | perdidos |
| borderColorSwizzle | sem suporte | passou | ganhos |
| extendedDynamicState3ColorBlendEnable | sem suporte | passou | ganhos |
| extendedDynamicState3ColorBlendEquation | sem suporte | passou | ganhos |
| extendedDynamicState3ColorWriteMask | sem suporte | passou | ganhos |
| extendedDynamicState3DepthClampEnable | sem suporte | passou | ganhos |
| extendedDynamicState3LogicOpEnable | sem suporte | passou | ganhos |
| extendedDynamicState3PolygonMode | sem suporte | passou | ganhos |
| inlineUniformBlock | sem suporte | passou | ganhos |
| shaderBufferInt64Atomics | sem suporte | passou | ganhos |
| borderColorSwizzleFromImage | sem suporte | não testado | mudou |
| extendedDynamicState3AlphaToCoverageEnable | sem suporte | não testado | mudou |
| extendedDynamicState3AlphaToOneEnable | sem suporte | não testado | mudou |
| extendedDynamicState3ConservativeRasterizationMode | sem suporte | não testado | mudou |
| extendedDynamicState3DepthClipEnable | sem suporte | não testado | mudou |
| extendedDynamicState3DepthClipNegativeOneToOne | sem suporte | não testado | mudou |
| extendedDynamicState3ExtraPrimitiveOverestimationSize | sem suporte | não testado | mudou |
| extendedDynamicState3LineRasterizationMode | sem suporte | não testado | mudou |
| extendedDynamicState3ProvokingVertexMode | sem suporte | não testado | mudou |
| extendedDynamicState3RasterizationSamples | sem suporte | não testado | mudou |
| extendedDynamicState3RasterizationStream | sem suporte | não testado | mudou |
| extendedDynamicState3SampleLocationsEnable | sem suporte | não testado | mudou |
| extendedDynamicState3SampleMask | sem suporte | não testado | mudou |
| extendedDynamicState3TessellationDomainOrigin | sem suporte | não testado | mudou |
| descriptorBindingInlineUniformBlockUpdateAfterBind | sem suporte | não testado | mudou |
| shaderInt64 | sem suporte | não testado | mudou |
| shaderResourceMinLod | sem suporte | não testado | mudou |
| shaderResourceResidency | sem suporte | não testado | mudou |
| shaderTessellationAndGeometryPointSize | sem suporte | não testado | mudou |
| sparseResidency16Samples | não testado | sem suporte | mudou |
| sparseResidency2Samples | não testado | sem suporte | mudou |
| sparseResidency4Samples | não testado | sem suporte | mudou |
| sparseResidency8Samples | não testado | sem suporte | mudou |
| sparseResidencyAliased | sem suporte | não testado | mudou |
| sparseResidencyImage2D | não testado | sem suporte | mudou |
Cenas do teste de velocidade (benchmark)
Os dois drivers não foram medidos no mesmo conjunto de modelos de aparelho. Frametimes de aparelhos diferentes não servem para comparar drivers, então leia esses números com isso em mente.
| Cena | Sistema ms | Customizado ms | Diferença | Inícios | Clock da GPU, MHz | Imagem vs driver do sistema |
|---|---|---|---|---|---|---|
| compute_nbody | 7.84 | n/a | só um lado | 3 de 3 vs 0 de 3 | 561 vs ? | não verificado |
| compute_nbody_2x | 25.49 | n/a | só um lado | 3 de 3 vs ? | 550 vs ? | não verificado |
| hdr_2160p | 26.73 | 34.82 | 23% mais lento | 3 de 3 vs 3 de 3 | 550 vs 680 | sem diferença grande sem diferença pequena |
| oit_linked_lists | n/a | 26.44 | só um lado | 3 de 3 vs 3 de 3 | 719 vs 680 | sem diferença grande sem diferença pequena |
| pipeline_barriers | n/a | 2.26 | leve demais, veja pipeline_barriers_2160p | 3 de 3 vs 3 de 3 | 680 vs 680 | sem diferença grande difere em 1671 áreas pequenas |
| pipeline_barriers_2160p | 9.55 | 7.62 | 25% mais rápido | 3 de 3 vs 3 de 3 | 495 vs 680 não comparável | sem diferença grande difere em 1596 áreas pequenas |
| subpasses | 5.53 | 3.80 | leve demais, veja subpasses_2160p | 3 de 3 vs 3 de 3 | 549 vs 680 não comparável | não verificado |
| subpasses_2160p | 15.58 | 13.75 | 13% mais rápido | 3 de 3 vs 3 de 3 | 550 vs 680 | não verificado |
Diferenças técnicas (Vulkan)
Extensões só no WN-Turnip-1.14-p_Axxx (67)
- 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_border_color_swizzle
- VK_EXT_conditional_rendering
- VK_EXT_custom_resolve
- VK_EXT_debug_marker
- VK_EXT_depth_clamp_control
- VK_EXT_depth_clamp_zero_one
- VK_EXT_descriptor_buffer
- VK_EXT_device_address_binding_report
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state3
- VK_EXT_external_memory_dma_buf
- VK_EXT_fragment_density_map_offset
- 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_inline_uniform_block
- VK_EXT_legacy_dithering
- VK_EXT_legacy_vertex_attributes
- 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_image_atomic_int64
- 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_zero_initialize_device_memory
- VK_GOOGLE_decorate_string
- VK_GOOGLE_hlsl_functionality1
- VK_KHR_compute_shader_derivatives
- VK_KHR_dynamic_rendering_local_read
- VK_KHR_index_type_uint8
- VK_KHR_line_rasterization
- VK_KHR_load_store_op_none
- VK_KHR_maintenance5
- VK_KHR_maintenance6
- VK_KHR_maintenance7
- VK_KHR_map_memory2
- VK_KHR_pipeline_library
- VK_KHR_ray_tracing_maintenance1
- VK_KHR_shader_atomic_int64
- VK_KHR_shader_clock
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float_controls2
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_NV_compute_shader_derivatives
- VK_QCOM_multiview_per_view_render_areas
- VK_QCOM_multiview_per_view_viewports
- VK_VALVE_fragment_density_map_layered
- VK_VALVE_mutable_descriptor_type
Extensões só no Qualcomm Technologies Inc. Adreno Vulkan Driver (10)
- VK_EXT_astc_decode_mode
- VK_EXT_blend_operation_advanced
- VK_EXT_fragment_density_map2
- VK_EXT_swapchain_maintenance1
- VK_KHR_shared_presentable_image
- VK_KHR_swapchain_mutable_format
- VK_QCOM_render_pass_store_ops
- VK_QCOM_render_pass_transform
- VK_QCOM_rotated_copy_commands
- VK_QCOM_tile_properties
Recursos básicos que diferem (23)
| multiviewGeometryShader | sem suporte a passou |
| protectedMemory | passou a sem suporte |
| shaderBufferInt64Atomics | sem suporte a passou |
| shaderInputAttachmentArrayDynamicIndexing | passou a sem suporte |
| shaderInputAttachmentArrayNonUniformIndexing | passou a sem suporte |
| shaderOutputLayer | sem suporte a passou |
| shaderOutputViewportIndex | sem suporte a passou |
| bresenhamLines | sem suporte a passou |
| dynamicRenderingLocalRead | sem suporte a passou |
| globalPriorityQuery | sem suporte a passou |
| hostImageCopy | sem suporte a passou |
| indexTypeUint8 | sem suporte a passou |
| maintenance5 | sem suporte a passou |
| maintenance6 | sem suporte a passou |
| pipelineRobustness | sem suporte a passou |
| pushDescriptor | sem suporte a passou |
| rectangularLines | sem suporte a passou |
| shaderExpectAssume | sem suporte a passou |
| shaderFloatControls2 | sem suporte a passou |
| shaderSubgroupRotate | sem suporte a passou |
| shaderSubgroupRotateClustered | sem suporte a passou |
| vertexAttributeInstanceRateDivisor | sem suporte a passou |
| vertexAttributeInstanceRateZeroDivisor | sem suporte a passou |
Limites que diferem (18)
| Limite | Sistema | Customizado |
|---|---|---|
| bufferImageGranularity | 1 | 64 |
| sparseAddressSpaceSize | 562949953421311 | 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 |
| maxComputeWorkGroupInvocations | 1024 | 2048 |
| minMemoryMapAlignment | 64 | 4096 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| maxFramebufferLayers | 2048 | 1024 |
| discreteQueuePriorities | 3 | 2 |
| optimalBufferCopyOffsetAlignment | 64 | 128 |
| optimalBufferCopyRowPitchAlignment | 64 | 128 |
| nonCoherentAtomSize | 1 | 64 |
Formatos suportados por só um driver (31 ganhos, 1 perdidos)
- A1B5G5R5_UNORM_PACK16
- A2B10G10R10_SSCALED_PACK32
- A2B10G10R10_USCALED_PACK32
- A2R10G10B10_SSCALED_PACK32
- A2R10G10B10_USCALED_PACK32
- A8B8G8R8_SSCALED_PACK32
- A8B8G8R8_USCALED_PACK32
- A8_UNORM
- B8G8R8A8_SSCALED
- B8G8R8A8_USCALED
- B8G8R8_SINT
- B8G8R8_SNORM
- B8G8R8_UINT
- R16G16B16A16_SSCALED
- R16G16B16A16_USCALED
- R16G16B16_SSCALED
- R16G16B16_USCALED
- R16G16_SSCALED
- R16G16_USCALED
- R16_SSCALED
- R16_USCALED
- R64_SINT
- R64_UINT
- R8G8B8A8_SSCALED
- R8G8B8A8_USCALED
- R8G8B8_SSCALED
- R8G8B8_USCALED
- R8G8_SSCALED
- R8G8_USCALED
- R8_SSCALED
- R8_USCALED
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16