radv: query cmds should mark a cmd buffer as having draws.
authorDave Airlie <airlied@redhat.com>
Tue, 14 Feb 2017 23:58:09 +0000 (23:58 +0000)
committerDave Airlie <airlied@redhat.com>
Wed, 15 Feb 2017 00:02:33 +0000 (00:02 +0000)
This fixes a regression with the remove non-draw cmd buffers in
queries.

Fixes: 8b47b97215a radv: detect command buffers that do no work and drop them (v2)
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/radv_query.c

index a29a05d4b846f96a7eb84dc92bfcc222ac6c8ed4..fd5d0659a9ed77203f9f334728cfd27178445cf1 100644 (file)
@@ -211,6 +211,7 @@ void radv_CmdCopyQueryPoolResults(
 
        cmd_buffer->device->ws->cs_add_buffer(cmd_buffer->cs, pool->bo, 8);
        cmd_buffer->device->ws->cs_add_buffer(cmd_buffer->cs, dst_buffer->bo, 8);
+       cmd_buffer->no_draws = false;
 
        for(unsigned i = 0; i < queryCount; ++i, dest_va += stride) {
                unsigned query = firstQuery + i;
@@ -310,6 +311,7 @@ void radv_CmdBeginQuery(
        va += pool->stride * query;
 
        cmd_buffer->device->ws->cs_add_buffer(cs, pool->bo, 8);
+       cmd_buffer->no_draws = false;
 
        switch (pool->type) {
        case VK_QUERY_TYPE_OCCLUSION:
@@ -343,6 +345,7 @@ void radv_CmdEndQuery(
        va += pool->stride * query;
 
        cmd_buffer->device->ws->cs_add_buffer(cs, pool->bo, 8);
+       cmd_buffer->no_draws = false;
 
        switch (pool->type) {
        case VK_QUERY_TYPE_OCCLUSION:
@@ -394,6 +397,7 @@ void radv_CmdWriteTimestamp(
        uint64_t query_va = va + pool->stride * query;
 
        cmd_buffer->device->ws->cs_add_buffer(cs, pool->bo, 5);
+       cmd_buffer->no_draws = false;
 
        MAYBE_UNUSED unsigned cdw_max = radeon_check_space(cmd_buffer->device->ws, cs, 12);