Report #600 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 Adreno (TM) 630 Driver turnip_v24.3.0_R9v2 Mesa 24.3.0-devel (git-4497ea2a31) Device Xiaomi MI 8 Chip SDM845
CPU 4 x 1.77 GHz + 4 x 2.80 GHz, arm64-v8a Memory 5.5 GB
Reported as Xiaomi / MI 8 Received 2026-10-13 17:00 UTC
Android 15
Library SHA-256 3a1d3425a87cfd0ebc9cc87a03a387f4814f9e6f6084457f16756400c44e385e
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
pass 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 , 0 pass drawn half: the pushed texture 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 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
fail core.compute_udiv
Check Pixel Expected Got Match
703787787 / 47721859 , [14] [31] fail 703787787 % 47721859 , [35681761] [3519377454] fail 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
pass 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, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
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) , 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, 255, 0, 255] pass cleared half 48,32 [0, 0, 0, 255] [0, 0, 0, 255] pass
pass stress.multi_draw_indirect_large
Check Pixel Expected Got Match
draws in one vkCmdDrawIndirect call (capped by this check, below the stated limit) , 16384 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 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
inconclusive 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, 255, 0, 255] pass
fail 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] [127, 127, 127, 127] fail
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 , 58 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 , 2099233 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 , 1024 pass pipelines built, the same number , 1024 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 (9 tested)
geometryShader pass tessellationShader pass multiDrawIndirect pass drawIndirectFirstInstance pass multiViewport pass textureCompressionETC2 pass textureCompressionASTC_LDR pass textureCompressionBC pass occlusionQueryPrecise pass
VK_EXT_extended_dynamic_state (1 tested)
extendedDynamicState pass
VK_EXT_extended_dynamic_state2 (2 tested)
extendedDynamicState2 pass extendedDynamicState2LogicOp pass
VK_EXT_extended_dynamic_state3 (6 tested)
extendedDynamicState3DepthClampEnable pass extendedDynamicState3PolygonMode pass extendedDynamicState3LogicOpEnable pass extendedDynamicState3ColorBlendEnable pass extendedDynamicState3ColorBlendEquation pass extendedDynamicState3ColorWriteMask pass
VK_EXT_vertex_input_dynamic_state (1 tested)
vertexInputDynamicState pass
VK_EXT_custom_border_color (1 tested)
customBorderColors pass
VK_EXT_border_color_swizzle (1 tested)
borderColorSwizzle pass
VK_EXT_depth_clip_control (1 tested)
depthClipControl pass
VK_EXT_transform_feedback (1 tested)
transformFeedback pass
VK_EXT_color_write_enable (1 tested)
colorWriteEnable pass
VK_EXT_inline_uniform_block (1 tested)
inlineUniformBlock pass
VK_KHR_timeline_semaphore (1 tested)
timelineSemaphore pass
VK_EXT_robustness2 (2 tested)
robustBufferAccess2 pass robustImageAccess2 pass
Features that were unsupported or had no check are not listed here.