Report #427 validation
Why unverified: The report arrived without a hardware proof the site could check (key attestation). A device of this maker is expected to send one, so the report is not counted. A later upload from this device may carry it.
GPU Mali-G77 MC9 Driver Mali-G77 MC9 v1.r32p1-01eac0.1ac506b46c382556d9568c04114e1009 Device Redmi K40 Gaming Chip MT6893
CPU 4 x 2.00 GHz + 3 x 2.60 GHz + 1 x 3.00 GHz, arm64-v8a Memory 11.3 GB
Reported as Xiaomi / M2012K10C Received 2026-10-12 23:16 UTC
Android 13
Raw JSON
Harness checks (1)
pass harness.baseline_draw
Check Pixel Expected Got Match
drawn half 16,32 [0, 255, 0, 255] [0, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
Core checks (21)
pass core.readback_same_command_buffer
Check Pixel Expected Got Match
drawn half 16,32 [0, 255, 0, 255] [0, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
unsupported push.max_combined_image_samplers
pass core.resubmit_command_buffer
Check Pixel Expected Got Match
first submit: drawn half 16,32 [0, 255, 0, 255] [0, 255, 0, 255] pass second submit of the same command buffer: drawn half 16,32 [0, 255, 0, 255] [0, 255, 0, 255] pass second submit of the same command buffer: cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
pass core.compute_udiv
Check Pixel Expected Got Match
703787787 / 47721859 , [14] [14] pass 703787787 % 47721859 , [35681761] [35681761] pass 4294967295 / 2147483649 , [1] [1] pass 4294967295 % 2147483649 , [2147483646] [2147483646] pass 4294967295 / 3 , [1431655765] [1431655765] pass 4294967295 % 3 , [0] [0] pass 4000000000 / 3 , [1333333333] [1333333333] pass 4000000000 % 3 , [1] [1] pass 2147483648 / 65537 , [32767] [32767] pass 2147483648 % 65537 , [32769] [32769] pass 2147483647 / 46341 , [46340] [46340] pass 2147483647 % 46341 , [41707] [41707] pass 1000000007 / 31607 , [31638] [31638] pass 1000000007 % 31607 , [17741] [17741] pass 16777217 / 4097 , [4095] [4095] pass 16777217 % 4097 , [2] [2] pass 16777216 / 4096 , [4096] [4096] pass 16777216 % 4096 , [0] [0] pass 4294967295 / 4294967295 , [1] [1] pass 4294967295 % 4294967295 , [0] [0] pass 3000000000 / 1500000001 , [1] [1] pass 3000000000 % 1500000001 , [1499999999] [1499999999] pass 123456789 / 10007 , [12337] [12337] pass 123456789 % 10007 , [430] [430] pass 4294967294 / 2 , [2147483647] [2147483647] pass 4294967294 % 2 , [0] [0] pass 65536 / 65537 , [0] [0] pass 65536 % 65537 , [65536] [65536] pass 99999999 / 4294967295 , [0] [0] pass 99999999 % 4294967295 , [99999999] [99999999] pass 1 / 1 , [1] [1] pass 1 % 1 , [0] [0] pass
pass core.texel_fetch_beside_ubo
Check Pixel Expected Got Match
left half: texel (1, 0) 16,32 [0, 255, 0, 255] [0, 255, 0, 255] pass right half: texel (0, 1) 48,32 [0, 0, 255, 255] [0, 0, 255, 255] pass
unsupported push.max_uniform_buffers
pass limit.uniform_buffer_range
Check Pixel Expected Got Match
bytes in one uniform buffer binding (the driver's stated limit) , 65536 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, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
pass 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) , 32 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, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
unsupported stress.multi_draw_indirect_large
pass stress.compute_after_render
Check Pixel Expected Got Match
wrong answers in 3200 divisions over 200 rounds , [0] [0] pass the last render pass: drawn half 16,32 [0, 255, 0, 255] [0, 255, 0, 255] pass
pass stress.submit_memory
Check Pixel Expected Got Match
KiB of memory gained over 4000 submits (limit 16384) , -100 pass the last submit: drawn half 16,32 [0, 255, 0, 255] [0, 255, 0, 255] pass
pass core.copy_wide_row_length
Check Pixel Expected Got Match
first copied row (the last green row) 16,0 [0, 255, 0, 255] [0, 255, 0, 255] pass second copied row, 4,210,688 bytes later (the first black row) 16,1 [0, 0, 0, 255] [0, 0, 0, 255] pass
pass core.mediump_mul_extended
Check Pixel Expected Got Match
low half of 255 * 3 , [765] [765] pass low half of 242 * 19 , [4598] [4598] pass low half of 229 * 35 , [8015] [8015] pass low half of 216 * 51 , [11016] [11016] pass low half of 203 * 67 , [13601] [13601] pass low half of 190 * 83 , [15770] [15770] pass low half of 177 * 99 , [17523] [17523] pass low half of 164 * 115 , [18860] [18860] pass low half of 151 * 131 , [19781] [19781] pass low half of 138 * 147 , [20286] [20286] pass low half of 125 * 163 , [20375] [20375] pass low half of 112 * 179 , [20048] [20048] pass low half of 99 * 195 , [19305] [19305] pass low half of 86 * 211 , [18146] [18146] pass low half of 73 * 227 , [16571] [16571] pass low half of 60 * 243 , [14580] [14580] pass high half of the first product , [0] [0] pass
pass core.msaa_resolve
Check Pixel Expected Got Match
resolved image: drawn half 16,32 [0, 255, 0, 255] [0, 255, 0, 255] pass resolved image: cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
pass 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, 255, 0, 255] pass first attachment: cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
pass limit.vertex_input
Check Pixel Expected Got Match
vertex buffer bindings in one pipeline, bound in one call (the driver's stated limit) , 32 pass vertex attributes in one pipeline (the driver's stated limit) , 32 pass bytes changed in memory next to the driver's allocations , 0 pass drawn half 16,32 [0, 255, 0, 255] [0, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
pass 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, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
pass limit.per_stage_samplers
Check Pixel Expected Got Match
combined image samplers in one descriptor set, bound and drawn with (capped by this check, below the stated limit) , 4096 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, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
pass 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, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
pass 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 , 1846 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 , 393504 pass header names this device , 32 pass drawn half, after every pipeline drew it 16,32 [0, 255, 0, 255] [0, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
pass 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 , 869 pass pipelines built, the same number , 869 pass drawn half, after every pipeline drew it 16,32 [0, 255, 0, 255] [0, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
Feature results
VkPhysicalDeviceFeatures (6 tested)
geometryShader pass tessellationShader pass drawIndirectFirstInstance pass textureCompressionETC2 pass textureCompressionASTC_LDR pass occlusionQueryPrecise pass
VK_EXT_custom_border_color (1 tested)
customBorderColors pass
VK_EXT_transform_feedback (1 tested)
transformFeedback pass
VK_EXT_inline_uniform_block (1 tested)
inlineUniformBlock pass
VK_KHR_timeline_semaphore (1 tested)
timelineSemaphore fail
Features that were unsupported or had no check are not listed here.