OSDN Git Service

radv: allocate enough space in CS when copying query results with compute
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Mon, 5 Nov 2018 09:35:36 +0000 (10:35 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 7 Nov 2018 10:31:34 +0000 (11:31 +0100)
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_query.c

index 494dc24..47e7f08 100644 (file)
@@ -1283,6 +1283,8 @@ void radv_CmdCopyQueryPoolResults(
                                unsigned query = firstQuery + i;
                                uint64_t src_va = va + query * pool->stride + pool->stride - 4;
 
+                               radeon_check_space(cmd_buffer->device->ws, cs, 7);
+
                                /* Waits on the upper word of the last DB entry */
                                radv_cp_wait_mem(cs, WAIT_REG_MEM_GREATER_OR_EQUAL,
                                                 src_va, 0x80000000, 0xffffffff);
@@ -1360,6 +1362,8 @@ void radv_CmdCopyQueryPoolResults(
                                unsigned query = firstQuery + i;
                                uint64_t src_va = va + query * pool->stride;
 
+                               radeon_check_space(cmd_buffer->device->ws, cs, 7 * 4);
+
                                /* Wait on the upper word of all results. */
                                for (unsigned j = 0; j < 4; j++, src_va += 8) {
                                        radv_cp_wait_mem(cs, WAIT_REG_MEM_GREATER_OR_EQUAL,