panvk_faux123_v1.1.3 vs PanVK-Droid.0.3.5
Na Mali-G52 (CHUWI HiPad-Air, HONOR X5c, HONOR X5c, Infinix HOT 60i, Oppo A18, Oppo A38, realme RMX3710, Redmi 12, Redmi 12C, Redmi 14C, Redmi 15C, Samsung Galaxy A32, TECNO POVA 3, TECNO SPARK 10 Pro, TECNO SPARK 20, Vivo Y03, Xiaomi 24040RN64Y, Xiaomi 24049RN28L). O primeiro driver citado é comparado com o segundo, que é a referência.
- compute_nbody7% mais lento
- hdr_2160p18% mais rápido
- pipeline_barriers5% mais lento
- subpasses6% mais rápido
Pequenas áreas da imagem diferem do driver do sistema em 2 cenas (compute_nbody: 15 de 2304 células, pipeline_barriers: 1450 de 2304 células). A imagem bate no geral, então isto é uma falha local de renderização, não uma cena diferente.
Detalhes do PanVK-Droid.0.3.5 Detalhes do panvk_faux123_v1.1.3
Verificações de recursos que diferem (45)
| Recurso | PanVK-Droid.0.3.5 | panvk_faux123_v1.1.3 | Mudança |
|---|---|---|---|
| transformFeedback | passou | sem suporte | perdidos |
| shaderBufferInt64Atomics | passou | sem suporte | perdidos |
| geometryShader | passou | sem suporte | perdidos |
| occlusionQueryPrecise | passou | falhou | perdidos |
| tessellationShader | passou | sem suporte | perdidos |
| limit.uniform_buffer_range | passou | falhou | perdidos |
| colorWriteEnable | sem suporte | passou | ganhos |
| depthClipControl | sem suporte | passou | ganhos |
| extendedDynamicState2LogicOp | 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 |
| depthClamp | sem suporte | passou | ganhos |
| largePoints | não testado | passou | ganhos |
| textureCompressionBC | sem suporte | 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.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 |
| push.max_combined_image_samplers | sem suporte | passou | ganhos |
| push.max_uniform_buffers | sem suporte | passou | ganhos |
| sync.first_submit_clear_then_compute | não testado | passou | ganhos |
| customBorderColorWithoutFormat | não testado | sem suporte | mudou |
| depthBiasControl | sem suporte | não testado | mudou |
| depthBiasExact | sem suporte | não testado | mudou |
| extendedDynamicState2PatchControlPoints | não testado | sem suporte | mudou |
| extendedDynamicState3AlphaToCoverageEnable | sem suporte | não testado | mudou |
| extendedDynamicState3DepthClipEnable | sem suporte | não testado | mudou |
| extendedDynamicState3ProvokingVertexMode | não testado | sem suporte | mudou |
| extendedDynamicState3RasterizationSamples | sem suporte | não testado | mudou |
| extendedDynamicState3TessellationDomainOrigin | não testado | sem suporte | mudou |
| shaderSharedInt64Atomics | não testado | sem suporte | mudou |
| stage.geometry_max_output | não testado | sem suporte | mudou |
| stage.geometry_point_size | não testado | sem suporte | mudou |
| stress.scratch_per_batch | 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 | PanVK-Droid.0.3.5 ms | panvk_faux123_v1.1.3 ms | Diferença | Inícios | Clock da GPU, MHz | Imagem vs driver do sistema |
|---|---|---|---|---|---|---|
| compute_nbody | 80.79 | 87.15 | 7% mais lento | 3 de 3 vs 3 de 3 | ? vs ? | sem diferença grande difere em 15 áreas pequenas |
| hdr_2160p | 173.86 | 147.08 | 18% mais rápido | 3 de 3 vs 3 de 3 | ? vs ? | sem diferença grande sem diferença pequena |
| oit_linked_lists | n/a | 77.81 | só um lado | 3 de 3 vs 3 de 3 | ? vs ? | sem diferença grande sem diferença pequena |
| pipeline_barriers | 66.50 | 69.78 | 5% mais lento | 3 de 3 vs 3 de 3 | ? vs ? | sem diferença grande difere em 1450 áreas pequenas |
| subpasses | 127.93 | 121.22 | 6% mais rápido | 3 de 3 vs 3 de 3 | ? vs ? | não verificado |
Diferenças técnicas (Vulkan)
Extensões só no panvk_faux123_v1.1.3 (46)
- VK_ARM_scheduling_controls
- VK_EXT_attachment_feedback_loop_dynamic_state
- VK_EXT_attachment_feedback_loop_layout
- VK_EXT_buffer_device_address
- VK_EXT_color_write_enable
- VK_EXT_depth_bias_control
- VK_EXT_depth_clamp_control
- VK_EXT_depth_clamp_zero_one
- VK_EXT_depth_clip_control
- VK_EXT_depth_clip_enable
- VK_EXT_graphics_pipeline_library
- VK_EXT_hdr_metadata
- VK_EXT_host_image_copy
- VK_EXT_image_view_min_lod
- VK_EXT_map_memory_placed
- VK_EXT_memory_budget
- VK_EXT_non_seamless_cube_map
- VK_EXT_physical_device_drm
- VK_EXT_present_timing
- VK_EXT_shader_atomic_float
- VK_EXT_shader_module_identifier
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_stencil_export
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_vertex_attribute_divisor
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_hlsl_functionality1
- VK_KHR_internally_synchronized_queues
- VK_KHR_maintenance7
- VK_KHR_maintenance8
- VK_KHR_maintenance9
- VK_KHR_pipeline_executable_properties
- VK_KHR_pipeline_library
- VK_KHR_present_id
- VK_KHR_present_id2
- VK_KHR_present_wait
- VK_KHR_present_wait2
- VK_KHR_push_descriptor
- VK_KHR_shader_clock
- VK_KHR_shader_constant_data
- VK_KHR_shader_fma
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_swapchain_maintenance1
- VK_KHR_swapchain_mutable_format
- VK_KHR_unified_image_layouts
- VK_KHR_workgroup_memory_explicit_layout
Extensões só no PanVK-Droid.0.3.5 (18)
- VK_ANDROID_external_format_resolve
- VK_ARM_rasterization_order_attachment_access
- VK_EXT_device_fault
- VK_EXT_frame_boundary
- VK_EXT_image_compression_control_swapchain
- VK_EXT_pipeline_protected_access
- VK_EXT_primitives_generated_query
- VK_EXT_rasterization_order_attachment_access
- VK_EXT_rgba10x6_formats
- VK_EXT_shader_image_atomic_int64
- VK_EXT_shader_tile_image
- VK_EXT_subpass_merge_feedback
- VK_EXT_transform_feedback
- VK_KHR_shader_atomic_int64
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_quad_control
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_shared_presentable_image
Recursos básicos que diferem (16)
| descriptorBindingVariableDescriptorCount | sem suporte a passou |
| runtimeDescriptorArray | sem suporte a passou |
| shaderBufferInt64Atomics | passou a sem suporte |
| shaderFloat16 | passou a sem suporte |
| shaderInputAttachmentArrayDynamicIndexing | sem suporte a passou |
| shaderInputAttachmentArrayNonUniformIndexing | sem suporte a passou |
| shaderOutputViewportIndex | passou a sem suporte |
| shaderSampledImageArrayNonUniformIndexing | sem suporte a passou |
| shaderSharedInt64Atomics | passou a sem suporte |
| shaderStorageBufferArrayNonUniformIndexing | sem suporte a passou |
| shaderStorageImageArrayNonUniformIndexing | sem suporte a passou |
| shaderStorageTexelBufferArrayDynamicIndexing | sem suporte a passou |
| shaderStorageTexelBufferArrayNonUniformIndexing | sem suporte a passou |
| shaderUniformBufferArrayNonUniformIndexing | sem suporte a passou |
| shaderUniformTexelBufferArrayDynamicIndexing | sem suporte a passou |
| shaderUniformTexelBufferArrayNonUniformIndexing | sem suporte a passou |
Limites que diferem (53)
| Limite | PanVK-Droid.0.3.5 | panvk_faux123_v1.1.3 |
|---|---|---|
| maxImageDimension1D | 16384 | 65536 |
| maxImageDimension2D | 16384 | 65536 |
| maxImageDimension3D | 16384 | 65536 |
| maxImageDimensionCube | 16384 | 65536 |
| maxImageArrayLayers | 4096 | 65536 |
| maxTexelBufferElements | 268435456 | 134217728 |
| maxUniformBufferRange | 65536 | 1048576 |
| maxStorageBufferRange | 2147483648 | 4294967295 |
| maxMemoryAllocationCount | 16384 | 4294967295 |
| bufferImageGranularity | 1 | 64 |
| sparseAddressSpaceSize | 0 | 17146314752 |
| maxPerStageDescriptorUniformBuffers | 241 | 223 |
| maxPerStageDescriptorStorageBuffers | 35 | 64 |
| maxPerStageDescriptorStorageImages | 21 | 32 |
| maxPerStageResources | 570 | 712 |
| maxDescriptorSetSamplers | 768 | 65535 |
| maxDescriptorSetUniformBuffers | 1446 | 223 |
| maxDescriptorSetUniformBuffersDynamic | 32 | 16 |
| maxDescriptorSetStorageBuffers | 210 | 4096 |
| maxDescriptorSetStorageBuffersDynamic | 32 | 8 |
| maxDescriptorSetSampledImages | 1536 | 65535 |
| maxDescriptorSetStorageImages | 126 | 256 |
| maxVertexInputAttributes | 32 | 16 |
| maxVertexInputBindings | 32 | 16 |
| maxVertexInputAttributeOffset | 2047 | 4294967295 |
| maxVertexInputBindingStride | 2048 | 65535 |
| maxTessellationGenerationLevel | 64 | 0 |
| maxTessellationPatchSize | 32 | 0 |
| maxTessellationControlPerVertexInputComponents | 128 | 0 |
| maxTessellationControlPerVertexOutputComponents | 128 | 0 |
| maxTessellationControlPerPatchOutputComponents | 120 | 0 |
| maxTessellationControlTotalOutputComponents | 4096 | 0 |
| maxTessellationEvaluationInputComponents | 128 | 0 |
| maxTessellationEvaluationOutputComponents | 128 | 0 |
| maxGeometryShaderInvocations | 32 | 0 |
| maxGeometryInputComponents | 128 | 0 |
| maxGeometryOutputComponents | 128 | 0 |
| maxGeometryOutputVertices | 256 | 0 |
| maxGeometryTotalOutputComponents | 2048 | 0 |
| maxFragmentCombinedOutputResources | 64 | 4360 |
| maxComputeWorkGroupCount | 4294967295, 4294967295, 4294967295 | 65535, 65535, 65535 |
| maxSamplerLodBias | 126 | 127.996 |
| minMemoryMapAlignment | 64 | 4096 |
| minTexelBufferOffsetAlignment | 64 | 16 |
| minStorageBufferOffsetAlignment | 64 | 16 |
| maxInterpolationOffset | 0.4375 | 0.5 |
| subPixelInterpolationOffsetBits | 4 | 8 |
| framebufferNoAttachmentsSampleCounts | 29 | 5 |
| timestampComputeAndGraphics | 1 | 0 |
| timestampPeriod | 76.9231 | 0 |
| pointSizeRange | 1, 1024 | 0.125, 4095.94 |
| lineWidthRange | 1, 4095.94 | 0, 7.99219 |
| lineWidthGranularity | 0.0625 | 0.0078125 |
Formatos suportados por só um driver (21 ganhos, 12 perdidos)
- A2R10G10B10_SNORM_PACK32
- BC1_RGBA_SRGB_BLOCK
- BC1_RGBA_UNORM_BLOCK
- BC1_RGB_SRGB_BLOCK
- BC1_RGB_UNORM_BLOCK
- BC2_SRGB_BLOCK
- BC2_UNORM_BLOCK
- BC3_SRGB_BLOCK
- BC3_UNORM_BLOCK
- BC4_SNORM_BLOCK
- BC4_UNORM_BLOCK
- BC5_SNORM_BLOCK
- BC5_UNORM_BLOCK
- BC6H_SFLOAT_BLOCK
- BC6H_UFLOAT_BLOCK
- BC7_SRGB_BLOCK
- BC7_UNORM_BLOCK
- G16_B16R16_2PLANE_420_UNORM
- G16_B16R16_2PLANE_422_UNORM
- G16_B16R16_2PLANE_444_UNORM
- G8_B8R8_2PLANE_444_UNORM
- B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
- B5G5R5A1_UNORM_PACK16
- B8G8R8G8_422_UNORM
- B8G8R8_SNORM
- G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- G8B8G8R8_422_UNORM
- R4G4_UNORM_PACK8
- R5G5B5A1_UNORM_PACK16
- R64_SINT
- R64_UINT