No hardware proof (handheld)validSupreme supporter
The app said this device cannot make a hardware proof (key attestation). Makers of gaming handhelds often do not set that up, so this is common on them and says nothing about the driver. No device of this model has ever sent a hardware proof, so the site counts this report as it is. Its results can be listed as leading, and become confirmed only when a device with a hardware proof agrees.
draw time with edge helpers, ms (information only: helpers that keep running the bounded loop for a later texture() are conformant; leaving early is an optional optimization; within 3 x control 0.47 ms + 20)
,
0.43
pass
passpush.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
passcore.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
passcore.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
passcore.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
passpush.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
passlimit.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, 255, 0, 255]
pass
cleared half
48,32
[0, 0, 0, 255]
[0, 0, 0, 255]
pass
passlimit.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
passstress.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
passstress.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
passstress.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
passcore.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
information: pixel at the offset a pitch kept modulo 4 MiB would use (16448 bytes)
,
[127, 127, 127, 127]
pass
passcore.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
passcore.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
passlimit.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
passlimit.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, 255, 0, 255]
pass
cleared half
48,32
[0, 0, 0, 255]
[0, 0, 0, 255]
pass
passlimit.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
passlimit.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
passlimit.bound_descriptor_sets
Check
Pixel
Expected
Got
Match
descriptor sets bound in one call (the driver's stated limit)
,
7
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
passstress.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
,
3072
pass
pipelines built, the same number
,
3072
pass
single-thread stale-size save (size asked on the empty cache, 2 pipelines added, then saved): pDataSize given 36 bytes, call returned VkResult 5 with pDataSize 36; bytes written past the given size
,
0
0
pass
every save made while compiling returned VK_SUCCESS or VK_INCOMPLETE
,
0
pass
saves made while compiling
,
135
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
,
10619872
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
passstress.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
,
3072
pass
pipelines built, the same number
,
3072
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
passcore.host_coherent_readback
Check
Pixel
Expected
Got
Match
half written by vkCmdFillBuffer: first word
,
[324508639]
[324508639]
pass
half written by vkCmdFillBuffer: words holding the pattern
,
[32768]
[32768]
pass
half written by a copy from device-local memory: first word
,
[1515852340]
[1515852340]
pass
half written by a copy from device-local memory: words holding the pattern
,
[32768]
[32768]
pass
passcore.ubo_written_after_record
Check
Pixel
Expected
Got
Match
drawn half: the value written after vkEndCommandBuffer
16,32
[0, 255, 0, 255]
[0, 255, 0, 255]
pass
cleared half
48,32
[0, 0, 0, 255]
[0, 0, 0, 255]
pass
passcore.ubo_update_buffer
Check
Pixel
Expected
Got
Match
drawn half: the value vkCmdUpdateBuffer wrote
16,32
[0, 255, 0, 255]
[0, 255, 0, 255]
pass
cleared half
48,32
[0, 0, 0, 255]
[0, 0, 0, 255]
pass
passcore.compute_big_stack
Check
Pixel
Expected
Got
Match
invocation 0 sum, seed 0
,
[3813905792]
[3813905792]
pass
invocation 1 sum, seed 1
,
[3813900928]
[3813900928]
pass
invocation 2 sum, seed 77
,
[3813957248]
[3813957248]
pass
invocation 3 sum, seed 128
,
[3814004096]
[3814004096]
pass
invocation 4 sum, seed 255
,
[3814090880]
[3814090880]
pass
invocation 5 sum, seed 1000003
,
[286940288]
[286940288]
pass
invocation 6 sum, seed 3735928559
,
[3968882816]
[3968882816]
pass
invocation 7 sum, seed 4294967295
,
[3813894272]
[3813894272]
pass
passcore.mrt_partial_kill
Check
Pixel
Expected
Got
Match
RT0 under draw B: B's colour
16,32
[0, 0, 255, 255]
[0, 0, 255, 255]
pass
RT0 outside draw B: A's colour
48,32
[0, 255, 0, 255]
[0, 255, 0, 255]
pass
RT1 under draw B (write mask 0): keeps A's colour
16,32
[0, 255, 0, 255]
[0, 255, 0, 255]
pass
RT1 outside draw B: A's colour
48,32
[0, 255, 0, 255]
[0, 255, 0, 255]
pass
passcore.varying_subset
Check
Pixel
Expected
Got
Match
left half: location 3.x, 7.y, 10.z, 14.w
16,32
[48, 113, 162, 227]
[48, 113, 162, 227]
pass
right half: location 3.x, 7.y, 10.z, 14.w
48,32
[48, 113, 162, 227]
[48, 113, 162, 227]
pass
passcore.blend_advertised_formats
Check
Pixel
Expected
Got
Match
R8G8B8A8_UNORM: (1,1,1,0.5) over 0 with SRC_ALPHA
,
[0.5, 0.5, 0.5, 0.25]
[0.498039, 0.498039, 0.498039, 0.25098]
pass
R16G16B16A16_SFLOAT: (1,1,1,0.5) over 0 with SRC_ALPHA
,
[0.5, 0.5, 0.5, 0.25]
[0.5, 0.5, 0.5, 0.25]
pass
passstage.geometry_point_size
Check
Pixel
Expected
Got
Match
inside: top-left corner of the 8x8 point
29,29
[0, 255, 0, 255]
[0, 255, 0, 255]
pass
inside: bottom-right corner of the 8x8 point
34,34
[0, 255, 0, 255]
[0, 255, 0, 255]
pass
inside: top-right corner of the 8x8 point
34,29
[0, 255, 0, 255]
[0, 255, 0, 255]
pass
inside: bottom-left corner of the 8x8 point
29,34
[0, 255, 0, 255]
[0, 255, 0, 255]
pass
outside: left of the point
26,32
[0, 0, 0, 255]
[0, 0, 0, 255]
pass
outside: right of the point
37,32
[0, 0, 0, 255]
[0, 0, 0, 255]
pass
outside: above the point
32,26
[0, 0, 0, 255]
[0, 0, 0, 255]
pass
outside: below the point
32,37
[0, 0, 0, 255]
[0, 0, 0, 255]
pass
passstage.geometry_max_output
Check
Pixel
Expected
Got
Match
grid pixels lit by the 256 emitted points
,
[256]
[256]
pass
the last emitted point
62,62
[0, 255, 0, 255]
[0, 255, 0, 255]
pass
a pixel between grid points
0,0
[0, 0, 0, 255]
[0, 0, 0, 255]
pass
passsync.first_submit_clear_then_compute
Check
Pixel
Expected
Got
Match
repetition 1 of 4, new device: texels of slices 1 and 2 holding the clear value 0x5A5A1234
,
[32]
[32]
pass
repetition 2 of 4, new device: texels of slices 1 and 2 holding the clear value 0x5A5A1234
,
[32]
[32]
pass
repetition 3 of 4, new device: texels of slices 1 and 2 holding the clear value 0x5A5A1234
,
[32]
[32]
pass
repetition 4 of 4, new device: texels of slices 1 and 2 holding the clear value 0x5A5A1234
,
[32]
[32]
pass
passmem.image_padding
Check
Pixel
Expected
Got
Match
256x256 ASTC 4x4, 9 mips: vkGetImageMemoryRequirements size at most the larger of 4 x packed and packed + 64 KiB (packed size 87408 bytes)