报告 #1100 驱动检测
已认证,设备已锁定 有效
- GPU
- Mali-G925-Immortalis MC12
- 驱动
- Mali-G925-Immortalis MC12 v1.r49p1-03bet0.bc90a72cfac7e7049eb7f4a59891303a
- 设备
- vivo X200s
- 芯片
- MT6991
- CPU
- 4 x 2.40 GHz + 3 x 3.30 GHz + 1 x 3.73 GHz, arm64-v8a
- 内存
- 15.0 GB
- 上报为
- vivo / V2458A
- 收到时间
- Android
- 16
测试框架检测 (1)
通过 harness.baseline_draw
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| drawn half | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
核心检测 (34)
通过 core.readback_same_command_buffer
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| drawn half | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 compat.nested_map
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| second vkMapMemory result, same address | , | [0, 1] | [0, 1] | 通过 |
| GPU reads both writes | , | [2684354560, 2952790023] | [2684354560, 2952790023] | 通过 |
通过 compat.helper_loop_terminator
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| control: inside the drawn area, green | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| edge helpers: inside the drawn area, green | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| edge helpers: last drawn pixel (62, 62), green | 62,62 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| edge helpers: pixel (63, 63) not drawn | 63,63 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
| 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; above 3 x control 0.67 ms + 20) | , | 304.02 | 通过 |
通过 push.max_combined_image_samplers
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| combined image samplers pushed in one set (the driver's stated limit) | , | 32 | 通过 | |
| bytes changed in memory next to the driver's allocations | , | 0 | 通过 | |
| drawn half: the pushed texture | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 core.resubmit_command_buffer
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| first submit: drawn half | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| second submit of the same command buffer: drawn half | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| second submit of the same command buffer: cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 core.compute_udiv
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| 703787787 / 47721859 | , | [14] | [14] | 通过 |
| 703787787 % 47721859 | , | [35681761] | [35681761] | 通过 |
| 4294967295 / 2147483649 | , | [1] | [1] | 通过 |
| 4294967295 % 2147483649 | , | [2147483646] | [2147483646] | 通过 |
| 4294967295 / 3 | , | [1431655765] | [1431655765] | 通过 |
| 4294967295 % 3 | , | [0] | [0] | 通过 |
| 4000000000 / 3 | , | [1333333333] | [1333333333] | 通过 |
| 4000000000 % 3 | , | [1] | [1] | 通过 |
| 2147483648 / 65537 | , | [32767] | [32767] | 通过 |
| 2147483648 % 65537 | , | [32769] | [32769] | 通过 |
| 2147483647 / 46341 | , | [46340] | [46340] | 通过 |
| 2147483647 % 46341 | , | [41707] | [41707] | 通过 |
| 1000000007 / 31607 | , | [31638] | [31638] | 通过 |
| 1000000007 % 31607 | , | [17741] | [17741] | 通过 |
| 16777217 / 4097 | , | [4095] | [4095] | 通过 |
| 16777217 % 4097 | , | [2] | [2] | 通过 |
| 16777216 / 4096 | , | [4096] | [4096] | 通过 |
| 16777216 % 4096 | , | [0] | [0] | 通过 |
| 4294967295 / 4294967295 | , | [1] | [1] | 通过 |
| 4294967295 % 4294967295 | , | [0] | [0] | 通过 |
| 3000000000 / 1500000001 | , | [1] | [1] | 通过 |
| 3000000000 % 1500000001 | , | [1499999999] | [1499999999] | 通过 |
| 123456789 / 10007 | , | [12337] | [12337] | 通过 |
| 123456789 % 10007 | , | [430] | [430] | 通过 |
| 4294967294 / 2 | , | [2147483647] | [2147483647] | 通过 |
| 4294967294 % 2 | , | [0] | [0] | 通过 |
| 65536 / 65537 | , | [0] | [0] | 通过 |
| 65536 % 65537 | , | [65536] | [65536] | 通过 |
| 99999999 / 4294967295 | , | [0] | [0] | 通过 |
| 99999999 % 4294967295 | , | [99999999] | [99999999] | 通过 |
| 1 / 1 | , | [1] | [1] | 通过 |
| 1 % 1 | , | [0] | [0] | 通过 |
通过 core.texel_fetch_beside_ubo
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| left half: texel (1, 0) | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| right half: texel (0, 1) | 48,32 | [0, 0, 255, 255] | [0, 0, 255, 255] | 通过 |
通过 push.max_uniform_buffers
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| uniform buffers pushed in one set (the driver's stated limit) | , | 32 | 通过 | |
| bytes changed in memory next to the driver's allocations | , | 0 | 通过 | |
| drawn half: element 5 of the pushed buffer | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 limit.uniform_buffer_range
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| bytes in one uniform buffer binding (capped by this check, below the stated limit) | , | 67108864 | 通过 | |
| bytes changed in memory next to the driver's allocations | , | 0 | 通过 | |
| drawn half: element 127 of the block | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 limit.dynamic_uniform_buffers
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| dynamic uniform buffers in one set, bound with as many offsets (the driver's stated limit) | , | 32 | 通过 | |
| bytes changed in memory next to the driver's allocations | , | 0 | 通过 | |
| drawn half: the block the dynamic offset selects | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 stress.multi_draw_indirect_large
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| draws in one vkCmdDrawIndirect call (capped by this check, below the stated limit) | , | 16384 | 通过 | |
| drawn half | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 stress.compute_after_render
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| wrong answers in 3200 divisions over 200 rounds | , | [0] | [0] | 通过 |
| the last render pass: drawn half | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
通过 stress.submit_memory
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| KiB of memory gained over 4000 submits (limit 16384) | , | 8 | 通过 | |
| the last submit: drawn half | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
通过 core.copy_wide_row_length
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| first copied row (the last green row) | 16,0 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| second copied row, 4,210,688 bytes later (the first black row) | 16,1 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
| information: pixel at the offset a pitch kept modulo 4 MiB would use (16448 bytes) | , | [127, 127, 127, 127] | 通过 |
通过 core.mediump_mul_extended
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| low half of 255 * 3 | , | [765] | [765] | 通过 |
| low half of 242 * 19 | , | [4598] | [4598] | 通过 |
| low half of 229 * 35 | , | [8015] | [8015] | 通过 |
| low half of 216 * 51 | , | [11016] | [11016] | 通过 |
| low half of 203 * 67 | , | [13601] | [13601] | 通过 |
| low half of 190 * 83 | , | [15770] | [15770] | 通过 |
| low half of 177 * 99 | , | [17523] | [17523] | 通过 |
| low half of 164 * 115 | , | [18860] | [18860] | 通过 |
| low half of 151 * 131 | , | [19781] | [19781] | 通过 |
| low half of 138 * 147 | , | [20286] | [20286] | 通过 |
| low half of 125 * 163 | , | [20375] | [20375] | 通过 |
| low half of 112 * 179 | , | [20048] | [20048] | 通过 |
| low half of 99 * 195 | , | [19305] | [19305] | 通过 |
| low half of 86 * 211 | , | [18146] | [18146] | 通过 |
| low half of 73 * 227 | , | [16571] | [16571] | 通过 |
| low half of 60 * 243 | , | [14580] | [14580] | 通过 |
| high half of the first product | , | [0] | [0] | 通过 |
通过 core.msaa_resolve
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| resolved image: drawn half | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| resolved image: cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 limit.color_attachments
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| colour attachments in one render pass (the driver's stated limit) | , | 8 | 通过 | |
| bytes changed in memory next to the driver's allocations | , | 0 | 通过 | |
| first attachment: drawn half | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| first attachment: cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 limit.vertex_input
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| vertex buffer bindings in one pipeline, bound in one call (the driver's stated limit) | , | 32 | 通过 | |
| vertex attributes in one pipeline (the driver's stated limit) | , | 32 | 通过 | |
| bytes changed in memory next to the driver's allocations | , | 0 | 通过 | |
| drawn half | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 limit.push_constants_size
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| push constant bytes pushed in one call (the driver's stated limit) | , | 256 | 通过 | |
| bytes changed in memory next to the driver's allocations | , | 0 | 通过 | |
| drawn half: the colour in the first 16 bytes | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 limit.per_stage_samplers
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| combined image samplers in one descriptor set, bound and drawn with (capped by this check, below the stated limit) | , | 4096 | 通过 | |
| bytes changed in memory next to the driver's allocations | , | 0 | 通过 | |
| drawn half: the texture in element 0 | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 limit.bound_descriptor_sets
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| descriptor sets bound in one call (the driver's stated limit) | , | 7 | 通过 | |
| bytes changed in memory next to the driver's allocations | , | 0 | 通过 | |
| drawn half: the texture in set 0 | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 stress.pipeline_cache_threads
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| every vkCreateGraphicsPipelines call returned VK_SUCCESS | , | 0 | 通过 | |
| pipelines asked for in 8 seconds, at least one from each thread | , | 3072 | 通过 | |
| pipelines built, the same number | , | 3072 | 通过 | |
| single-thread stale-size save (size asked on the empty cache, 2 pipelines added, then saved): pDataSize given 32 bytes, call returned VkResult 5 with pDataSize 32; bytes written past the given size | , | 0 | 0 | 通过 |
| every save made while compiling returned VK_SUCCESS or VK_INCOMPLETE | , | 0 | 通过 | |
| saves made while compiling | , | 78 | 通过 | |
| bytes a save reported beyond the buffer size it was given | , | 0 | 通过 | |
| bytes a save wrote past the end of the buffer it was given | , | 0 | 通过 | |
| final save size in bytes holds a header | , | 943282 | 通过 | |
| header names this device | , | 32 | 通过 | |
| drawn half, after every pipeline drew it | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 stress.pipeline_threads_no_cache
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| every vkCreateGraphicsPipelines call returned VK_SUCCESS | , | 0 | 通过 | |
| pipelines asked for in 8 seconds, at least one from each thread | , | 3072 | 通过 | |
| pipelines built, the same number | , | 3072 | 通过 | |
| drawn half, after every pipeline drew it | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 core.host_coherent_readback
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| half written by vkCmdFillBuffer: first word | , | [324508639] | [324508639] | 通过 |
| half written by vkCmdFillBuffer: words holding the pattern | , | [32768] | [32768] | 通过 |
| half written by a copy from device-local memory: first word | , | [1515852340] | [1515852340] | 通过 |
| half written by a copy from device-local memory: words holding the pattern | , | [32768] | [32768] | 通过 |
通过 core.ubo_written_after_record
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| drawn half: the value written after vkEndCommandBuffer | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 core.ubo_update_buffer
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| drawn half: the value vkCmdUpdateBuffer wrote | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| cleared half | 48,32 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 core.compute_big_stack
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| invocation 0 sum, seed 0 | , | [3813905792] | [3813905792] | 通过 |
| invocation 1 sum, seed 1 | , | [3813900928] | [3813900928] | 通过 |
| invocation 2 sum, seed 77 | , | [3813957248] | [3813957248] | 通过 |
| invocation 3 sum, seed 128 | , | [3814004096] | [3814004096] | 通过 |
| invocation 4 sum, seed 255 | , | [3814090880] | [3814090880] | 通过 |
| invocation 5 sum, seed 1000003 | , | [286940288] | [286940288] | 通过 |
| invocation 6 sum, seed 3735928559 | , | [3968882816] | [3968882816] | 通过 |
| invocation 7 sum, seed 4294967295 | , | [3813894272] | [3813894272] | 通过 |
通过 core.mrt_partial_kill
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| RT0 under draw B: B's colour | 16,32 | [0, 0, 255, 255] | [0, 0, 255, 255] | 通过 |
| RT0 outside draw B: A's colour | 48,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| RT1 under draw B (write mask 0): keeps A's colour | 16,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| RT1 outside draw B: A's colour | 48,32 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
通过 core.varying_subset
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| left half: location 3.x, 7.y, 10.z, 14.w | 16,32 | [48, 113, 162, 227] | [48, 113, 162, 227] | 通过 |
| right half: location 3.x, 7.y, 10.z, 14.w | 48,32 | [48, 113, 162, 227] | [48, 113, 162, 227] | 通过 |
通过 core.blend_advertised_formats
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| 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] | 通过 |
| 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] | 通过 |
不支持 stage.geometry_point_size
通过 stage.geometry_max_output
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| grid pixels lit by the 256 emitted points | , | [256] | [256] | 通过 |
| the last emitted point | 62,62 | [0, 255, 0, 255] | [0, 255, 0, 255] | 通过 |
| a pixel between grid points | 0,0 | [0, 0, 0, 255] | [0, 0, 0, 255] | 通过 |
通过 sync.first_submit_clear_then_compute
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| repetition 1 of 4, new device: texels of slices 1 and 2 holding the clear value 0x5A5A1234 | , | [32] | [32] | 通过 |
| repetition 2 of 4, new device: texels of slices 1 and 2 holding the clear value 0x5A5A1234 | , | [32] | [32] | 通过 |
| repetition 3 of 4, new device: texels of slices 1 and 2 holding the clear value 0x5A5A1234 | , | [32] | [32] | 通过 |
| repetition 4 of 4, new device: texels of slices 1 and 2 holding the clear value 0x5A5A1234 | , | [32] | [32] | 通过 |
通过 mem.image_padding
| 检测 | 像素 | 预期 | 实际 | 一致 |
|---|---|---|---|---|
| 256x256 ASTC 4x4, 9 mips: vkGetImageMemoryRequirements size at most the larger of 4 x packed and packed + 64 KiB (packed size 87408 bytes) | , | [349632] | [88320] | 通过 |
功能结果
VkPhysicalDeviceFeatures(已测试 9 个)
geometryShader 通过tessellationShader 通过multiDrawIndirect 通过drawIndirectFirstInstance 通过depthClamp 通过largePoints 通过textureCompressionETC2 通过textureCompressionASTC_LDR 通过occlusionQueryPrecise 通过
VK_EXT_extended_dynamic_state(已测试 1 个)
extendedDynamicState 通过
VK_EXT_extended_dynamic_state2(已测试 1 个)
extendedDynamicState2 通过
VK_EXT_extended_dynamic_state3(已测试 1 个)
extendedDynamicState3DepthClampEnable 通过
VK_EXT_vertex_input_dynamic_state(已测试 1 个)
vertexInputDynamicState 通过
VK_EXT_custom_border_color(已测试 1 个)
customBorderColors 通过
VK_EXT_border_color_swizzle(已测试 1 个)
borderColorSwizzle 通过
VK_EXT_transform_feedback(已测试 1 个)
transformFeedback 通过
VK_EXT_inline_uniform_block(已测试 1 个)
inlineUniformBlock 通过
VK_KHR_timeline_semaphore(已测试 1 个)
timelineSemaphore 通过
VK_KHR_shader_atomic_int64(已测试 1 个)
shaderBufferInt64Atomics 通过
不支持或没有检测项的功能不在此列出。