panvk_faux123_ace_v0.36.0 vs Mali-G610 MC6
Na Mali-G610 (GameForce Ace, Infinix GT 20 Pro, Nothing Phone (2a) Plus, Xiaomi 13T). O primeiro driver citado é comparado com o segundo, que é a referência.
SistemaMali-G610 MC6
vsCustomizadopanvk_faux123_ace_v0.36.0
Versão do sistema gráfico (Vulkan)1.1.219 a 1.4.363
Recursos opcionais (extensões)93 a 185+97 -5
Recursos que passam na verificação (validados)32 a 5018 passaram só no panvk_faux123_ace_v0.36.0 0 passaram só no Mali-G610 MC6
Cenas do teste de velocidade (benchmark)sem cenas em comum
Jogos que cada driver poderia rodar (uma estimativa a partir da lista de recursos): verde provável, amarelo talvez, laranja limitado, vermelho não
SistemaDX92002+DX102006+DX112009+DX122015+Switch
CustomizadoDX92002+DX102006+DX112009+DX122015+Switch
Detalhes do Mali-G610 MC6 Detalhes do panvk_faux123_ace_v0.36.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 | falhou | 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 |
| 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 |
| 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 |
| extendedDynamicState3AlphaToOneEnable | 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 |
| alphaToOne | 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 | n/a | 19.00 | só um lado | ? vs 3 de 3 | ? vs 883 | não verificado |
| hdr_2160p | n/a | 57.63 | só um lado | ? vs ? | ? vs ? | não verificado |
| oit_linked_lists | n/a | 19.72 | só um lado | ? vs 3 de 3 | ? vs 1000 | não verificado |
| pipeline_barriers | n/a | 10.20 | só um lado | ? vs 3 de 3 | ? vs 1000 | não verificado |
| subpasses | n/a | 19.31 | só um lado | ? vs 3 de 3 | ? vs 900 | não verificado |
Diferenças técnicas (Vulkan)
Extensões só no panvk_faux123_ace_v0.36.0 (97)
- 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_state3
- VK_EXT_external_memory_acquire_unmodified
- 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_map_memory_placed
- VK_EXT_memory_budget
- VK_EXT_memory_priority
- VK_EXT_multi_draw
- VK_EXT_mutable_descriptor_type
- VK_EXT_nested_command_buffer
- VK_EXT_non_seamless_cube_map
- VK_EXT_pageable_device_local_memory
- VK_EXT_physical_device_drm
- VK_EXT_pipeline_robustness
- VK_EXT_present_timing
- VK_EXT_rasterization_order_attachment_access
- VK_EXT_robustness2
- VK_EXT_shader_atomic_float
- 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_vertex_attribute_divisor
- VK_EXT_vertex_input_dynamic_state
- VK_EXT_ycbcr_2plane_444_formats
- VK_EXT_ycbcr_image_arrays
- 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_memory_indirect
- 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_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_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_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_untyped_pointers
- VK_KHR_swapchain_maintenance1
- VK_KHR_swapchain_mutable_format
- VK_KHR_unified_image_layouts
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_VALVE_mutable_descriptor_type
Extensões só no Mali-G610 MC6 (5)
- VK_EXT_fragment_density_map
- VK_EXT_fragment_density_map2
- VK_EXT_rgba10x6_formats
- VK_EXT_subpass_merge_feedback
- VK_KHR_shared_presentable_image
Recursos básicos que diferem (86)
| 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 |
| bufferDeviceAddressCaptureReplay | 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 |
| samplerFilterMinmax | 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 |
| shaderOutputLayer | 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 |
| 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 (47)
| Limite | Sistema | Customizado |
|---|---|---|
| maxImageDimension1D | 32768 | 65536 |
| maxImageDimension2D | 32768 | 65536 |
| maxImageDimension3D | 32768 | 65536 |
| maxImageDimensionCube | 32768 | 65536 |
| maxImageArrayLayers | 4096 | 65536 |
| maxTexelBufferElements | 268435456 | 134217728 |
| maxUniformBufferRange | 65536 | 1048576 |
| maxStorageBufferRange | 268435456 | 4294967295 |
| maxMemoryAllocationCount | 16384 | 4294967295 |
| bufferImageGranularity | 1 | 64 |
| sparseAddressSpaceSize | 0 | 140737454800896 |
| 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 | 128 | 64 |
| maxGeometryTotalOutputComponents | 2048 | 1024 |
| maxFragmentDualSrcAttachments | 0 | 8 |
| maxFragmentCombinedOutputResources | 1000008 | 4360 |
| maxComputeWorkGroupCount | 4294967295, 4294967295, 4294967295 | 65535, 65535, 65535 |
| maxSamplerLodBias | 255 | 127.996 |
| maxViewports | 1 | 16 |
| minMemoryMapAlignment | 64 | 4096 |
| minTexelBufferOffsetAlignment | 64 | 16 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| subPixelInterpolationOffsetBits | 4 | 8 |
| timestampPeriod | 76.9231 | 41.6667 |
| 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 (25 ganhos, 6 perdidos)
- A1B5G5R5_UNORM_PACK16
- A2R10G10B10_SNORM_PACK32
- A8_UNORM
- 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