FauxVkDB
English
Home / Mali-G52 MC2 / Compare

malisx2-0.2.3-b85d5f7f36 vs Panvk-Mali-G57-3.0

On Mali-G52 MC2 (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-Mali-G57-3.0FristOneRR 3.0 (Mesa 26.3.0-devel)
vs
Custommalisx2-0.2.3-b85d5f7f36v1.r44p1-malisx2.0.2.3.s22f19f5370b1
Graphics system version (Vulkan)1.3.354 to 1.1.363
Optional features (extensions)140 to 15+3 -128
Features that pass their check (validated)39 to 221 pass only on malisx2-0.2.3-b85d5f7f36 18 pass only on Panvk-Mali-G57-3.0
Speed test scenes (benchmark)2 faster 1 slower2% 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_nbody15% slower
  • oit_linked_lists5% faster
  • pipeline_barriers5% faster

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 1 scene (pipeline_barriers: 1824 of 2304 cells). The picture matches overall, so this is a local rendering fault, not a different scene.

Did not start every time: compute_nbody (stock 2 of 3, custom 3 of 3), hdr_2160p (stock 0 of 3, custom 0 of 3), subpasses (stock 3 of 3, custom 0 of 3).

Panvk-Mali-G57-3.0 details malisx2-0.2.3-b85d5f7f36 details

Feature checks that differ (35)

FeaturePanvk-Mali-G57-3.0malisx2-0.2.3-b85d5f7f36Change
borderColorSwizzle
VK_EXT_border_color_swizzle
passunsupportedlost
colorWriteEnable
VK_EXT_color_write_enable
passunsupportedlost
customBorderColors
VK_EXT_custom_border_color
passunsupportedlost
depthClipControl
VK_EXT_depth_clip_control
passunsupportedlost
extendedDynamicState
VK_EXT_extended_dynamic_state
passunsupportedlost
extendedDynamicState2
VK_EXT_extended_dynamic_state2
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
inlineUniformBlock
VK_EXT_inline_uniform_block
passunsupportedlost
vertexInputDynamicState
VK_EXT_vertex_input_dynamic_state
passunsupportedlost
timelineSemaphore
VK_KHR_timeline_semaphore
passunsupportedlost
drawIndirectFirstInstance
VkPhysicalDeviceFeatures
passunsupportedlost
textureCompressionBC
VkPhysicalDeviceFeatures
passunsupportedlost
core.msaa_resolve
core
passfaillost
limit.uniform_buffer_range
core
failpassgained
borderColorSwizzleFromImage
VK_EXT_border_color_swizzle
untestedunsupportedchanged
depthBiasControl
VK_EXT_depth_bias_control
untestedunsupportedchanged
depthBiasExact
VK_EXT_depth_bias_control
untestedunsupportedchanged
extendedDynamicState3AlphaToCoverageEnable
VK_EXT_extended_dynamic_state3
untestedunsupportedchanged
extendedDynamicState3DepthClipEnable
VK_EXT_extended_dynamic_state3
untestedunsupportedchanged
extendedDynamicState3LineRasterizationMode
VK_EXT_extended_dynamic_state3
untestedunsupportedchanged
extendedDynamicState3RasterizationSamples
VK_EXT_extended_dynamic_state3
untestedunsupportedchanged
extendedDynamicState3SampleMask
VK_EXT_extended_dynamic_state3
untestedunsupportedchanged
descriptorBindingInlineUniformBlockUpdateAfterBind
VK_EXT_inline_uniform_block
untestedunsupportedchanged
fillModeNonSolid
VkPhysicalDeviceFeatures
untestedunsupportedchanged
geometryShader
VkPhysicalDeviceFeatures
failunsupportedchanged
logicOp
VkPhysicalDeviceFeatures
untestedunsupportedchanged
multiViewport
VkPhysicalDeviceFeatures
untestedunsupportedchanged
shaderCullDistance
VkPhysicalDeviceFeatures
untestedunsupportedchanged
shaderInt64
VkPhysicalDeviceFeatures
untestedunsupportedchanged
wideLines
VkPhysicalDeviceFeatures
untestedunsupportedchanged

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-Mali-G57-3.0 msmalisx2-0.2.3-b85d5f7f36 msDifferenceStartsGPU clock, MHzPicture vs stock
compute_nbody87.85 typical 86.94103.07 typical 103.0715% slower2 of 3 vs 3 of 3? vs ? clock unknownno large difference 0.0 no small difference worst 0.0 64x36
hdr_2160p149.04 typical 148.57n/aonly one side0 of 3 vs 0 of 3? vs ? clock unknownnot checked
oit_linked_lists77.01 typical 78.5673.68 typical 73.075% faster3 of 3 vs 3 of 3? vs ? clock unknownno large difference 0.0 no small difference worst 0.0 64x36
pipeline_barriers91.08 typical 92.1086.77 typical 88.995% faster3 of 3 vs 3 of 3? vs ? clock unknownno large difference 11.1 differs in 1824 small areas worst 60.3 64x36
subpasses140.70 typical 139.35n/aonly one side3 of 3 vs 0 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 malisx2-0.2.3-b85d5f7f36 against Panvk-Mali-G57-3.0. "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 malisx2-0.2.3-b85d5f7f36 (3)
  • VK_ARM_rasterization_order_attachment_access
  • VK_EXT_device_fault
  • VK_EXT_rasterization_order_attachment_access
Extensions only in Panvk-Mali-G57-3.0 (128)
  • VK_ANDROID_external_memory_android_hardware_buffer
  • 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_external_memory_dma_buf
  • VK_EXT_external_memory_host
  • VK_EXT_global_priority
  • VK_EXT_global_priority_query
  • VK_EXT_hdr_metadata
  • VK_EXT_host_image_copy
  • VK_EXT_host_query_reset
  • VK_EXT_image_2d_view_of_3d
  • VK_EXT_image_drm_format_modifier
  • VK_EXT_image_robustness
  • VK_EXT_image_sliced_view_of_3d
  • VK_EXT_image_view_min_lod
  • VK_EXT_index_type_uint8
  • VK_EXT_inline_uniform_block
  • VK_EXT_legacy_dithering
  • VK_EXT_load_store_op_none
  • 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_queue_family_foreign
  • VK_EXT_scalar_block_layout
  • VK_EXT_separate_stencil_usage
  • 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_subgroup_ballot
  • VK_EXT_shader_subgroup_vote
  • VK_EXT_shader_uniform_buffer_unsized_array
  • VK_EXT_subgroup_size_control
  • VK_EXT_texel_buffer_alignment
  • VK_EXT_texture_compression_astc_hdr
  • 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_KHR_16bit_storage
  • VK_KHR_8bit_storage
  • VK_KHR_bind_memory2
  • VK_KHR_buffer_device_address
  • VK_KHR_calibrated_timestamps
  • VK_KHR_copy_commands2
  • VK_KHR_create_renderpass2
  • VK_KHR_dedicated_allocation
  • VK_KHR_depth_stencil_resolve
  • VK_KHR_descriptor_update_template
  • VK_KHR_device_group
  • VK_KHR_dynamic_rendering
  • VK_KHR_dynamic_rendering_local_read
  • VK_KHR_external_fence
  • VK_KHR_external_memory
  • VK_KHR_external_memory_fd
  • VK_KHR_external_semaphore
  • VK_KHR_format_feature_flags2
  • VK_KHR_get_memory_requirements2
  • VK_KHR_global_priority
  • VK_KHR_image_format_list
  • VK_KHR_imageless_framebuffer
  • VK_KHR_index_type_uint8
  • VK_KHR_load_store_op_none
  • VK_KHR_maintenance1
  • VK_KHR_maintenance2
  • VK_KHR_maintenance3
  • VK_KHR_maintenance4
  • VK_KHR_maintenance5
  • VK_KHR_maintenance6
  • VK_KHR_map_memory2
  • VK_KHR_multiview
  • VK_KHR_pipeline_executable_properties
  • VK_KHR_pipeline_library
  • VK_KHR_relaxed_block_layout
  • VK_KHR_sampler_mirror_clamp_to_edge
  • VK_KHR_sampler_ycbcr_conversion
  • VK_KHR_separate_depth_stencil_layouts
  • VK_KHR_shader_clock
  • VK_KHR_shader_draw_parameters
  • VK_KHR_shader_expect_assume
  • VK_KHR_shader_float16_int8
  • VK_KHR_shader_float_controls
  • VK_KHR_shader_float_controls2
  • VK_KHR_shader_integer_dot_product
  • VK_KHR_shader_non_semantic_info
  • VK_KHR_shader_subgroup_extended_types
  • VK_KHR_shader_subgroup_rotate
  • VK_KHR_shader_terminate_invocation
  • VK_KHR_spirv_1_4
  • VK_KHR_storage_buffer_storage_class
  • VK_KHR_synchronization2
  • VK_KHR_timeline_semaphore
  • VK_KHR_uniform_buffer_standard_layout
  • VK_KHR_variable_pointers
  • VK_KHR_vertex_attribute_divisor
  • VK_KHR_vulkan_memory_model
  • VK_KHR_workgroup_memory_explicit_layout
  • VK_KHR_zero_initialize_workgroup_memory
Core features that differ (53)
multiview Vulkan 1.1pass to unsupported
samplerYcbcrConversion Vulkan 1.1pass to unsupported
shaderDrawParameters Vulkan 1.1pass to unsupported
storageBuffer16BitAccess Vulkan 1.1pass to unsupported
storageInputOutput16 Vulkan 1.1pass to unsupported
storagePushConstant16 Vulkan 1.1pass to unsupported
uniformAndStorageBuffer16BitAccess Vulkan 1.1pass to unsupported
variablePointers Vulkan 1.1pass to unsupported
variablePointersStorageBuffer Vulkan 1.1pass to unsupported
bufferDeviceAddress Vulkan 1.2pass to unsupported
descriptorBindingVariableDescriptorCount Vulkan 1.2pass to unsupported
hostQueryReset Vulkan 1.2pass to unsupported
imagelessFramebuffer Vulkan 1.2pass to unsupported
runtimeDescriptorArray Vulkan 1.2pass to unsupported
samplerMirrorClampToEdge Vulkan 1.2pass to unsupported
scalarBlockLayout Vulkan 1.2pass to unsupported
separateDepthStencilLayouts Vulkan 1.2pass to unsupported
shaderInputAttachmentArrayDynamicIndexing Vulkan 1.2pass to unsupported
shaderInputAttachmentArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderInt8 Vulkan 1.2pass to unsupported
shaderSampledImageArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderStorageBufferArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderStorageImageArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderStorageTexelBufferArrayDynamicIndexing Vulkan 1.2pass to unsupported
shaderStorageTexelBufferArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderSubgroupExtendedTypes Vulkan 1.2pass to unsupported
shaderUniformBufferArrayNonUniformIndexing Vulkan 1.2pass to unsupported
shaderUniformTexelBufferArrayDynamicIndexing Vulkan 1.2pass to unsupported
shaderUniformTexelBufferArrayNonUniformIndexing Vulkan 1.2pass to unsupported
storageBuffer8BitAccess Vulkan 1.2pass to unsupported
storagePushConstant8 Vulkan 1.2pass to unsupported
subgroupBroadcastDynamicId Vulkan 1.2pass to unsupported
timelineSemaphore Vulkan 1.2pass to unsupported
uniformAndStorageBuffer8BitAccess Vulkan 1.2pass to unsupported
uniformBufferStandardLayout Vulkan 1.2pass to unsupported
vulkanMemoryModel Vulkan 1.2pass to unsupported
vulkanMemoryModelAvailabilityVisibilityChains Vulkan 1.2pass to unsupported
vulkanMemoryModelDeviceScope Vulkan 1.2pass to unsupported
computeFullSubgroups Vulkan 1.3pass to unsupported
descriptorBindingInlineUniformBlockUpdateAfterBind Vulkan 1.3pass to unsupported
dynamicRendering Vulkan 1.3pass to unsupported
inlineUniformBlock Vulkan 1.3pass to unsupported
maintenance4 Vulkan 1.3pass to unsupported
pipelineCreationCacheControl Vulkan 1.3pass to unsupported
privateData Vulkan 1.3pass to unsupported
robustImageAccess Vulkan 1.3pass to unsupported
shaderDemoteToHelperInvocation Vulkan 1.3pass to unsupported
shaderIntegerDotProduct Vulkan 1.3pass to unsupported
shaderTerminateInvocation Vulkan 1.3pass to unsupported
shaderZeroInitializeWorkgroupMemory Vulkan 1.3pass to unsupported
subgroupSizeControl Vulkan 1.3pass to unsupported
synchronization2 Vulkan 1.3pass to unsupported
textureCompressionASTC_HDR Vulkan 1.3pass to unsupported
Limits that differ (35)
LimitPanvk-Mali-G57-3.0malisx2-0.2.3-b85d5f7f36
maxImageDimension1D6553616384
maxImageDimension2D6553616384
maxImageDimension3D6553616384
maxImageDimensionCube6553616384
maxImageArrayLayers655364096
maxTexelBufferElements134217728268435456
maxUniformBufferRange104857665536
maxStorageBufferRange42949672952147483648
maxMemoryAllocationCount429496729516384
maxSamplerAllocationCount42949672954000
bufferImageGranularity641
maxBoundDescriptorSets47
maxPerStageDescriptorSampledImages256208
maxPerStageResources712664
maxFragmentDualSrcAttachments81
maxSamplerLodBias127.996126
minMemoryMapAlignment409664
minTexelBufferOffsetAlignment1664
minStorageBufferOffsetAlignment1664
subPixelInterpolationOffsetBits84
framebufferColorSampleCounts529
framebufferDepthSampleCounts529
framebufferStencilSampleCounts529
framebufferNoAttachmentsSampleCounts529
sampledImageColorSampleCounts529
sampledImageIntegerSampleCounts529
sampledImageDepthSampleCounts529
sampledImageStencilSampleCounts529
timestampComputeAndGraphics01
timestampPeriod076.9231
maxClipDistances08
maxCombinedClipAndCullDistances08
pointSizeRange0.125, 4095.941, 1024
lineWidthRange0, 7.992191, 1
lineWidthGranularity0.00781250
Formats supported by only one driver (2 gained, 34 lost)

Only in malisx2-0.2.3-b85d5f7f36:

  • R10X6G10X6_UNORM_2PACK16
  • R10X6_UNORM_PACK16

Only in Panvk-Mali-G57-3.0:

  • A1B5G5R5_UNORM_PACK16
  • A4B4G4R4_UNORM_PACK16
  • A4R4G4B4_UNORM_PACK16
  • A8_UNORM
  • ASTC_10x10_SFLOAT_BLOCK
  • ASTC_10x5_SFLOAT_BLOCK
  • ASTC_10x6_SFLOAT_BLOCK
  • ASTC_10x8_SFLOAT_BLOCK
  • ASTC_12x10_SFLOAT_BLOCK
  • ASTC_12x12_SFLOAT_BLOCK
  • ASTC_4x4_SFLOAT_BLOCK
  • ASTC_5x4_SFLOAT_BLOCK
  • ASTC_5x5_SFLOAT_BLOCK
  • ASTC_6x5_SFLOAT_BLOCK
  • ASTC_6x6_SFLOAT_BLOCK
  • ASTC_8x5_SFLOAT_BLOCK
  • ASTC_8x6_SFLOAT_BLOCK
  • ASTC_8x8_SFLOAT_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_420_UNORM
  • G8_B8R8_2PLANE_422_UNORM
  • G8_B8R8_2PLANE_444_UNORM
  • G8_B8_R8_3PLANE_420_UNORM
  • G8_B8_R8_3PLANE_422_UNORM