mali-panvk-27.0.0-devel-r9 vs panvk-g76-kirin990-1.2.6
On 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). The first driver named is compared against the second, which is the baseline.
- compute_nbody11% slower
- hdr_2160p10% faster
- oit_linked_lists55% faster
- pipeline_barriers12% slower
- subpasses4% slower
Picture does not match the stock driver in 1 scene (hdr_2160p). The custom driver drew something else there, so its frame time for that scene is not a fair number.
Small areas of the picture differ from the stock driver in 1 scene (pipeline_barriers: 2025 of 2304 cells). The picture matches overall, so this is a local rendering fault, not a different scene.
panvk-g76-kirin990-1.2.6 details mali-panvk-27.0.0-devel-r9 details
Feature checks that differ (10)
| Feature | panvk-g76-kirin990-1.2.6 | mali-panvk-27.0.0-devel-r9 | Change |
|---|---|---|---|
| shaderBufferInt64Atomics | pass | unsupported | lost |
| push.max_combined_image_samplers | pass | fail | lost |
| stage.geometry_point_size | pass | unsupported | lost |
| stress.submit_memory | inconclusive | pass | gained |
| customBorderColorWithoutFormat | untested | unsupported | changed |
| extendedDynamicState2PatchControlPoints | untested | unsupported | changed |
| shaderSharedInt64Atomics | untested | unsupported | changed |
| depthBounds | untested | unsupported | changed |
| shaderTessellationAndGeometryPointSize | untested | unsupported | changed |
| variableMultisampleRate | untested | unsupported | changed |
Speed test scenes (benchmark)
The two drivers were not measured on the same set of device models. Frame times from different devices do not compare drivers, so read these numbers with that in mind.
| Scene | panvk-g76-kirin990-1.2.6 ms | mali-panvk-27.0.0-devel-r9 ms | Difference | Starts | GPU clock, MHz | Picture vs stock |
|---|---|---|---|---|---|---|
| compute_nbody | 78.77 | 88.37 | 11% slower | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| hdr_2160p | 160.64 | 145.97 | 10% faster | 3 of 3 vs 3 of 3 | ? vs ? | differs differs in 2269 small areas |
| oit_linked_lists | 108.08 | 69.61 | 55% faster | 3 of 3 vs 3 of 3 | ? vs ? | no large difference no small difference |
| pipeline_barriers | 65.42 | 74.56 | 12% slower | 3 of 3 vs 3 of 3 | ? vs ? | no large difference differs in 2025 small areas |
| subpasses | 116.50 | 121.03 | 4% slower | 3 of 3 vs 3 of 3 | ? vs ? | not checked |
Technical differences (Vulkan)
Extensions only in mali-panvk-27.0.0-devel-r9 (7)
- VK_EXT_multisampled_render_to_single_sampled
- VK_INTEL_shader_integer_functions2
- VK_KHR_depth_clamp_zero_one
- VK_KHR_maintenance10
- VK_KHR_maintenance11
- VK_KHR_pipeline_binary
- VK_KHR_robustness2
Extensions only in panvk-g76-kirin990-1.2.6 (14)
- VK_ARM_rasterization_order_attachment_access
- VK_EXT_conditional_rendering
- VK_EXT_descriptor_indexing
- VK_EXT_mutable_descriptor_type
- VK_EXT_present_timing
- VK_EXT_rasterization_order_attachment_access
- VK_KHR_present_id
- VK_KHR_present_id2
- VK_KHR_present_wait
- VK_KHR_present_wait2
- VK_KHR_shader_atomic_int64
- VK_KHR_swapchain_maintenance1
- VK_KHR_swapchain_mutable_format
- VK_VALVE_mutable_descriptor_type
Core features that differ (28)
| descriptorBindingPartiallyBound | pass to unsupported |
| descriptorBindingSampledImageUpdateAfterBind | pass to unsupported |
| descriptorBindingStorageBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingStorageImageUpdateAfterBind | pass to unsupported |
| descriptorBindingStorageTexelBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingUniformBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingUniformTexelBufferUpdateAfterBind | pass to unsupported |
| descriptorBindingUpdateUnusedWhilePending | pass to unsupported |
| descriptorIndexing | pass to unsupported |
| shaderBufferInt64Atomics | pass to unsupported |
| shaderOutputViewportIndex | pass to unsupported |
| shaderSharedInt64Atomics | pass to unsupported |
| bresenhamLines | unsupported to pass |
| dynamicRenderingLocalRead | unsupported to pass |
| globalPriorityQuery | unsupported to pass |
| hostImageCopy | unsupported to pass |
| indexTypeUint8 | unsupported to pass |
| maintenance5 | unsupported to pass |
| maintenance6 | unsupported to pass |
| pipelineRobustness | unsupported to pass |
| pushDescriptor | unsupported to pass |
| rectangularLines | unsupported to pass |
| shaderExpectAssume | unsupported to pass |
| shaderFloatControls2 | unsupported to pass |
| shaderSubgroupRotate | unsupported to pass |
| shaderSubgroupRotateClustered | unsupported to pass |
| vertexAttributeInstanceRateDivisor | unsupported to pass |
| vertexAttributeInstanceRateZeroDivisor | unsupported to pass |
Limits that differ (9)
| Limit | panvk-g76-kirin990-1.2.6 | mali-panvk-27.0.0-devel-r9 |
|---|---|---|
| sparseAddressSpaceSize | 17146314752 | 30064771072 |
| maxTessellationControlPerVertexInputComponents | 128 | 64 |
| maxTessellationControlPerVertexOutputComponents | 128 | 64 |
| maxTessellationControlTotalOutputComponents | 4096 | 2048 |
| maxTessellationEvaluationInputComponents | 128 | 64 |
| maxTessellationEvaluationOutputComponents | 128 | 64 |
| maxFragmentDualSrcAttachments | 1 | 8 |
| maxDrawIndirectCount | 65535 | 4294967295 |
| timestampPeriod | 38.4615 | 76.9231 |
Formats supported by only one driver (8 gained, 0 lost)
- 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
- R10X6G10X6_UNORM_2PACK16
- R10X6_UNORM_PACK16
- None