Panvk-Mali-G57-2.0-rc1 vs panvk_faux123_rg556_v0.13.0
On Mali-G57 (Anbernic RG556, Redmi A5, TECNO KL4). The first driver named is compared against the second, which is the baseline.
Stockpanvk_faux123_rg556_v0.13.0
vsCustomPanvk-Mali-G57-2.0-rc1
Graphics system version (Vulkan)1.3.354 to 1.3.278
Optional features (extensions)166 to 120+13 -59
Features that pass their check (validated)49 to 370 pass only on Panvk-Mali-G57-2.0-rc1 12 pass only on panvk_faux123_rg556_v0.13.0
Speed test scenes (benchmark)no shared scenes
Games each driver could run (an estimate from its feature list): green likely, yellow maybe, orange limited, red no
StockDX92002+DX102006+DX112009+DX122015+Switch
CustomDX92002+DX102006+DX112009+DX122015+Switch
panvk_faux123_rg556_v0.13.0 details Panvk-Mali-G57-2.0-rc1 details
Feature checks that differ (28)
| Feature | panvk_faux123_rg556_v0.13.0 | Panvk-Mali-G57-2.0-rc1 | Change |
|---|---|---|---|
| colorWriteEnable | pass | unsupported | lost |
| depthClipControl | pass | unsupported | lost |
| extendedDynamicState2LogicOp | pass | unsupported | lost |
| extendedDynamicState3ColorBlendEnable | pass | unsupported | lost |
| extendedDynamicState3ColorBlendEquation | pass | unsupported | lost |
| extendedDynamicState3ColorWriteMask | pass | unsupported | lost |
| extendedDynamicState3LogicOpEnable | pass | unsupported | lost |
| robustBufferAccess2 | pass | unsupported | lost |
| multiDrawIndirect | pass | unsupported | lost |
| multiViewport | pass | unsupported | lost |
| textureCompressionBC | pass | unsupported | lost |
| stress.multi_draw_indirect_large | pass | unsupported | lost |
| depthBiasControl | untested | unsupported | changed |
| depthBiasExact | untested | unsupported | changed |
| extendedDynamicState2PatchControlPoints | unsupported | untested | changed |
| extendedDynamicState3AlphaToCoverageEnable | untested | unsupported | changed |
| extendedDynamicState3ProvokingVertexMode | unsupported | untested | changed |
| extendedDynamicState3RasterizationSamples | untested | unsupported | changed |
| extendedDynamicState3TessellationDomainOrigin | unsupported | untested | changed |
| nullDescriptor | untested | unsupported | changed |
| geometryStreams | untested | unsupported | changed |
| fillModeNonSolid | untested | unsupported | changed |
| pipelineStatisticsQuery | untested | unsupported | changed |
| shaderClipDistance | untested | unsupported | changed |
| shaderCullDistance | untested | unsupported | changed |
| shaderTessellationAndGeometryPointSize | untested | unsupported | changed |
| variableMultisampleRate | untested | unsupported | changed |
| vertexPipelineStoresAndAtomics | 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_faux123_rg556_v0.13.0 ms | Panvk-Mali-G57-2.0-rc1 ms | Difference | Starts | GPU clock, MHz | Picture vs stock |
|---|---|---|---|---|---|---|
| compute_nbody | 30.51 | n/a | only one side | 3 of 3 vs ? | ? vs ? | not checked |
| oit_linked_lists | 154.71 | n/a | only one side | 3 of 3 vs ? | ? vs ? | not checked |
| pipeline_barriers | 34.75 | n/a | only one side | 3 of 3 vs ? | ? vs ? | not checked |
| subpasses | 55.02 | n/a | only one side | 3 of 3 vs ? | ? vs ? | not checked |
Technical differences (Vulkan)
Extensions only in Panvk-Mali-G57-2.0-rc1 (13)
- VK_ARM_rasterization_order_attachment_access
- VK_EXT_device_fault
- VK_EXT_fragment_density_map
- VK_EXT_fragment_density_map2
- VK_EXT_frame_boundary
- VK_EXT_image_compression_control
- VK_EXT_pipeline_protected_access
- VK_EXT_primitives_generated_query
- VK_EXT_rasterization_order_attachment_access
- VK_EXT_rgba10x6_formats
- VK_EXT_subpass_merge_feedback
- VK_EXT_swapchain_maintenance1
- VK_KHR_shared_presentable_image
Extensions only in panvk_faux123_rg556_v0.13.0 (59)
- VK_ARM_scheduling_controls
- VK_EXT_attachment_feedback_loop_dynamic_state
- VK_EXT_attachment_feedback_loop_layout
- VK_EXT_buffer_device_address
- VK_EXT_color_write_enable
- VK_EXT_depth_bias_control
- VK_EXT_depth_clamp_control
- VK_EXT_depth_clip_control
- VK_EXT_graphics_pipeline_library
- VK_EXT_hdr_metadata
- VK_EXT_host_image_copy
- VK_EXT_image_view_min_lod
- VK_EXT_map_memory_placed
- VK_EXT_memory_budget
- VK_EXT_mutable_descriptor_type
- VK_EXT_non_seamless_cube_map
- VK_EXT_physical_device_drm
- VK_EXT_robustness2
- VK_EXT_shader_atomic_float
- VK_EXT_shader_module_identifier
- VK_EXT_shader_replicated_composites
- VK_EXT_shader_stencil_export
- VK_EXT_shader_uniform_buffer_unsized_array
- VK_EXT_vertex_attribute_divisor
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_hlsl_functionality1
- VK_GOOGLE_user_type
- VK_KHR_calibrated_timestamps
- VK_KHR_compute_shader_derivatives
- VK_KHR_depth_clamp_zero_one
- VK_KHR_draw_indirect_count
- VK_KHR_dynamic_rendering_local_read
- VK_KHR_index_type_uint8
- VK_KHR_internally_synchronized_queues
- VK_KHR_line_rasterization
- VK_KHR_load_store_op_none
- 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_robustness2
- VK_KHR_shader_clock
- 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_untyped_pointers
- VK_KHR_unified_image_layouts
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_VALVE_mutable_descriptor_type
Core features that differ (3)
| drawIndirectCount | pass to unsupported |
| shaderFloat16 | unsupported to pass |
| shaderOutputViewportIndex | unsupported to pass |
Limits that differ (48)
| Limit | panvk_faux123_rg556_v0.13.0 | Panvk-Mali-G57-2.0-rc1 |
|---|---|---|
| maxImageDimension1D | 65536 | 16384 |
| maxImageDimension2D | 65536 | 16384 |
| maxImageDimension3D | 65536 | 16384 |
| maxImageDimensionCube | 65536 | 16384 |
| maxImageArrayLayers | 65536 | 4096 |
| maxTexelBufferElements | 134217728 | 268435456 |
| maxUniformBufferRange | 1048576 | 2147483648 |
| maxStorageBufferRange | 4294967295 | 2147483648 |
| maxMemoryAllocationCount | 4294967295 | 16384 |
| bufferImageGranularity | 64 | 1 |
| maxPerStageDescriptorSamplers | 1048576 | 500000 |
| maxPerStageDescriptorUniformBuffers | 1048576 | 500000 |
| maxPerStageDescriptorStorageBuffers | 1048576 | 500000 |
| maxPerStageDescriptorSampledImages | 1048576 | 500000 |
| maxPerStageDescriptorStorageImages | 1048576 | 500000 |
| maxPerStageResources | 5242889 | 500000 |
| maxDescriptorSetSamplers | 1048576 | 500000 |
| maxDescriptorSetUniformBuffers | 1048576 | 500000 |
| maxDescriptorSetUniformBuffersDynamic | 16 | 32 |
| maxDescriptorSetStorageBuffers | 1048576 | 500000 |
| maxDescriptorSetStorageBuffersDynamic | 8 | 32 |
| maxDescriptorSetSampledImages | 1048576 | 500000 |
| maxDescriptorSetStorageImages | 1048576 | 500000 |
| maxVertexInputAttributes | 16 | 32 |
| maxVertexInputBindings | 16 | 32 |
| maxVertexInputAttributeOffset | 4294967295 | 2047 |
| maxVertexInputBindingStride | 65535 | 2048 |
| maxGeometryOutputVertices | 1024 | 256 |
| maxGeometryTotalOutputComponents | 1024 | 2048 |
| maxFragmentCombinedOutputResources | 4360 | 1000008 |
| maxComputeWorkGroupCount | 65535, 65535, 65535 | 4294967295, 4294967295, 4294967295 |
| maxDrawIndirectCount | 65535 | 1 |
| maxSamplerLodBias | 127.996 | 126 |
| maxViewports | 16 | 1 |
| minMemoryMapAlignment | 4096 | 64 |
| minTexelBufferOffsetAlignment | 16 | 64 |
| minStorageBufferOffsetAlignment | 16 | 64 |
| maxInterpolationOffset | 0.5 | 0.4375 |
| subPixelInterpolationOffsetBits | 8 | 4 |
| framebufferNoAttachmentsSampleCounts | 13 | 29 |
| timestampComputeAndGraphics | 0 | 1 |
| timestampPeriod | 0 | 38.4615 |
| maxClipDistances | 8 | 0 |
| maxCullDistances | 8 | 0 |
| maxCombinedClipAndCullDistances | 8 | 0 |
| pointSizeRange | 0.125, 4095.94 | 1, 1024 |
| lineWidthRange | 0, 7.99219 | 1, 4095.94 |
| lineWidthGranularity | 0.0078125 | 0.0625 |
Formats supported by only one driver (10 gained, 23 lost)
- B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
- B5G5R5A1_UNORM_PACK16
- B8G8R8G8_422_UNORM
- B8G8R8_SNORM
- G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
- G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16
- G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16
- G8B8G8R8_422_UNORM
- R4G4_UNORM_PACK8
- R5G5B5A1_UNORM_PACK16
- 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