FauxVkDB
English

Report #1097 validation

No hardware proof (handheld) valid Supreme 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.

GPU
Mali-G610 MC4
Driver
panvk_faux123_v1.0.1 PanVK-kbase RC3-lowmem (Mesa 26.3.0-devel (git-25739f2d26))
Device
GameForce Ace
Chip
Rockchip RK3588S (RK3588)
CPU
4 x 1.80 GHz + 4 x 2.35 GHz, arm64-v8a
Memory
11.7 GB
Reported as
GameForce_ACE / GameForce_ACE
Received
Android
13
Library SHA-256
4b9fb31e950fe56562b2db5596fd88a7d9e3760bdfae1cafac71d0faaf053e90

Raw JSON

Harness checks (1)

pass harness.baseline_draw
CheckPixelExpectedGotMatch
drawn half16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass

Core checks (34)

pass core.readback_same_command_buffer
CheckPixelExpectedGotMatch
drawn half16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass compat.nested_map
CheckPixelExpectedGotMatch
second vkMapMemory result, same address,[0, 1][0, 1]pass
GPU reads both writes,[2684354560, 2952790023][2684354560, 2952790023]pass
pass compat.helper_loop_terminator
CheckPixelExpectedGotMatch
control: inside the drawn area, green16,32[0, 255, 0, 255][0, 255, 0, 255]pass
edge helpers: inside the drawn area, green16,32[0, 255, 0, 255][0, 255, 0, 255]pass
edge helpers: last drawn pixel (62, 62), green62,62[0, 255, 0, 255][0, 255, 0, 255]pass
edge helpers: pixel (63, 63) not drawn63,63[0, 0, 0, 255][0, 0, 0, 255]pass
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.43pass
pass push.max_combined_image_samplers
CheckPixelExpectedGotMatch
combined image samplers pushed in one set (the driver's stated limit),32pass
bytes changed in memory next to the driver's allocations,0pass
drawn half: the pushed texture16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass core.resubmit_command_buffer
CheckPixelExpectedGotMatch
first submit: drawn half16,32[0, 255, 0, 255][0, 255, 0, 255]pass
second submit of the same command buffer: drawn half16,32[0, 255, 0, 255][0, 255, 0, 255]pass
second submit of the same command buffer: cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass core.compute_udiv
CheckPixelExpectedGotMatch
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
CheckPixelExpectedGotMatch
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
CheckPixelExpectedGotMatch
uniform buffers pushed in one set (the driver's stated limit),32pass
bytes changed in memory next to the driver's allocations,0pass
drawn half: element 5 of the pushed buffer16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass limit.uniform_buffer_range
CheckPixelExpectedGotMatch
bytes in one uniform buffer binding (the driver's stated limit),1048576pass
bytes changed in memory next to the driver's allocations,0pass
drawn half: element 127 of the block16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass limit.dynamic_uniform_buffers
CheckPixelExpectedGotMatch
dynamic uniform buffers in one set, bound with as many offsets (the driver's stated limit),16pass
bytes changed in memory next to the driver's allocations,0pass
drawn half: the block the dynamic offset selects16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass stress.multi_draw_indirect_large
CheckPixelExpectedGotMatch
draws in one vkCmdDrawIndirect call (capped by this check, below the stated limit),16384pass
drawn half16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass stress.compute_after_render
CheckPixelExpectedGotMatch
wrong answers in 3200 divisions over 200 rounds,[0][0]pass
the last render pass: drawn half16,32[0, 255, 0, 255][0, 255, 0, 255]pass
pass stress.submit_memory
CheckPixelExpectedGotMatch
KiB of memory gained over 4000 submits (limit 16384),0pass
the last submit: drawn half16,32[0, 255, 0, 255][0, 255, 0, 255]pass
pass core.copy_wide_row_length
CheckPixelExpectedGotMatch
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
pass core.mediump_mul_extended
CheckPixelExpectedGotMatch
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
CheckPixelExpectedGotMatch
resolved image: drawn half16,32[0, 255, 0, 255][0, 255, 0, 255]pass
resolved image: cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass limit.color_attachments
CheckPixelExpectedGotMatch
colour attachments in one render pass (the driver's stated limit),8pass
bytes changed in memory next to the driver's allocations,0pass
first attachment: drawn half16,32[0, 255, 0, 255][0, 255, 0, 255]pass
first attachment: cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass limit.vertex_input
CheckPixelExpectedGotMatch
vertex buffer bindings in one pipeline, bound in one call (the driver's stated limit),16pass
vertex attributes in one pipeline (the driver's stated limit),16pass
bytes changed in memory next to the driver's allocations,0pass
drawn half16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass limit.push_constants_size
CheckPixelExpectedGotMatch
push constant bytes pushed in one call (the driver's stated limit),256pass
bytes changed in memory next to the driver's allocations,0pass
drawn half: the colour in the first 16 bytes16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass limit.per_stage_samplers
CheckPixelExpectedGotMatch
combined image samplers in one descriptor set, bound and drawn with (capped by this check, below the stated limit),4096pass
bytes changed in memory next to the driver's allocations,0pass
drawn half: the texture in element 016,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass limit.bound_descriptor_sets
CheckPixelExpectedGotMatch
descriptor sets bound in one call (the driver's stated limit),7pass
bytes changed in memory next to the driver's allocations,0pass
drawn half: the texture in set 016,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass stress.pipeline_cache_threads
CheckPixelExpectedGotMatch
every vkCreateGraphicsPipelines call returned VK_SUCCESS,0pass
pipelines asked for in 8 seconds, at least one from each thread,3072pass
pipelines built, the same number,3072pass
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,00pass
every save made while compiling returned VK_SUCCESS or VK_INCOMPLETE,0pass
saves made while compiling,135pass
bytes a save reported beyond the buffer size it was given,0pass
bytes a save wrote past the end of the buffer it was given,0pass
final save size in bytes holds a header,10619872pass
header names this device,32pass
drawn half, after every pipeline drew it16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass stress.pipeline_threads_no_cache
CheckPixelExpectedGotMatch
every vkCreateGraphicsPipelines call returned VK_SUCCESS,0pass
pipelines asked for in 8 seconds, at least one from each thread,3072pass
pipelines built, the same number,3072pass
drawn half, after every pipeline drew it16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass core.host_coherent_readback
CheckPixelExpectedGotMatch
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
pass core.ubo_written_after_record
CheckPixelExpectedGotMatch
drawn half: the value written after vkEndCommandBuffer16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass core.ubo_update_buffer
CheckPixelExpectedGotMatch
drawn half: the value vkCmdUpdateBuffer wrote16,32[0, 255, 0, 255][0, 255, 0, 255]pass
cleared half48,32[0, 0, 0, 255][0, 0, 0, 255]pass
pass core.compute_big_stack
CheckPixelExpectedGotMatch
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
pass core.mrt_partial_kill
CheckPixelExpectedGotMatch
RT0 under draw B: B's colour16,32[0, 0, 255, 255][0, 0, 255, 255]pass
RT0 outside draw B: A's colour48,32[0, 255, 0, 255][0, 255, 0, 255]pass
RT1 under draw B (write mask 0): keeps A's colour16,32[0, 255, 0, 255][0, 255, 0, 255]pass
RT1 outside draw B: A's colour48,32[0, 255, 0, 255][0, 255, 0, 255]pass
pass core.varying_subset
CheckPixelExpectedGotMatch
left half: location 3.x, 7.y, 10.z, 14.w16,32[48, 113, 162, 227][48, 113, 162, 227]pass
right half: location 3.x, 7.y, 10.z, 14.w48,32[48, 113, 162, 227][48, 113, 162, 227]pass
pass core.blend_advertised_formats
CheckPixelExpectedGotMatch
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
pass stage.geometry_point_size
CheckPixelExpectedGotMatch
inside: top-left corner of the 8x8 point29,29[0, 255, 0, 255][0, 255, 0, 255]pass
inside: bottom-right corner of the 8x8 point34,34[0, 255, 0, 255][0, 255, 0, 255]pass
inside: top-right corner of the 8x8 point34,29[0, 255, 0, 255][0, 255, 0, 255]pass
inside: bottom-left corner of the 8x8 point29,34[0, 255, 0, 255][0, 255, 0, 255]pass
outside: left of the point26,32[0, 0, 0, 255][0, 0, 0, 255]pass
outside: right of the point37,32[0, 0, 0, 255][0, 0, 0, 255]pass
outside: above the point32,26[0, 0, 0, 255][0, 0, 0, 255]pass
outside: below the point32,37[0, 0, 0, 255][0, 0, 0, 255]pass
pass stage.geometry_max_output
CheckPixelExpectedGotMatch
grid pixels lit by the 256 emitted points,[256][256]pass
the last emitted point62,62[0, 255, 0, 255][0, 255, 0, 255]pass
a pixel between grid points0,0[0, 0, 0, 255][0, 0, 0, 255]pass
pass sync.first_submit_clear_then_compute
CheckPixelExpectedGotMatch
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
pass mem.image_padding
CheckPixelExpectedGotMatch
256x256 ASTC 4x4, 9 mips: vkGetImageMemoryRequirements size at most the larger of 4 x packed and packed + 64 KiB (packed size 87408 bytes),[349632][90112]pass

Feature results

VkPhysicalDeviceFeatures (11 tested)
geometryShader passtessellationShader passmultiDrawIndirect passdrawIndirectFirstInstance passdepthClamp passlargePoints passmultiViewport passtextureCompressionETC2 passtextureCompressionASTC_LDR passtextureCompressionBC passocclusionQueryPrecise pass
VK_EXT_extended_dynamic_state (1 tested)
extendedDynamicState pass
VK_EXT_extended_dynamic_state2 (2 tested)
extendedDynamicState2 passextendedDynamicState2LogicOp pass
VK_EXT_extended_dynamic_state3 (5 tested)
extendedDynamicState3DepthClampEnable passextendedDynamicState3LogicOpEnable passextendedDynamicState3ColorBlendEnable passextendedDynamicState3ColorBlendEquation passextendedDynamicState3ColorWriteMask 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_KHR_shader_atomic_int64 (1 tested)
shaderBufferInt64Atomics pass
VK_EXT_robustness2 (2 tested)
robustBufferAccess2 passrobustImageAccess2 pass

Features that were unsupported or had no check are not listed here.