panvk_faux123_rp4pro_v0.14.0 vs Mali-G77 MC9
Na Mali-G77 (Infinix GT 10 Pro, Redmi K40 Gaming, Redmi Note 10 Pro, Retroid Pocket 4 Pro, Samsung Galaxy Note20 Ultra, Samsung Galaxy S20 Ultra 5G). O primeiro driver citado é comparado com o segundo, que é a referência.
- compute_nbody37% mais rápido
- hdr_2160p2% mais lento
- oit_linked_lists3% mais lento
- pipeline_barriers17% mais lento
- subpasses4% mais rápido
Pequenas áreas da imagem diferem do driver do sistema em 1 cena (pipeline_barriers: 1246 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: oit_linked_lists (do sistema 0 de 3, customizado 3 de 3).
Condições diferentes: o clock da GPU foi diferente em 1 dessas cenas (por exemplo compute_nbody: do sistema a 620 MHz, customizado a 829 MHz). Parte da diferença de frametime vem do clock que o aparelho escolheu, não do driver.
Detalhes do Mali-G77 MC9 Detalhes do panvk_faux123_rp4pro_v0.14.0
Verificações de recursos que diferem (43)
| 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 |
| vertexInputDynamicState | sem suporte | passou | ganhos |
| shaderBufferInt64Atomics | sem suporte | passou | ganhos |
| timelineSemaphore | falhou | passou | ganhos |
| multiDrawIndirect | sem suporte | passou | ganhos |
| multiViewport | sem suporte | passou | ganhos |
| textureCompressionBC | sem suporte | passou | ganhos |
| push.max_combined_image_samplers | sem suporte | passou | ganhos |
| push.max_uniform_buffers | sem suporte | passou | ganhos |
| stress.multi_draw_indirect_large | sem suporte | passou | ganhos |
| borderColorSwizzleFromImage | sem suporte | não testado | mudou |
| depthBiasControl | sem suporte | não testado | mudou |
| depthBiasExact | 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 |
| 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 | 22.12 | 16.18 | 37% mais rápido | 3 de 3 vs 3 de 3 | 620 vs 829 não comparável | sem diferença grande sem diferença pequena |
| hdr_2160p | 41.42 | 42.12 | 2% mais lento | ? vs ? | ? vs ? | não verificado |
| oit_linked_lists | 23.59 | 24.28 | 3% mais lento | 0 de 3 vs 3 de 3 | ? vs 836 | não verificado |
| pipeline_barriers | 8.83 | 10.67 | 17% mais lento | 3 de 3 vs 3 de 3 | 802 vs 836 | sem diferença grande difere em 1246 áreas pequenas |
| subpasses | 20.23 | 19.48 | 4% mais rápido | 3 de 3 vs 3 de 3 | 836 vs 836 | não verificado |
Diferenças técnicas (Vulkan)
Extensões só no panvk_faux123_rp4pro_v0.14.0 (101)
- 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_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_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_primitive_topology_list_restart
- 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_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_push_descriptor
- VK_KHR_robustness2
- VK_KHR_shader_atomic_int64
- VK_KHR_shader_clock
- 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_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-G77 MC9 (3)
- VK_EXT_fragment_density_map
- VK_EXT_fragment_density_map2
- VK_KHR_shared_presentable_image
Recursos básicos que diferem (65)
| 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 |
| shaderInputAttachmentArrayDynamicIndexing | sem suporte a passou |
| shaderInputAttachmentArrayNonUniformIndexing | sem suporte a passou |
| shaderInt8 | 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 |
| 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 |
| 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 | 16 |
| subPixelInterpolationOffsetBits | 4 | 8 |
| framebufferNoAttachmentsSampleCounts | 29 | 13 |
| timestampComputeAndGraphics | 1 | 0 |
| timestampPeriod | 76.9231 | 0 |
| 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