panvk_faux123_v1.1.3 vs Mali-G57 MC2
Na Mali-G1-Ultra MC12 (Infinix HOT 50 Pro, Infinix NOTE 30, Infinix NOTE 40 Pro, itel RS4, Oppo A6 5G, Oppo A6t 5G, Oppo Find X9s Pro, realme RMX5111, REDMI 15C 5G, Redmi Note 10 5G, Redmi Note 13 5G, Redmi Note 13 Pro, Redmi Pad 2, Samsung Galaxy A07, Samsung Galaxy A07, Samsung Galaxy A15 5G, Samsung Galaxy A16, TCL 50 XE 5G). O primeiro driver citado é comparado com o segundo, que é a referência.
- compute_nbody25% mais rápido
- hdr_2160p18% mais rápido
- oit_linked_lists2% mais lento
- pipeline_barriers19% mais rápido
- subpasses27% mais rápido
Pequenas áreas da imagem diferem do driver do sistema em 1 cena (pipeline_barriers: 1383 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 Mali-G57 MC2 Detalhes do panvk_faux123_v1.1.3
Verificações de recursos que diferem (64)
| Recurso | Sistema | Customizado | Mudança |
|---|---|---|---|
| borderColorSwizzle | sem suporte | passou | ganhos |
| colorWriteEnable | sem suporte | passou | ganhos |
| depthClipControl | sem suporte | passou | ganhos |
| extendedDynamicState | sem suporte | passou | ganhos |
| extendedDynamicState2 | 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 |
| robustBufferAccess2 | sem suporte | passou | ganhos |
| robustImageAccess2 | sem suporte | passou | ganhos |
| vertexInputDynamicState | sem suporte | passou | ganhos |
| shaderBufferInt64Atomics | sem suporte | passou | ganhos |
| timelineSemaphore | falhou | passou | ganhos |
| depthClamp | não testado | passou | ganhos |
| largePoints | não testado | passou | ganhos |
| multiDrawIndirect | sem suporte | passou | ganhos |
| multiViewport | sem suporte | 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 |
| stage.geometry_max_output | não testado | passou | ganhos |
| stage.geometry_point_size | não testado | passou | ganhos |
| stress.multi_draw_indirect_large | sem suporte | passou | ganhos |
| stress.scratch_per_batch | não testado | passou | ganhos |
| sync.first_submit_clear_then_compute | não testado | passou | ganhos |
| borderColorSwizzleFromImage | sem suporte | não testado | mudou |
| depthBiasControl | sem suporte | não testado | mudou |
| depthBiasExact | sem suporte | não testado | mudou |
| extendedDynamicState2PatchControlPoints | sem suporte | não testado | mudou |
| extendedDynamicState3AlphaToCoverageEnable | sem suporte | não testado | mudou |
| extendedDynamicState3DepthClipEnable | sem suporte | não testado | mudou |
| extendedDynamicState3LineRasterizationMode | sem suporte | não testado | mudou |
| extendedDynamicState3RasterizationSamples | sem suporte | não testado | mudou |
| extendedDynamicState3SampleMask | sem suporte | não testado | mudou |
| nullDescriptor | sem suporte | não testado | mudou |
| geometryStreams | sem suporte | não testado | mudou |
| shaderSharedInt64Atomics | sem suporte | não testado | mudou |
| depthBounds | sem suporte | não testado | mudou |
| dualSrcBlend | sem suporte | não testado | mudou |
| fillModeNonSolid | sem suporte | não testado | mudou |
| logicOp | sem suporte | não testado | mudou |
| pipelineStatisticsQuery | sem suporte | não testado | mudou |
| shaderClipDistance | sem suporte | não testado | mudou |
| shaderCullDistance | sem suporte | não testado | mudou |
| shaderInt64 | sem suporte | não testado | mudou |
| shaderTessellationAndGeometryPointSize | sem suporte | não testado | mudou |
| variableMultisampleRate | sem suporte | não testado | mudou |
| vertexPipelineStoresAndAtomics | sem suporte | não testado | mudou |
| wideLines | 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 | 59.48 | 47.75 | 25% mais rápido | 3 de 3 vs 3 de 3 | ? vs ? | sem diferença grande sem diferença pequena |
| hdr_2160p | 137.38 | 116.34 | 18% mais rápido | 3 de 3 vs 3 de 3 | ? vs ? | sem diferença grande sem diferença pequena |
| oit_linked_lists | 30.37 | 31.15 | 2% mais lento | 3 de 3 vs 3 de 3 | ? vs ? | sem diferença grande sem diferença pequena |
| pipeline_barriers | 30.77 | 25.90 | 19% mais rápido | 3 de 3 vs 3 de 3 | ? vs ? | sem diferença grande difere em 1383 áreas pequenas |
| subpasses | 89.02 | 70.07 | 27% 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 (113)
- VK_ARM_scheduling_controls
- VK_ARM_shader_core_builtins
- VK_ARM_shader_core_properties
- VK_EXT_attachment_feedback_loop_dynamic_state
- VK_EXT_attachment_feedback_loop_layout
- VK_EXT_border_color_swizzle
- VK_EXT_buffer_device_address
- VK_EXT_color_write_enable
- VK_EXT_conditional_rendering
- VK_EXT_debug_marker
- 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_device_address_binding_report
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state
- VK_EXT_extended_dynamic_state2
- VK_EXT_extended_dynamic_state3
- VK_EXT_external_memory_acquire_unmodified
- VK_EXT_global_priority_query
- VK_EXT_graphics_pipeline_library
- VK_EXT_hdr_metadata
- VK_EXT_host_image_copy
- VK_EXT_image_2d_view_of_3d
- VK_EXT_image_compression_control
- VK_EXT_image_sliced_view_of_3d
- VK_EXT_image_view_min_lod
- VK_EXT_legacy_dithering
- VK_EXT_load_store_op_none
- VK_EXT_map_memory_placed
- VK_EXT_memory_budget
- VK_EXT_multisampled_render_to_single_sampled
- VK_EXT_mutable_descriptor_type
- VK_EXT_non_seamless_cube_map
- VK_EXT_physical_device_drm
- VK_EXT_pipeline_creation_cache_control
- VK_EXT_pipeline_creation_feedback
- VK_EXT_pipeline_robustness
- VK_EXT_present_timing
- VK_EXT_primitive_topology_list_restart
- VK_EXT_primitives_generated_query
- VK_EXT_private_data
- VK_EXT_robustness2
- VK_EXT_shader_atomic_float
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_shader_image_atomic_int64
- VK_EXT_shader_module_identifier
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_stencil_export
- VK_EXT_shader_tile_image
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_swapchain_maintenance1
- VK_EXT_texel_buffer_alignment
- VK_EXT_tooling_info
- VK_EXT_vertex_attribute_divisor
- VK_EXT_vertex_input_dynamic_state
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_decorate_string
- VK_GOOGLE_hlsl_functionality1
- VK_GOOGLE_user_type
- VK_KHR_calibrated_timestamps
- VK_KHR_compute_shader_derivatives
- VK_KHR_copy_commands2
- VK_KHR_depth_clamp_zero_one
- VK_KHR_draw_indirect_count
- 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_internally_synchronized_queues
- VK_KHR_line_rasterization
- VK_KHR_load_store_op_none
- VK_KHR_maintenance4
- VK_KHR_maintenance5
- VK_KHR_maintenance6
- VK_KHR_maintenance7
- VK_KHR_maintenance8
- VK_KHR_maintenance9
- VK_KHR_map_memory2
- VK_KHR_pipeline_binary
- 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_robustness2
- VK_KHR_shader_atomic_int64
- VK_KHR_shader_clock
- VK_KHR_shader_constant_data
- VK_KHR_shader_expect_assume
- VK_KHR_shader_float_controls2
- VK_KHR_shader_fma
- VK_KHR_shader_integer_dot_product
- VK_KHR_shader_maximal_reconvergence
- VK_KHR_shader_quad_control
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_subgroup_uniform_control_flow
- VK_KHR_shader_terminate_invocation
- VK_KHR_shader_untyped_pointers
- VK_KHR_swapchain_maintenance1
- VK_KHR_swapchain_mutable_format
- VK_KHR_synchronization2
- VK_KHR_unified_image_layouts
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_KHR_zero_initialize_workgroup_memory
- VK_VALVE_mutable_descriptor_type
Extensões só no Mali-G57 MC2 (3)
- VK_EXT_fragment_density_map
- VK_EXT_fragment_density_map2
- VK_KHR_shared_presentable_image
Recursos básicos que diferem (67)
| multiview | sem suporte a passou |
| samplerYcbcrConversion | sem suporte a passou |
| shaderDrawParameters | sem suporte a passou |
| storageBuffer16BitAccess | sem suporte a passou |
| storageInputOutput16 | sem suporte a passou |
| storagePushConstant16 | sem suporte a passou |
| uniformAndStorageBuffer16BitAccess | sem suporte a passou |
| variablePointers | sem suporte a passou |
| variablePointersStorageBuffer | sem suporte a passou |
| bufferDeviceAddress | sem suporte a passou |
| descriptorBindingPartiallyBound | sem suporte a passou |
| descriptorBindingSampledImageUpdateAfterBind | sem suporte a passou |
| descriptorBindingStorageBufferUpdateAfterBind | sem suporte a passou |
| descriptorBindingStorageImageUpdateAfterBind | sem suporte a passou |
| descriptorBindingStorageTexelBufferUpdateAfterBind | sem suporte a passou |
| descriptorBindingUniformBufferUpdateAfterBind | sem suporte a passou |
| descriptorBindingUniformTexelBufferUpdateAfterBind | sem suporte a passou |
| descriptorBindingUpdateUnusedWhilePending | sem suporte a passou |
| descriptorBindingVariableDescriptorCount | sem suporte a passou |
| descriptorIndexing | sem suporte a passou |
| drawIndirectCount | sem suporte a passou |
| hostQueryReset | sem suporte a passou |
| imagelessFramebuffer | sem suporte a passou |
| runtimeDescriptorArray | sem suporte a passou |
| samplerMirrorClampToEdge | sem suporte a passou |
| scalarBlockLayout | sem suporte a passou |
| separateDepthStencilLayouts | sem suporte a passou |
| shaderBufferInt64Atomics | sem suporte a passou |
| shaderFloat16 | sem suporte a passou |
| shaderInputAttachmentArrayDynamicIndexing | sem suporte a passou |
| shaderInputAttachmentArrayNonUniformIndexing | sem suporte a passou |
| shaderInt8 | sem suporte a passou |
| shaderOutputViewportIndex | sem suporte a passou |
| shaderSampledImageArrayNonUniformIndexing | sem suporte a passou |
| shaderSharedInt64Atomics | sem suporte a passou |
| shaderStorageBufferArrayNonUniformIndexing | sem suporte a passou |
| shaderStorageImageArrayNonUniformIndexing | sem suporte a passou |
| shaderStorageTexelBufferArrayDynamicIndexing | sem suporte a passou |
| shaderStorageTexelBufferArrayNonUniformIndexing | sem suporte a passou |
| shaderSubgroupExtendedTypes | sem suporte a passou |
| shaderUniformBufferArrayNonUniformIndexing | sem suporte a passou |
| shaderUniformTexelBufferArrayDynamicIndexing | sem suporte a passou |
| shaderUniformTexelBufferArrayNonUniformIndexing | sem suporte a passou |
| storageBuffer8BitAccess | sem suporte a passou |
| storagePushConstant8 | sem suporte a passou |
| subgroupBroadcastDynamicId | sem suporte a passou |
| timelineSemaphore | sem suporte a passou |
| uniformAndStorageBuffer8BitAccess | sem suporte a passou |
| uniformBufferStandardLayout | sem suporte a passou |
| vulkanMemoryModel | sem suporte a passou |
| vulkanMemoryModelAvailabilityVisibilityChains | sem suporte a passou |
| vulkanMemoryModelDeviceScope | sem suporte a passou |
| computeFullSubgroups | sem suporte a passou |
| descriptorBindingInlineUniformBlockUpdateAfterBind | sem suporte a passou |
| dynamicRendering | sem suporte a passou |
| inlineUniformBlock | sem suporte a passou |
| maintenance4 | sem suporte a passou |
| pipelineCreationCacheControl | sem suporte a passou |
| privateData | sem suporte a passou |
| robustImageAccess | sem suporte a passou |
| shaderDemoteToHelperInvocation | sem suporte a passou |
| shaderIntegerDotProduct | sem suporte a passou |
| shaderTerminateInvocation | sem suporte a passou |
| shaderZeroInitializeWorkgroupMemory | sem suporte a passou |
| subgroupSizeControl | sem suporte a passou |
| synchronization2 | sem suporte a passou |
| textureCompressionASTC_HDR | sem suporte a passou |
Limites que diferem (48)
| Limite | Sistema | Customizado |
|---|---|---|
| maxImageDimension1D | 16384 | 65536 |
| maxImageDimension2D | 16384 | 65536 |
| maxImageDimension3D | 16384 | 65536 |
| maxImageDimensionCube | 16384 | 65536 |
| maxImageArrayLayers | 4096 | 65536 |
| maxTexelBufferElements | 268435456 | 134217728 |
| maxUniformBufferRange | 65536 | 1048576 |
| maxStorageBufferRange | 268435456 | 4294967295 |
| bufferImageGranularity | 4096 | 64 |
| sparseAddressSpaceSize | 0 | 140737454800896 |
| maxBoundDescriptorSets | 4 | 7 |
| maxPerStageDescriptorSamplers | 500000 | 1048576 |
| maxPerStageDescriptorUniformBuffers | 36 | 1048576 |
| maxPerStageDescriptorStorageBuffers | 500000 | 1048576 |
| maxPerStageDescriptorSampledImages | 500000 | 1048576 |
| maxPerStageDescriptorStorageImages | 500000 | 1048576 |
| maxPerStageResources | 500000 | 5242889 |
| maxDescriptorSetSamplers | 500000 | 1048576 |
| maxDescriptorSetUniformBuffers | 216 | 1048576 |
| maxDescriptorSetUniformBuffersDynamic | 32 | 16 |
| maxDescriptorSetStorageBuffers | 500000 | 1048576 |
| maxDescriptorSetStorageBuffersDynamic | 32 | 8 |
| maxDescriptorSetSampledImages | 500000 | 1048576 |
| maxDescriptorSetStorageImages | 500000 | 1048576 |
| maxVertexInputAttributes | 32 | 16 |
| maxVertexInputBindings | 32 | 16 |
| maxVertexInputAttributeOffset | 2047 | 4294967295 |
| maxVertexInputBindingStride | 2048 | 65535 |
| maxGeometryShaderInvocations | 32 | 64 |
| maxGeometryInputComponents | 64 | 128 |
| maxGeometryOutputVertices | 256 | 1024 |
| maxFragmentDualSrcAttachments | 0 | 8 |
| maxFragmentCombinedOutputResources | 1000008 | 4360 |
| maxComputeWorkGroupCount | 4294967295, 4294967295, 4294967295 | 65535, 65535, 65535 |
| maxDrawIndirectCount | 1 | 65535 |
| maxSamplerLodBias | 255 | 127.996 |
| maxViewports | 1 | 16 |
| minMemoryMapAlignment | 64 | 4096 |
| minTexelBufferOffsetAlignment | 64 | 16 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| subPixelInterpolationOffsetBits | 4 | 8 |
| framebufferNoAttachmentsSampleCounts | 29 | 13 |
| maxClipDistances | 0 | 8 |
| maxCullDistances | 0 | 8 |
| maxCombinedClipAndCullDistances | 0 | 8 |
| pointSizeRange | 1, 1024 | 0.125, 4095.94 |
| lineWidthRange | 1, 1 | 0, 7.99219 |
| lineWidthGranularity | 0 | 0.0078125 |
Formatos suportados por só um driver (31 ganhos, 6 perdidos)
- A1B5G5R5_UNORM_PACK16
- A2R10G10B10_SNORM_PACK32
- A2R10G10B10_SSCALED_PACK32
- A2R10G10B10_USCALED_PACK32
- A8_UNORM
- B8G8R8A8_SSCALED
- B8G8R8A8_USCALED
- B8G8R8_SSCALED
- B8G8R8_USCALED
- 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
- R64_SINT
- R64_UINT
- B5G5R5A1_UNORM_PACK16
- B8G8R8G8_422_UNORM
- B8G8R8_SNORM
- G8B8G8R8_422_UNORM
- R4G4_UNORM_PACK8
- R5G5B5A1_UNORM_PACK16