mali-panvk-27.0.0-devel-r9 vs. Mali-G52
Auf Mali-G52 (CHUWI HiPad-Air, HONOR X5c, HONOR X5c, Infinix HOT 60i, Oppo A18, Oppo A38, realme RMX3710, Redmi 12, Redmi 12, Redmi 12C, Redmi 14C, Redmi 15C, Redmi A3 Pro, Samsung Galaxy A32, Samsung Galaxy Tab A8, TECNO POVA 3, TECNO SPARK 10 Pro, TECNO SPARK 20, Vivo Y03, Xiaomi 24040RN64Y, Xiaomi 24049RN28L). Der zuerst genannte Treiber wird mit dem zweiten verglichen, der die Referenz ist.
- compute_nbody28% langsamer
- hdr_2160p11% schneller
- oit_linked_lists1% langsamer
- pipeline_barriers40% langsamer
- subpasses18% langsamer
Das Bild stimmt nicht mit dem System-Treiber überein in 1 Szene (hdr_2160p). Der Custom-Treiber hat dort etwas anderes gezeichnet, deshalb ist seine Frametime für diese Szene kein fairer Wert.
Kleine Bildbereiche weichen vom System-Treiber ab in 2 Szenen (compute_nbody: 15 von 2304 Zellen, pipeline_barriers: 1943 von 2304 Zellen). Das Bild stimmt insgesamt überein, es ist also ein lokaler Darstellungsfehler und keine andere Szene.
Mali-G52: Details mali-panvk-27.0.0-devel-r9: Details
Feature-Checks mit Unterschieden (47)
| Feature | System | Custom | Änderung |
|---|---|---|---|
| compat.nested_map | bestanden | fehlgeschlagen | verloren |
| limit.uniform_buffer_range | bestanden | fehlgeschlagen | verloren |
| stress.scratch_per_batch | bestanden | nicht unterstützt | verloren |
| borderColorSwizzle | nicht unterstützt | bestanden | dazugekommen |
| colorWriteEnable | nicht unterstützt | bestanden | dazugekommen |
| customBorderColors | nicht unterstützt | bestanden | dazugekommen |
| depthClipControl | nicht unterstützt | bestanden | dazugekommen |
| extendedDynamicState | nicht unterstützt | bestanden | dazugekommen |
| extendedDynamicState2 | nicht unterstützt | bestanden | dazugekommen |
| extendedDynamicState2LogicOp | nicht unterstützt | bestanden | dazugekommen |
| extendedDynamicState3ColorBlendEnable | nicht unterstützt | bestanden | dazugekommen |
| extendedDynamicState3ColorBlendEquation | nicht unterstützt | bestanden | dazugekommen |
| extendedDynamicState3ColorWriteMask | nicht unterstützt | bestanden | dazugekommen |
| extendedDynamicState3DepthClampEnable | nicht unterstützt | bestanden | dazugekommen |
| extendedDynamicState3LogicOpEnable | nicht unterstützt | bestanden | dazugekommen |
| robustBufferAccess2 | nicht unterstützt | bestanden | dazugekommen |
| robustImageAccess2 | nicht unterstützt | bestanden | dazugekommen |
| vertexInputDynamicState | nicht unterstützt | bestanden | dazugekommen |
| timelineSemaphore | Crash | bestanden | dazugekommen |
| depthClamp | nicht unterstützt | bestanden | dazugekommen |
| multiDrawIndirect | nicht unterstützt | bestanden | dazugekommen |
| multiViewport | nicht unterstützt | bestanden | dazugekommen |
| textureCompressionBC | nicht unterstützt | bestanden | dazugekommen |
| push.max_uniform_buffers | nicht unterstützt | bestanden | dazugekommen |
| stress.multi_draw_indirect_large | nicht unterstützt | bestanden | dazugekommen |
| stress.submit_memory | ohne Ergebnis | bestanden | dazugekommen |
| borderColorSwizzleFromImage | nicht unterstützt | nicht getestet | geändert |
| depthBiasControl | nicht unterstützt | nicht getestet | geändert |
| depthBiasExact | nicht unterstützt | nicht getestet | geändert |
| extendedDynamicState3AlphaToCoverageEnable | nicht unterstützt | nicht getestet | geändert |
| extendedDynamicState3DepthClipEnable | nicht unterstützt | nicht getestet | geändert |
| extendedDynamicState3LineRasterizationMode | nicht unterstützt | nicht getestet | geändert |
| extendedDynamicState3RasterizationSamples | nicht unterstützt | nicht getestet | geändert |
| extendedDynamicState3SampleMask | nicht unterstützt | nicht getestet | geändert |
| descriptorBindingInlineUniformBlockUpdateAfterBind | nicht unterstützt | nicht getestet | geändert |
| nullDescriptor | nicht unterstützt | nicht getestet | geändert |
| geometryStreams | nicht unterstützt | nicht getestet | geändert |
| dualSrcBlend | nicht unterstützt | nicht getestet | geändert |
| fillModeNonSolid | nicht unterstützt | nicht getestet | geändert |
| logicOp | nicht unterstützt | nicht getestet | geändert |
| pipelineStatisticsQuery | nicht unterstützt | nicht getestet | geändert |
| shaderClipDistance | nicht unterstützt | nicht getestet | geändert |
| shaderCullDistance | nicht unterstützt | nicht getestet | geändert |
| shaderInt64 | nicht unterstützt | nicht getestet | geändert |
| vertexPipelineStoresAndAtomics | nicht unterstützt | nicht getestet | geändert |
| wideLines | nicht unterstützt | nicht getestet | geändert |
| push.max_combined_image_samplers | nicht unterstützt | fehlgeschlagen | geändert |
Benchmark-Szenen
Die beiden Treiber wurden nicht auf denselben Gerätemodellen gemessen. Frametimes von verschiedenen Geräten vergleichen keine Treiber, lies diese Werte also mit Vorsicht.
| Szene | System ms | Custom ms | Unterschied | Starts | GPU-Takt, MHz | Bild vs. System-Treiber |
|---|---|---|---|---|---|---|
| compute_nbody | 63.71 | 88.37 | 28% langsamer | 3 von 3 vs. 3 von 3 | ? vs. ? | kein großer Unterschied weicht in 15 kleinen Bereichen ab |
| hdr_2160p | 161.31 | 145.97 | 11% schneller | 3 von 3 vs. 3 von 3 | ? vs. ? | weicht ab weicht in 2269 kleinen Bereichen ab |
| oit_linked_lists | 69.17 | 69.61 | 1% langsamer | 3 von 3 vs. 3 von 3 | ? vs. ? | kein großer Unterschied kein kleiner Unterschied |
| pipeline_barriers | 44.75 | 74.56 | 40% langsamer | 3 von 3 vs. 3 von 3 | ? vs. ? | kein großer Unterschied weicht in 1943 kleinen Bereichen ab |
| subpasses | 99.20 | 121.03 | 18% langsamer | 3 von 3 vs. 3 von 3 | ? vs. ? | nicht geprüft |
Technische Unterschiede (Vulkan)
Extensions nur in mali-panvk-27.0.0-devel-r9 (103)
- VK_ARM_scheduling_controls
- VK_ARM_shader_core_builtins
- VK_ARM_shader_core_properties
- VK_EXT_4444_formats
- 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_calibrated_timestamps
- VK_EXT_color_write_enable
- VK_EXT_custom_border_color
- 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_device_memory_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_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_provoking_vertex
- VK_EXT_robustness2
- VK_EXT_shader_atomic_float
- VK_EXT_shader_demote_to_helper_invocation
- VK_EXT_shader_module_identifier
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_stencil_export
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_subgroup_size_control
- 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_INTEL_shader_integer_functions2
- VK_KHR_calibrated_timestamps
- VK_KHR_copy_commands2
- VK_KHR_depth_clamp_zero_one
- 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_maintenance10
- VK_KHR_maintenance11
- 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_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_non_semantic_info
- VK_KHR_shader_relaxed_extended_instruction
- VK_KHR_shader_subgroup_rotate
- VK_KHR_shader_terminate_invocation
- 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
Extensions nur in Mali-G52 (1)
- VK_KHR_shared_presentable_image
Kern-Features mit Unterschieden (69)
| multiview | nicht unterstützt → bestanden |
| samplerYcbcrConversion | nicht unterstützt → bestanden |
| shaderDrawParameters | nicht unterstützt → bestanden |
| storageBuffer16BitAccess | nicht unterstützt → bestanden |
| storageInputOutput16 | nicht unterstützt → bestanden |
| storagePushConstant16 | nicht unterstützt → bestanden |
| uniformAndStorageBuffer16BitAccess | nicht unterstützt → bestanden |
| variablePointers | nicht unterstützt → bestanden |
| variablePointersStorageBuffer | nicht unterstützt → bestanden |
| bufferDeviceAddress | nicht unterstützt → bestanden |
| descriptorBindingVariableDescriptorCount | nicht unterstützt → bestanden |
| hostQueryReset | nicht unterstützt → bestanden |
| imagelessFramebuffer | nicht unterstützt → bestanden |
| runtimeDescriptorArray | nicht unterstützt → bestanden |
| samplerMirrorClampToEdge | nicht unterstützt → bestanden |
| scalarBlockLayout | nicht unterstützt → bestanden |
| separateDepthStencilLayouts | nicht unterstützt → bestanden |
| shaderInputAttachmentArrayDynamicIndexing | nicht unterstützt → bestanden |
| shaderInputAttachmentArrayNonUniformIndexing | nicht unterstützt → bestanden |
| shaderInt8 | nicht unterstützt → bestanden |
| shaderSampledImageArrayNonUniformIndexing | nicht unterstützt → bestanden |
| shaderStorageBufferArrayNonUniformIndexing | nicht unterstützt → bestanden |
| shaderStorageImageArrayNonUniformIndexing | nicht unterstützt → bestanden |
| shaderStorageTexelBufferArrayDynamicIndexing | nicht unterstützt → bestanden |
| shaderStorageTexelBufferArrayNonUniformIndexing | nicht unterstützt → bestanden |
| shaderSubgroupExtendedTypes | nicht unterstützt → bestanden |
| shaderUniformBufferArrayNonUniformIndexing | nicht unterstützt → bestanden |
| shaderUniformTexelBufferArrayDynamicIndexing | nicht unterstützt → bestanden |
| shaderUniformTexelBufferArrayNonUniformIndexing | nicht unterstützt → bestanden |
| storageBuffer8BitAccess | nicht unterstützt → bestanden |
| storagePushConstant8 | nicht unterstützt → bestanden |
| subgroupBroadcastDynamicId | nicht unterstützt → bestanden |
| timelineSemaphore | nicht unterstützt → bestanden |
| uniformAndStorageBuffer8BitAccess | nicht unterstützt → bestanden |
| uniformBufferStandardLayout | nicht unterstützt → bestanden |
| vulkanMemoryModel | nicht unterstützt → bestanden |
| vulkanMemoryModelAvailabilityVisibilityChains | nicht unterstützt → bestanden |
| vulkanMemoryModelDeviceScope | nicht unterstützt → bestanden |
| computeFullSubgroups | nicht unterstützt → bestanden |
| descriptorBindingInlineUniformBlockUpdateAfterBind | nicht unterstützt → bestanden |
| dynamicRendering | nicht unterstützt → bestanden |
| inlineUniformBlock | nicht unterstützt → bestanden |
| maintenance4 | nicht unterstützt → bestanden |
| pipelineCreationCacheControl | nicht unterstützt → bestanden |
| privateData | nicht unterstützt → bestanden |
| robustImageAccess | nicht unterstützt → bestanden |
| shaderDemoteToHelperInvocation | nicht unterstützt → bestanden |
| shaderIntegerDotProduct | nicht unterstützt → bestanden |
| shaderTerminateInvocation | nicht unterstützt → bestanden |
| shaderZeroInitializeWorkgroupMemory | nicht unterstützt → bestanden |
| subgroupSizeControl | nicht unterstützt → bestanden |
| synchronization2 | nicht unterstützt → bestanden |
| textureCompressionASTC_HDR | nicht unterstützt → bestanden |
| bresenhamLines | nicht unterstützt → bestanden |
| dynamicRenderingLocalRead | nicht unterstützt → bestanden |
| globalPriorityQuery | nicht unterstützt → bestanden |
| hostImageCopy | nicht unterstützt → bestanden |
| indexTypeUint8 | nicht unterstützt → bestanden |
| maintenance5 | nicht unterstützt → bestanden |
| maintenance6 | nicht unterstützt → bestanden |
| pipelineRobustness | nicht unterstützt → bestanden |
| pushDescriptor | nicht unterstützt → bestanden |
| rectangularLines | nicht unterstützt → bestanden |
| shaderExpectAssume | nicht unterstützt → bestanden |
| shaderFloatControls2 | nicht unterstützt → bestanden |
| shaderSubgroupRotate | nicht unterstützt → bestanden |
| shaderSubgroupRotateClustered | nicht unterstützt → bestanden |
| vertexAttributeInstanceRateDivisor | nicht unterstützt → bestanden |
| vertexAttributeInstanceRateZeroDivisor | nicht unterstützt → bestanden |
Limits mit Unterschieden (54)
| Limit | System | Custom |
|---|---|---|
| maxImageDimension1D | 16384 | 65536 |
| maxImageDimension2D | 16383 | 65536 |
| maxImageDimension3D | 16383 | 65536 |
| maxImageDimensionCube | 16383 | 65536 |
| maxImageArrayLayers | 1024 | 65536 |
| maxTexelBufferElements | 65536 | 134217728 |
| maxUniformBufferRange | 65536 | 1048576 |
| maxStorageBufferRange | 268435456 | 4294967295 |
| bufferImageGranularity | 4096 | 64 |
| sparseAddressSpaceSize | 0 | 30064771072 |
| maxBoundDescriptorSets | 4 | 7 |
| maxPerStageDescriptorUniformBuffers | 36 | 223 |
| maxPerStageDescriptorStorageBuffers | 35 | 64 |
| maxPerStageDescriptorStorageImages | 21 | 32 |
| maxPerStageResources | 365 | 712 |
| maxDescriptorSetSamplers | 768 | 65535 |
| maxDescriptorSetUniformBuffers | 216 | 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 |
| maxTessellationControlPerVertexInputComponents | 128 | 64 |
| maxTessellationControlPerVertexOutputComponents | 128 | 64 |
| maxTessellationControlTotalOutputComponents | 4096 | 2048 |
| maxTessellationEvaluationInputComponents | 128 | 64 |
| maxTessellationEvaluationOutputComponents | 128 | 64 |
| maxFragmentDualSrcAttachments | 0 | 8 |
| maxFragmentCombinedOutputResources | 64 | 4360 |
| maxComputeWorkGroupCount | 4294967295, 4294967295, 4294967295 | 65535, 65535, 65535 |
| maxDrawIndirectCount | 1 | 4294967295 |
| maxSamplerLodBias | 255 | 127.996 |
| maxViewports | 1 | 16 |
| maxViewportDimensions | 16383, 16383 | 16384, 16384 |
| viewportBoundsRange | -32766, 32765 | -32768, 32767 |
| minMemoryMapAlignment | 64 | 4096 |
| minTexelBufferOffsetAlignment | 64 | 16 |
| minStorageBufferOffsetAlignment | 64 | 16 |
| subPixelInterpolationOffsetBits | 4 | 8 |
| maxFramebufferWidth | 16383 | 16384 |
| maxFramebufferHeight | 16383 | 16384 |
| framebufferNoAttachmentsSampleCounts | 29 | 5 |
| timestampComputeAndGraphics | 0 | 1 |
| timestampPeriod | 0 | 76.9231 |
| 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 |
Formate, die nur ein Treiber unterstützt (39 dazugekommen, 6 verloren)
- A1B5G5R5_UNORM_PACK16
- A2R10G10B10_SNORM_PACK32
- A2R10G10B10_SSCALED_PACK32
- A2R10G10B10_USCALED_PACK32
- A4B4G4R4_UNORM_PACK16
- A4R4G4B4_UNORM_PACK16
- 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
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16
- G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16
- G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16
- G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16
- G16_B16R16_2PLANE_420_UNORM
- G16_B16R16_2PLANE_422_UNORM
- G16_B16R16_2PLANE_444_UNORM
- G8_B8R8_2PLANE_444_UNORM
- R10X6G10X6_UNORM_2PACK16
- R10X6_UNORM_PACK16
- B5G5R5A1_UNORM_PACK16
- B8G8R8G8_422_UNORM
- B8G8R8_SNORM
- G8B8G8R8_422_UNORM
- R4G4_UNORM_PACK8
- R5G5B5A1_UNORM_PACK16