FauxVkDB
English
Home / Mali-G52 / Compare

PanVK-Droid.0.3.5 vs panvk_faux123_v1.0.1

On Mali-G52 (CHUWI HiPad-Air, HONOR X5c, HONOR X5c, Infinix HOT 60i, Oppo A18, Oppo A38, realme RMX3710, Redmi 12, Redmi 12C, Redmi 14C, Redmi 15C, TECNO POVA 3, TECNO SPARK 20, Xiaomi 24049RN28L). The first driver named is compared against the second, which is the baseline.

Stockpanvk_faux123_v1.0.1PanVK-kbase RC3-lowmem (Mesa 26.3.0-devel (git-25739f2d26))
vs
CustomPanVK-Droid.0.3.5v1.r49p1-03bet0.19498e0ae1d5dac223383c39a2e58f04
Graphics system version (Vulkan)1.3.363 to 1.3.278
Optional features (extensions)159 to 131+18 -46
Features that pass their check (validated)40 to 346 pass only on PanVK-Droid.0.3.5 12 pass only on panvk_faux123_v1.0.1
Speed test scenes (benchmark)2 faster 2 slower3% slower overall (geometric mean)
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
  • compute_nbody8% faster
  • hdr_2160p16% slower
  • pipeline_barriers4% faster
  • subpasses5% slower

Custom driver against stock, per scene. Bars to the right are faster, to the left slower.

Small areas of the picture differ from the stock driver in 2 scenes (compute_nbody: 15 of 2304 cells, pipeline_barriers: 1243 of 2304 cells). The picture matches overall, so this is a local rendering fault, not a different scene.

panvk_faux123_v1.0.1 details PanVK-Droid.0.3.5 details

Feature checks that differ (30)

Featurepanvk_faux123_v1.0.1PanVK-Droid.0.3.5Change
colorWriteEnable
VK_EXT_color_write_enable
passunsupportedlost
depthClipControl
VK_EXT_depth_clip_control
passunsupportedlost
extendedDynamicState2LogicOp
VK_EXT_extended_dynamic_state2
passunsupportedlost
extendedDynamicState3ColorBlendEnable
VK_EXT_extended_dynamic_state3
passunsupportedlost
extendedDynamicState3ColorBlendEquation
VK_EXT_extended_dynamic_state3
passunsupportedlost
extendedDynamicState3ColorWriteMask
VK_EXT_extended_dynamic_state3
passunsupportedlost
extendedDynamicState3DepthClampEnable
VK_EXT_extended_dynamic_state3
passunsupportedlost
extendedDynamicState3LogicOpEnable
VK_EXT_extended_dynamic_state3
passunsupportedlost
textureCompressionBC
VkPhysicalDeviceFeatures
passunsupportedlost
compat.nested_map
core
passuntestedlost
push.max_combined_image_samplers
core
passunsupportedlost
push.max_uniform_buffers
core
passunsupportedlost
transformFeedback
VK_EXT_transform_feedback
unsupportedpassgained
shaderBufferInt64Atomics
VK_KHR_shader_atomic_int64
unsupportedpassgained
geometryShader
VkPhysicalDeviceFeatures
unsupportedpassgained
occlusionQueryPrecise
VkPhysicalDeviceFeatures
failpassgained
tessellationShader
VkPhysicalDeviceFeatures
unsupportedpassgained
limit.uniform_buffer_range
core
failpassgained
customBorderColorWithoutFormat
VK_EXT_custom_border_color
unsupporteduntestedchanged
depthBiasControl
VK_EXT_depth_bias_control
untestedunsupportedchanged
depthBiasExact
VK_EXT_depth_bias_control
untestedunsupportedchanged
extendedDynamicState2PatchControlPoints
VK_EXT_extended_dynamic_state2
unsupporteduntestedchanged
extendedDynamicState3AlphaToCoverageEnable
VK_EXT_extended_dynamic_state3
untestedunsupportedchanged
extendedDynamicState3DepthClipEnable
VK_EXT_extended_dynamic_state3
untestedunsupportedchanged
extendedDynamicState3ProvokingVertexMode
VK_EXT_extended_dynamic_state3
unsupporteduntestedchanged
extendedDynamicState3RasterizationSamples
VK_EXT_extended_dynamic_state3
untestedunsupportedchanged
extendedDynamicState3TessellationDomainOrigin
VK_EXT_extended_dynamic_state3
unsupporteduntestedchanged
shaderSharedInt64Atomics
VK_KHR_shader_atomic_int64
unsupporteduntestedchanged
depthClamp
VkPhysicalDeviceFeatures
untestedunsupportedchanged
compat.helper_loop_terminator
core
failuntestedchanged

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.

Scenepanvk_faux123_v1.0.1 msPanVK-Droid.0.3.5 msDifferenceStartsGPU clock, MHzPicture vs stock
compute_nbody87.61 typical 87.8780.79 typical 81.508% faster3 of 3 vs 3 of 3? vs ? clock unknownno large difference 0.1 differs in 15 small areas worst 6.3 64x36
hdr_2160p146.15 typical 145.46173.86 typical 173.1316% slower3 of 3 vs 3 of 3? vs ? clock unknownno large difference 0.0 no small difference worst 0.0 64x36
oit_linked_lists70.64n/aonly one side3 of 3 vs 3 of 3? vs ? clock unknownno large difference 0.0 no small difference worst 0.0 64x36
pipeline_barriers69.36 typical 70.5366.50 typical 67.664% faster3 of 3 vs 3 of 3? vs ? clock unknownno large difference 6.3 differs in 1243 small areas worst 56.0 64x36
subpasses121.39 typical 121.81127.93 typical 128.695% slower3 of 3 vs 3 of 3? vs ? clock unknownnot checked

Time to draw one frame, per scene: the average (mean) frame time of the scene's best round, which is how many frames the driver delivered; lower is faster. "Typical" beside it is the median frame, which can sit well under the average when a driver's frames come in two speeds. A pair of reports made before per-round averages were recorded is compared on the median. A scene whose rounds disagree by more than 15% is left out. A scene marked "paced" was held at that mean frame time by the driver or the display queue, together with at least one other scene of the same run; its time says how the frames were spaced, not how fast the driver rendered, so it is not compared. A scene marked "too light" took under 8 ms at the standard size (1920 by 1080) on both drivers, where the screen's frame queue spaces the frames more than the chip does; its heavier run is the one compared: the row ending in _2160p is the scene drawn at 3840 by 2160, and compute_nbody_2x is that scene with twice the particles. "Faster" and "slower" describe PanVK-Droid.0.3.5 against panvk_faux123_v1.0.1. "Picture vs stock" compares one fixed frame per scene as a coarse colour grid (0 is identical, above 40 is a different picture); it finds a scene that was not drawn. Where both reports carry the finer 64x36 grid, the second figure is how many of its 2,304 cells differ by more than 4 of 255, and "worst" is the largest single cell; this is what finds a small rendering error in a picture that otherwise matches. A row marked 16x9 comes from a report made before the finer grid existed. "Starts" is how many of a scene's process starts reached a measured round. A GPU clock marked "not comparable" differed by more than 5% of the device's maximum between the two timings.

Technical differences (Vulkan)

Extensions only in PanVK-Droid.0.3.5 (18)
  • VK_ANDROID_external_format_resolve
  • VK_ARM_rasterization_order_attachment_access
  • VK_EXT_device_fault
  • VK_EXT_frame_boundary
  • VK_EXT_image_compression_control_swapchain
  • VK_EXT_pipeline_protected_access
  • VK_EXT_primitives_generated_query
  • VK_EXT_rasterization_order_attachment_access
  • VK_EXT_rgba10x6_formats
  • VK_EXT_shader_image_atomic_int64
  • VK_EXT_shader_tile_image
  • VK_EXT_subpass_merge_feedback
  • VK_EXT_transform_feedback
  • VK_KHR_shader_atomic_int64
  • VK_KHR_shader_maximal_reconvergence
  • VK_KHR_shader_quad_control
  • VK_KHR_shader_subgroup_uniform_control_flow
  • VK_KHR_shared_presentable_image
Extensions only in panvk_faux123_v1.0.1 (46)
  • 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_clamp_zero_one
  • VK_EXT_depth_clip_control
  • VK_EXT_depth_clip_enable
  • 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_non_seamless_cube_map
  • VK_EXT_physical_device_drm
  • VK_EXT_present_timing
  • 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_KHR_internally_synchronized_queues
  • VK_KHR_maintenance7
  • VK_KHR_maintenance8
  • VK_KHR_maintenance9
  • 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_clock
  • VK_KHR_shader_constant_data
  • VK_KHR_shader_fma
  • VK_KHR_shader_relaxed_extended_instruction
  • VK_KHR_swapchain_maintenance1
  • VK_KHR_swapchain_mutable_format
  • VK_KHR_unified_image_layouts
  • VK_KHR_workgroup_memory_explicit_layout
Core features that differ (16)
descriptorBindingVariableDescriptorCount Vulkan 1.2pass to unsupported
runtimeDescriptorArray Vulkan 1.2pass to unsupported
shaderBufferInt64Atomics Vulkan 1.2unsupported to pass
shaderFloat16 Vulkan 1.2unsupported to pass
shaderInputAttachmentArrayDynamicIndexing Vulkan 1.2pass to unsupported
shaderInputAttachmentArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderOutputViewportIndex Vulkan 1.2unsupported to pass
shaderSampledImageArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderSharedInt64Atomics Vulkan 1.2unsupported to pass
shaderStorageBufferArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderStorageImageArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderStorageTexelBufferArrayDynamicIndexing Vulkan 1.2pass to unsupported
shaderStorageTexelBufferArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderUniformBufferArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderUniformTexelBufferArrayDynamicIndexing Vulkan 1.2pass to unsupported
shaderUniformTexelBufferArrayNonUniformIndexing Vulkan 1.2pass to unsupported
Limits that differ (53)
Limitpanvk_faux123_v1.0.1PanVK-Droid.0.3.5
maxImageDimension1D6553616384
maxImageDimension2D6553616384
maxImageDimension3D6553616384
maxImageDimensionCube6553616384
maxImageArrayLayers655364096
maxTexelBufferElements134217728268435456
maxUniformBufferRange104857665536
maxStorageBufferRange42949672952147483648
maxMemoryAllocationCount429496729516384
bufferImageGranularity641
sparseAddressSpaceSize171463147520
maxPerStageDescriptorUniformBuffers223241
maxPerStageDescriptorStorageBuffers6435
maxPerStageDescriptorStorageImages3221
maxPerStageResources712570
maxDescriptorSetSamplers65535768
maxDescriptorSetUniformBuffers2231446
maxDescriptorSetUniformBuffersDynamic1632
maxDescriptorSetStorageBuffers4096210
maxDescriptorSetStorageBuffersDynamic832
maxDescriptorSetSampledImages655351536
maxDescriptorSetStorageImages256126
maxVertexInputAttributes1632
maxVertexInputBindings1632
maxVertexInputAttributeOffset42949672952047
maxVertexInputBindingStride655352048
maxTessellationGenerationLevel064
maxTessellationPatchSize032
maxTessellationControlPerVertexInputComponents0128
maxTessellationControlPerVertexOutputComponents0128
maxTessellationControlPerPatchOutputComponents0120
maxTessellationControlTotalOutputComponents04096
maxTessellationEvaluationInputComponents0128
maxTessellationEvaluationOutputComponents0128
maxGeometryShaderInvocations032
maxGeometryInputComponents0128
maxGeometryOutputComponents0128
maxGeometryOutputVertices0256
maxGeometryTotalOutputComponents02048
maxFragmentCombinedOutputResources436064
maxComputeWorkGroupCount65535, 65535, 655354294967295, 4294967295, 4294967295
maxSamplerLodBias127.996126
minMemoryMapAlignment409664
minTexelBufferOffsetAlignment1664
minStorageBufferOffsetAlignment1664
maxInterpolationOffset0.50.4375
subPixelInterpolationOffsetBits84
framebufferNoAttachmentsSampleCounts529
timestampComputeAndGraphics01
timestampPeriod076.9231
pointSizeRange0.125, 4095.941, 1024
lineWidthRange0, 7.992191, 4095.94
lineWidthGranularity0.00781250.0625
Formats supported by only one driver (12 gained, 21 lost)

Only in PanVK-Droid.0.3.5:

  • 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
  • R64_SINT
  • R64_UINT

Only in panvk_faux123_v1.0.1:

  • A2R10G10B10_SNORM_PACK32
  • 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