turnip_faux123_v1.2.0 vs Qualcomm Technologies Inc. Adreno Vulkan Driver
Na Adreno (TM) 830 (AYANEO Pocket FIT Elite, HONOR AAK-AN00, HONOR Magic V5, nubia NX789J, OnePlus 13, OnePlus 13, OnePlus 13s, POCO F8 Pro, realme GT 7 Pro, Samsung Galaxy S25, Samsung Galaxy S25 Ultra, Samsung Galaxy S25 Ultra, Samsung Galaxy S25 Ultra, Samsung Galaxy S25+, Xiaomi 15, Xiaomi 15, Xiaomi 15 Ultra, ZTE NP05J). O primeiro driver citado é comparado com o segundo, que é a referência.
- hdr_2160p32% mais lento
- oit_linked_lists43% mais lento
- pipeline_barriers_2160p35% mais lento
- subpasses_2160p39% mais lento
Pequenas áreas da imagem diferem do driver do sistema em 2 cenas (pipeline_barriers: 1432 de 2304 células, pipeline_barriers_2160p: 1291 de 2304 células). A imagem bate no geral, então isto é uma falha local de renderização, não uma cena diferente.
Condições diferentes: o clock da GPU foi diferente em 1 dessas cenas (por exemplo hdr_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 turnip_faux123_v1.2.0
Verificações de recursos que diferem (42)
| Recurso | Sistema | Customizado | Mudança |
|---|---|---|---|
| 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 |
| depthClamp | não testado | passou | ganhos |
| largePoints | não testado | passou | ganhos |
| compat.helper_loop_terminator | não testado | passou | ganhos |
| compat.nested_map | não testado | passou | ganhos |
| core.blend_advertised_formats | não testado | passou | ganhos |
| core.compute_big_stack | não testado | passou | ganhos |
| core.copy_wide_row_length | falhou | passou | ganhos |
| core.host_coherent_readback | não testado | passou | ganhos |
| core.mrt_partial_kill | não testado | passou | ganhos |
| core.ubo_update_buffer | não testado | passou | ganhos |
| core.ubo_written_after_record | não testado | passou | ganhos |
| core.varying_subset | não testado | passou | ganhos |
| mem.image_padding | não testado | passou | ganhos |
| perf.fb_local_barrier_large_draws | não testado | passou | ganhos |
| perf.fb_local_barrier_overdraw | não testado | passou | ganhos |
| stage.geometry_max_output | não testado | passou | ganhos |
| stage.geometry_point_size | não testado | passou | ganhos |
| stress.scratch_per_batch | não testado | passou | ganhos |
| sync.first_submit_clear_then_compute | não testado | passou | ganhos |
| 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 |
| shaderResourceMinLod | sem suporte | não testado | mudou |
| shaderResourceResidency | sem suporte | não testado | mudou |
| sparseResidency16Samples | não testado | sem suporte | mudou |
| sparseResidencyAliased | sem suporte | não testado | 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 | 8.51 | n/a | só um lado | 3 de 3 vs 3 de 3 | 432 vs 525 não comparável | sem diferença grande sem diferença pequena |
| compute_nbody_2x | n/a | 17.79 | só um lado | ? vs 3 de 3 | ? vs 525 | não verificado |
| hdr_2160p | 11.03 | 16.11 | 32% mais lento | 3 de 3 vs 3 de 3 | 750 vs 525 não comparável | sem diferença grande sem diferença pequena |
| oit_linked_lists | 21.66 | 37.78 | 43% mais lento | 3 de 3 vs 3 de 3 | 832 vs 511 | sem diferença grande sem diferença pequena |
| pipeline_barriers | 2.38 | n/a | leve demais, veja pipeline_barriers_2160p | 3 de 3 vs 3 de 3 | 832 vs 494 não comparável | sem diferença grande difere em 1432 áreas pequenas |
| pipeline_barriers_2160p | 7.52 | 11.52 | 35% mais lento | 3 de 3 vs 3 de 3 | 816 vs 511 | sem diferença grande difere em 1291 áreas pequenas |
| subpasses | 3.12 | n/a | leve demais, veja subpasses_2160p | 3 de 3 vs 3 de 3 | 832 vs 525 | não verificado |
| subpasses_2160p | 12.01 | 19.84 | 39% mais lento | 3 de 3 vs 3 de 3 | 832 vs 525 | não verificado |
Diferenças técnicas (Vulkan)
Extensões só no turnip_faux123_v1.2.0 (31)
- 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_external_memory_dma_buf
- VK_EXT_graphics_pipeline_library
- VK_EXT_host_image_copy
- VK_EXT_image_drm_format_modifier
- VK_EXT_legacy_dithering
- VK_EXT_legacy_vertex_attributes
- VK_EXT_map_memory_placed
- 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_compute_shader_derivatives
- VK_KHR_maintenance7
- VK_KHR_pipeline_library
- VK_KHR_shader_relaxed_extended_instruction
- VK_NV_compute_shader_derivatives
- VK_VALVE_mutable_descriptor_type
Extensões só no Qualcomm Technologies Inc. Adreno Vulkan Driver (23)
- 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_map
- VK_EXT_fragment_density_map2
- VK_EXT_image_compression_control_swapchain
- VK_EXT_pipeline_protected_access
- VK_KHR_ray_tracing_position_fetch
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_quad_control
- VK_KHR_shared_presentable_image
- VK_NV_optical_flow
- VK_QCOM_filter_cubic_weights
- VK_QCOM_fragment_density_map_offset
- VK_QCOM_image_processing2
- VK_QCOM_render_pass_store_ops
- VK_QCOM_render_pass_transform
- VK_QCOM_rotated_copy_commands
- VK_QCOM_tile_properties
- VK_QCOM_ycbcr_degamma
Recursos básicos que diferem (20)
| multiviewGeometryShader | sem suporte a passou |
| protectedMemory | passou a sem suporte |
| shaderInputAttachmentArrayDynamicIndexing | passou a sem suporte |
| shaderInputAttachmentArrayNonUniformIndexing | passou a sem suporte |
| 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 (20)
| Limite | Sistema | Customizado |
|---|---|---|
| maxTexelBufferElements | 134217728 | 536870911 |
| 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 |
| minMemoryMapAlignment | 64 | 4096 |
| minUniformBufferOffsetAlignment | 256 | 64 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| maxFramebufferLayers | 2048 | 1024 |
| discreteQueuePriorities | 3 | 2 |
| pointSizeRange | 1, 4095 | 1, 4092 |
| optimalBufferCopyOffsetAlignment | 64 | 128 |
| optimalBufferCopyRowPitchAlignment | 64 | 128 |
| nonCoherentAtomSize | 1 | 64 |
Formatos suportados por só um driver (5 ganhos, 1 perdidos)
- B8G8R8A8_SSCALED
- B8G8R8A8_USCALED
- B8G8R8_SINT
- B8G8R8_SNORM
- B8G8R8_UINT
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16