Report #122 validation
Attested, locked device invalid
GPU Mali-G52 r1 MC2 Driver PanVk-V7-0.0.2-alpha Mesa 26.3.0-devel (git-605a86c288) Device Redmi 15C Chip MT6769
CPU 6 x 1.70 GHz + 2 x 2.00 GHz, arm64-v8a Memory 7.5 GB
Reported as Xiaomi / 25078RA3EA Received 2026-10-10 14:19 UTC
Android 16
Library SHA-256 09baabe3e8f1fe818e01308e9208d8302999db8d9d05d3afa4f2801e3fe7d40d
not valid The baseline draw did not pass on this driver, so the feature verdicts in this report cannot be trusted. The baseline failure is itself a driver finding.
Raw JSON
Harness checks (1)
fail harness.baseline_draw
Check Pixel Expected Got Match
drawn half 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
Core checks (21)
fail core.readback_same_command_buffer
Check Pixel Expected Got Match
drawn half 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail push.max_combined_image_samplers
Check Pixel Expected Got Match
combined image samplers pushed in one set (the driver's stated limit) , 32 pass bytes changed in memory next to the driver's allocations , 4600 fail
fail core.resubmit_command_buffer
Check Pixel Expected Got Match
first submit: drawn half 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail second submit of the same command buffer: drawn half 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail second submit of the same command buffer: cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail core.compute_udiv
Check Pixel Expected Got Match
703787787 / 47721859 , [14] [0] fail 703787787 % 47721859 , [35681761] [0] fail 4294967295 / 2147483649 , [1] [0] fail 4294967295 % 2147483649 , [2147483646] [0] fail 4294967295 / 3 , [1431655765] [0] fail 4294967295 % 3 , [0] [0] pass 4000000000 / 3 , [1333333333] [0] fail 4000000000 % 3 , [1] [0] fail 2147483648 / 65537 , [32767] [0] fail 2147483648 % 65537 , [32769] [0] fail 2147483647 / 46341 , [46340] [0] fail 2147483647 % 46341 , [41707] [0] fail 1000000007 / 31607 , [31638] [0] fail 1000000007 % 31607 , [17741] [0] fail 16777217 / 4097 , [4095] [0] fail 16777217 % 4097 , [2] [0] fail 16777216 / 4096 , [4096] [0] fail 16777216 % 4096 , [0] [0] pass 4294967295 / 4294967295 , [1] [0] fail 4294967295 % 4294967295 , [0] [0] pass 3000000000 / 1500000001 , [1] [0] fail 3000000000 % 1500000001 , [1499999999] [0] fail 123456789 / 10007 , [12337] [0] fail 123456789 % 10007 , [430] [0] fail 4294967294 / 2 , [2147483647] [0] fail 4294967294 % 2 , [0] [0] pass 65536 / 65537 , [0] [0] pass 65536 % 65537 , [65536] [0] fail 99999999 / 4294967295 , [0] [0] pass 99999999 % 4294967295 , [99999999] [0] fail 1 / 1 , [1] [0] fail 1 % 1 , [0] [0] pass
fail core.texel_fetch_beside_ubo
Check Pixel Expected Got Match
left half: texel (1, 0) 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail right half: texel (0, 1) 48,32 [0, 0, 255, 255] [0, 0, 0, 0] fail
fail push.max_uniform_buffers
Check Pixel Expected Got Match
uniform buffers pushed in one set (the driver's stated limit) , 32 pass bytes changed in memory next to the driver's allocations , 0 pass drawn half: element 5 of the pushed buffer 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail limit.uniform_buffer_range
Check Pixel Expected Got Match
bytes in one uniform buffer binding (the driver's stated limit) , 1048576 pass bytes changed in memory next to the driver's allocations , 0 pass drawn half: element 127 of the block 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail limit.dynamic_uniform_buffers
Check Pixel Expected Got Match
dynamic uniform buffers in one set, bound with as many offsets (the driver's stated limit) , 16 pass bytes changed in memory next to the driver's allocations , 0 pass drawn half: the block the dynamic offset selects 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail stress.multi_draw_indirect_large
Check Pixel Expected Got Match
draws in one vkCmdDrawIndirect call (the driver's stated limit) , 1 pass drawn half 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail stress.compute_after_render
Check Pixel Expected Got Match
wrong answers in 3200 divisions over 200 rounds , [0] [3200] fail the last render pass: drawn half 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail
fail stress.submit_memory
Check Pixel Expected Got Match
KiB of memory gained over 4000 submits (limit 16384) , 0 pass the last submit: drawn half 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail
fail core.copy_wide_row_length
Check Pixel Expected Got Match
first copied row (the last green row) 16,0 [0, 255, 0, 255] [127, 127, 127, 127] fail second copied row, 4,210,688 bytes later (the first black row) 16,1 [0, 0, 0, 255] [127, 127, 127, 127] fail
fail core.mediump_mul_extended
Check Pixel Expected Got Match
low half of 255 * 3 , [765] [3735928559] fail low half of 242 * 19 , [4598] [3735928559] fail low half of 229 * 35 , [8015] [3735928559] fail low half of 216 * 51 , [11016] [3735928559] fail low half of 203 * 67 , [13601] [3735928559] fail low half of 190 * 83 , [15770] [3735928559] fail low half of 177 * 99 , [17523] [3735928559] fail low half of 164 * 115 , [18860] [3735928559] fail low half of 151 * 131 , [19781] [3735928559] fail low half of 138 * 147 , [20286] [3735928559] fail low half of 125 * 163 , [20375] [3735928559] fail low half of 112 * 179 , [20048] [3735928559] fail low half of 99 * 195 , [19305] [3735928559] fail low half of 86 * 211 , [18146] [3735928559] fail low half of 73 * 227 , [16571] [3735928559] fail low half of 60 * 243 , [14580] [3735928559] fail high half of the first product , [0] [3735928559] fail
fail core.msaa_resolve
Check Pixel Expected Got Match
resolved image: drawn half 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail resolved image: cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail limit.color_attachments
Check Pixel Expected Got Match
colour attachments in one render pass (the driver's stated limit) , 8 pass bytes changed in memory next to the driver's allocations , 0 pass first attachment: drawn half 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail first attachment: cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail limit.vertex_input
Check Pixel Expected Got Match
vertex buffer bindings in one pipeline, bound in one call (the driver's stated limit) , 16 pass vertex attributes in one pipeline (the driver's stated limit) , 16 pass bytes changed in memory next to the driver's allocations , 0 pass drawn half 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail limit.push_constants_size
Check Pixel Expected Got Match
push constant bytes pushed in one call (the driver's stated limit) , 256 pass bytes changed in memory next to the driver's allocations , 0 pass drawn half: the colour in the first 16 bytes 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail limit.per_stage_samplers
Check Pixel Expected Got Match
combined image samplers in one descriptor set, bound and drawn with (the driver's stated limit) , 128 pass bytes changed in memory next to the driver's allocations , 0 pass drawn half: the texture in element 0 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail limit.bound_descriptor_sets
Check Pixel Expected Got Match
descriptor sets bound in one call (the driver's stated limit) , 4 pass bytes changed in memory next to the driver's allocations , 0 pass drawn half: the texture in set 0 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail stress.pipeline_cache_threads
Check Pixel Expected Got Match
every vkCreateGraphicsPipelines call returned VK_SUCCESS , 0 pass pipelines asked for in 8 seconds, at least one from each thread , 1024 pass pipelines built, the same number , 1024 pass every save made while compiling returned VK_SUCCESS or VK_INCOMPLETE , 0 pass saves made while compiling , 63 pass bytes a save reported beyond the buffer size it was given , 0 pass bytes a save wrote past the end of the buffer it was given , 0 pass final save size in bytes holds a header , 1718304 pass header names this device , 32 pass drawn half, after every pipeline drew it 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
fail stress.pipeline_threads_no_cache
Check Pixel Expected Got Match
every vkCreateGraphicsPipelines call returned VK_SUCCESS , 0 pass pipelines asked for in 8 seconds, at least one from each thread , 1024 pass pipelines built, the same number , 1024 pass drawn half, after every pipeline drew it 16,32 [0, 255, 0, 255] [0, 0, 0, 0] fail cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 0] fail
Feature results
VkPhysicalDeviceFeatures (8 tested)
geometryShader fail tessellationShader fail multiDrawIndirect fail drawIndirectFirstInstance fail textureCompressionETC2 pass textureCompressionASTC_LDR pass textureCompressionBC fail occlusionQueryPrecise fail
VK_EXT_extended_dynamic_state (1 tested)
extendedDynamicState fail
VK_EXT_extended_dynamic_state2 (2 tested)
extendedDynamicState2 fail extendedDynamicState2LogicOp fail
VK_EXT_extended_dynamic_state3 (5 tested)
extendedDynamicState3DepthClampEnable fail extendedDynamicState3LogicOpEnable fail extendedDynamicState3ColorBlendEnable fail extendedDynamicState3ColorBlendEquation fail extendedDynamicState3ColorWriteMask fail
VK_EXT_vertex_input_dynamic_state (1 tested)
vertexInputDynamicState fail
VK_EXT_custom_border_color (1 tested)
customBorderColors fail
VK_EXT_border_color_swizzle (1 tested)
borderColorSwizzle fail
VK_EXT_depth_clip_control (1 tested)
depthClipControl fail
VK_EXT_transform_feedback (1 tested)
transformFeedback crash
VK_EXT_color_write_enable (1 tested)
colorWriteEnable fail
VK_EXT_inline_uniform_block (1 tested)
inlineUniformBlock fail
VK_KHR_timeline_semaphore (1 tested)
timelineSemaphore pass
Features that were unsupported or had no check are not listed here.