报告 #126 驱动检测
应用提示这台设备无法生成硬件证明(密钥认证)。游戏掌机厂商通常没有配置这一项,所以在掌机上很常见,与驱动本身无关。 这个型号的设备从未发送过硬件证明,所以本站按现状计入这份报告。它的结果可以列为领先,只有在带硬件证明的设备也一致时才会变成已确认。
- GPU
- Adreno (TM) 740
- 驱动
- Qualcomm Technologies Inc. Adreno Vulkan Driver Driver Build: 69e13475cb, I1df7ad3aa9, 1703680572
Date: 12/27/23
Compiler Version: E031.41.03.47
Driver Branch:
- 设备
- AYN Odin2 Portal
- 芯片
- QCS8550
- CPU
- 3 x 2.02 GHz + 4 x 2.80 GHz + 1 x 3.19 GHz, arm64-v8a
- 内存
- 14.9 GB
- 上报为
- AYN / Odin2 Portal
- 收到时间
- Android
- 13
原始 JSON
测试框架检测 (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] | 通过 |
核心检测 (21)
通过 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] | 通过 |
通过 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 (the driver's stated limit) | , | | 65536 | 通过 |
| 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) | , | | 0 | 通过 |
| 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] | [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 | , | | 1024 | 通过 |
| pipelines built, the same number | , | | 1024 | 通过 |
| every save made while compiling returned VK_SUCCESS or VK_INCOMPLETE | , | | 0 | 通过 |
| saves made while compiling | , | | 686 | 通过 |
| 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 | , | | 1291424 | 通过 |
| 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 | , | | 1024 | 通过 |
| pipelines built, the same number | , | | 1024 | 通过 |
| 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] | 通过 |
功能结果
VkPhysicalDeviceFeatures(已测试 9 个)
geometryShader 通过tessellationShader 通过multiDrawIndirect 通过drawIndirectFirstInstance 通过multiViewport 通过textureCompressionETC2 通过textureCompressionASTC_LDR 通过textureCompressionBC 通过occlusionQueryPrecise 通过
VK_EXT_extended_dynamic_state(已测试 1 个)
extendedDynamicState 通过
VK_EXT_extended_dynamic_state2(已测试 2 个)
extendedDynamicState2 通过extendedDynamicState2LogicOp 通过
VK_EXT_vertex_input_dynamic_state(已测试 1 个)
vertexInputDynamicState 通过
VK_EXT_custom_border_color(已测试 1 个)
customBorderColors 通过
VK_EXT_depth_clip_control(已测试 1 个)
depthClipControl 通过
VK_EXT_transform_feedback(已测试 1 个)
transformFeedback 通过
VK_EXT_color_write_enable(已测试 1 个)
colorWriteEnable 通过
VK_KHR_timeline_semaphore(已测试 1 个)
timelineSemaphore 通过
VK_EXT_robustness2(已测试 2 个)
robustBufferAccess2 通过robustImageAccess2 通过
不支持或没有检测项的功能不在此列出。