diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c index b5eea4d0b40..db23dfb5485 100644 --- a/src/gallium/frontends/lavapipe/lvp_execute.c +++ b/src/gallium/frontends/lavapipe/lvp_execute.c @@ -2965,14 +2965,18 @@ static void handle_copy_query_pool_results(struct vk_cmd_queue_entry *cmd, uint8_t *map = pipe_buffer_map(state->pctx, lvp_buffer_from_handle(copycmd->dst_buffer)->bo, PIPE_MAP_WRITE, &transfer); map += offset; - if (flags & VK_QUERY_RESULT_64_BIT) { + if (copycmd->flags & VK_QUERY_RESULT_64_BIT) { uint64_t *dst = (uint64_t *)map; uint64_t *src = (uint64_t *)pool->data; *dst = src[i]; + if (copycmd->flags & VK_QUERY_RESULT_WITH_AVAILABILITY_BIT) + *(dst + 1) = 1; } else { uint32_t *dst = (uint32_t *)map; uint64_t *src = (uint64_t *)pool->data; *dst = (uint32_t) (src[i] & UINT32_MAX); + if (copycmd->flags & VK_QUERY_RESULT_WITH_AVAILABILITY_BIT) + *(dst + 1) = 1; } state->pctx->buffer_unmap(state->pctx, transfer);