PanVK-Kbase-Android-g615-v11-csf-v0.1.0-rc3-5a07217f vs Mali-G615 MC5
On Mali-G615 MC2 (AIPLUS AI+ Nova 2 Ultra, Anbernic RG477M, Anbernic RG557, HEADWOLF F8, Infinix GT 30, Infinix GT 30 Pro, Infinix NOTE 50X 5G, iQOO Z11x 5G, Lenovo Idea Tab Pro, motorola edge - 2026, motorola edge 50 neo, motorola edge 60 pro, OPPO CPH2859, Oppo F31 Pro 5G, POCO X6 Pro 5G, POCO X6 Pro 5G, POCO X7, realme P4x 5G, Redmi Note 14 Pro 5G, REDMI Note 15 Pro 5G, TECNO CAMON 40, TECNO POVA 8 Pro 5G, vivo V60 Lite 5G, Xiaomi 14T). The first driver named is compared against the second, which is the baseline.
StockMali-G615 MC5
vsCustomPanVK-Kbase-Android-g615-v11-csf-v0.1.0-rc3-5a07217f
Graphics system version (Vulkan)1.3.247 to 1.4.363
Optional features (extensions)118 to 188+81 -11
Features that pass their check (validated)54 to 4914 pass only on PanVK-Kbase-Android-g615-v11-csf-v0.1.0-rc3-5a07217f 19 pass only on Mali-G615 MC5
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
Mali-G615 MC5 details PanVK-Kbase-Android-g615-v11-csf-v0.1.0-rc3-5a07217f details
Feature checks that differ (58)
| Feature | Stock | Custom | Change |
|---|---|---|---|
| depthClamp | pass | untested | lost |
| largePoints | pass | untested | lost |
| compat.helper_loop_terminator | pass | untested | lost |
| compat.nested_map | pass | untested | lost |
| core.blend_advertised_formats | pass | untested | lost |
| core.compute_big_stack | pass | untested | lost |
| core.host_coherent_readback | pass | untested | lost |
| core.mrt_partial_kill | pass | untested | lost |
| core.ubo_update_buffer | pass | untested | lost |
| core.ubo_written_after_record | pass | untested | lost |
| core.varying_subset | pass | untested | lost |
| mem.image_padding | pass | untested | lost |
| perf.fb_local_barrier_large_draws | pass | untested | lost |
| perf.fb_local_barrier_overdraw | pass | untested | lost |
| stage.geometry_max_output | pass | untested | lost |
| stress.many_command_buffers_one_submit | pass | untested | lost |
| stress.scratch_per_batch | pass | untested | lost |
| stress.spill_helper_lanes | pass | untested | lost |
| sync.first_submit_clear_then_compute | pass | untested | lost |
| colorWriteEnable | unsupported | pass | gained |
| depthClipControl | unsupported | pass | gained |
| extendedDynamicState2LogicOp | unsupported | pass | gained |
| extendedDynamicState3ColorBlendEnable | unsupported | pass | gained |
| extendedDynamicState3ColorBlendEquation | unsupported | pass | gained |
| extendedDynamicState3ColorWriteMask | unsupported | pass | gained |
| extendedDynamicState3DepthClampEnable | unsupported | pass | gained |
| extendedDynamicState3LogicOpEnable | unsupported | pass | gained |
| robustBufferAccess2 | unsupported | pass | gained |
| robustImageAccess2 | unsupported | pass | gained |
| vertexInputDynamicState | unsupported | pass | gained |
| multiViewport | unsupported | pass | gained |
| textureCompressionBC | unsupported | pass | gained |
| push.max_uniform_buffers | unsupported | pass | gained |
| depthBiasControl | unsupported | untested | changed |
| depthBiasExact | unsupported | untested | changed |
| extendedDynamicState3AlphaToCoverageEnable | unsupported | untested | changed |
| extendedDynamicState3AlphaToOneEnable | unsupported | untested | changed |
| extendedDynamicState3ConservativeRasterizationMode | unsupported | untested | changed |
| extendedDynamicState3DepthClipEnable | unsupported | untested | changed |
| extendedDynamicState3LineRasterizationMode | unsupported | untested | changed |
| extendedDynamicState3RasterizationSamples | unsupported | untested | changed |
| extendedDynamicState3SampleMask | unsupported | untested | changed |
| nullDescriptor | unsupported | untested | changed |
| geometryStreams | unsupported | untested | changed |
| alphaToOne | unsupported | untested | changed |
| depthBounds | unsupported | untested | changed |
| dualSrcBlend | unsupported | untested | changed |
| fillModeNonSolid | unsupported | untested | changed |
| logicOp | unsupported | untested | changed |
| pipelineStatisticsQuery | unsupported | untested | changed |
| shaderClipDistance | unsupported | untested | changed |
| shaderCullDistance | unsupported | untested | changed |
| shaderTessellationAndGeometryPointSize | unsupported | untested | changed |
| variableMultisampleRate | unsupported | untested | changed |
| vertexPipelineStoresAndAtomics | unsupported | untested | changed |
| wideLines | unsupported | untested | changed |
| push.max_combined_image_samplers | unsupported | fail | changed |
| stage.geometry_point_size | unsupported | untested | changed |
Speed test scenes (benchmark)
Neither driver has a valid speed test (benchmark report) yet.
Technical differences (Vulkan)
Extensions only in PanVK-Kbase-Android-g615-v11-csf-v0.1.0-rc3-5a07217f (81)
- 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_conditional_rendering
- VK_EXT_debug_marker
- VK_EXT_depth_bias_control
- VK_EXT_depth_clamp_control
- VK_EXT_depth_clip_control
- VK_EXT_depth_clip_enable
- VK_EXT_dynamic_rendering_unused_attachments
- VK_EXT_extended_dynamic_state3
- VK_EXT_external_memory_acquire_unmodified
- VK_EXT_graphics_pipeline_library
- VK_EXT_hdr_metadata
- VK_EXT_host_image_copy
- VK_EXT_image_sliced_view_of_3d
- VK_EXT_image_view_min_lod
- VK_EXT_map_memory_placed
- VK_EXT_memory_budget
- VK_EXT_memory_priority
- VK_EXT_multi_draw
- VK_EXT_mutable_descriptor_type
- VK_EXT_nested_command_buffer
- VK_EXT_non_seamless_cube_map
- VK_EXT_pageable_device_local_memory
- VK_EXT_physical_device_drm
- VK_EXT_present_timing
- 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_vertex_input_dynamic_state
- VK_EXT_ycbcr_2plane_444_formats
- VK_EXT_ycbcr_image_arrays
- VK_EXT_zero_initialize_device_memory
- VK_GOOGLE_decorate_string
- VK_GOOGLE_hlsl_functionality1
- VK_GOOGLE_user_type
- VK_KHR_calibrated_timestamps
- VK_KHR_compute_shader_derivatives
- VK_KHR_cooperative_matrix
- VK_KHR_copy_memory_indirect
- 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_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_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_subgroup_uniform_control_flow
- VK_KHR_shader_untyped_pointers
- VK_KHR_swapchain_maintenance1
- VK_KHR_unified_image_layouts
- VK_KHR_vertex_attribute_divisor
- VK_KHR_workgroup_memory_explicit_layout
- VK_VALVE_mutable_descriptor_type
Extensions only in Mali-G615 MC5 (11)
- VK_EXT_device_fault
- VK_EXT_fragment_density_map
- VK_EXT_fragment_density_map2
- VK_EXT_image_compression_control_swapchain
- VK_EXT_pipeline_protected_access
- VK_EXT_subpass_merge_feedback
- VK_KHR_acceleration_structure
- VK_KHR_deferred_host_operations
- VK_KHR_fragment_shading_rate
- VK_KHR_ray_query
- VK_KHR_shared_presentable_image
Core features that differ (17)
| protectedMemory | 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 (51)
| Limit | Stock | Custom |
|---|---|---|
| maxImageDimension1D | 16384 | 65536 |
| maxImageDimension2D | 16384 | 65536 |
| maxImageDimension3D | 16384 | 65536 |
| maxImageDimensionCube | 16384 | 65536 |
| maxImageArrayLayers | 4096 | 65536 |
| maxTexelBufferElements | 268435456 | 134217728 |
| maxUniformBufferRange | 2147483648 | 1048576 |
| maxStorageBufferRange | 2147483648 | 4294967295 |
| maxMemoryAllocationCount | 16384 | 4294967295 |
| bufferImageGranularity | 1 | 64 |
| sparseAddressSpaceSize | 0 | 140737454800896 |
| maxPerStageDescriptorSamplers | 500000 | 1048576 |
| maxPerStageDescriptorUniformBuffers | 36 | 1048576 |
| maxPerStageDescriptorStorageBuffers | 500000 | 1048576 |
| maxPerStageDescriptorSampledImages | 500000 | 1048576 |
| maxPerStageDescriptorStorageImages | 500000 | 1048576 |
| maxPerStageResources | 500000 | 5242889 |
| maxDescriptorSetSamplers | 500000 | 1048576 |
| maxDescriptorSetUniformBuffers | 216 | 1048576 |
| maxDescriptorSetUniformBuffersDynamic | 32 | 16 |
| maxDescriptorSetStorageBuffers | 500000 | 1048576 |
| maxDescriptorSetStorageBuffersDynamic | 32 | 8 |
| maxDescriptorSetSampledImages | 500000 | 1048576 |
| maxDescriptorSetStorageImages | 500000 | 1048576 |
| maxVertexInputAttributes | 32 | 16 |
| maxVertexInputBindings | 32 | 16 |
| maxVertexInputAttributeOffset | 2047 | 4294967295 |
| maxVertexInputBindingStride | 2048 | 65535 |
| maxGeometryShaderInvocations | 32 | 64 |
| maxGeometryInputComponents | 128 | 64 |
| maxGeometryTotalOutputComponents | 2048 | 1024 |
| maxFragmentDualSrcAttachments | 0 | 8 |
| maxFragmentCombinedOutputResources | 1000008 | 4360 |
| maxComputeWorkGroupCount | 4294967295, 4294967295, 4294967295 | 65535, 65535, 65535 |
| maxSamplerLodBias | 126 | 127.996 |
| maxViewports | 1 | 16 |
| maxViewportDimensions | 16384, 16384 | 65536, 65536 |
| viewportBoundsRange | -32768, 32767 | -131072, 131071 |
| minMemoryMapAlignment | 64 | 4096 |
| minTexelBufferOffsetAlignment | 64 | 16 |
| minStorageBufferOffsetAlignment | 64 | 4 |
| maxInterpolationOffset | 0.4375 | 0.5 |
| subPixelInterpolationOffsetBits | 4 | 8 |
| maxFramebufferWidth | 16384 | 65536 |
| maxFramebufferHeight | 16384 | 65536 |
| 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 |
Formats supported by only one driver (23 gained, 7 lost)
- 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
- B5G5R5A1_UNORM_PACK16
- B8G8R8G8_422_UNORM
- B8G8R8_SNORM
- G8B8G8R8_422_UNORM
- G8_B8_R8_3PLANE_444_UNORM
- R4G4_UNORM_PACK8
- R5G5B5A1_UNORM_PACK16