mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 20:28:04 +02:00
zink: pass query object to get_num_results()
no functional changes Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16274>
This commit is contained in:
parent
6af4a74f8a
commit
563ae3fd69
1 changed files with 10 additions and 10 deletions
|
|
@ -206,9 +206,9 @@ get_num_queries(struct zink_query *q)
|
|||
}
|
||||
|
||||
static inline unsigned
|
||||
get_num_results(enum pipe_query_type query_type)
|
||||
get_num_results(struct zink_query *q)
|
||||
{
|
||||
switch (query_type) {
|
||||
switch (q->type) {
|
||||
case PIPE_QUERY_OCCLUSION_COUNTER:
|
||||
case PIPE_QUERY_OCCLUSION_PREDICATE:
|
||||
case PIPE_QUERY_OCCLUSION_PREDICATE_CONSERVATIVE:
|
||||
|
|
@ -223,7 +223,7 @@ get_num_results(enum pipe_query_type query_type)
|
|||
return 2;
|
||||
default:
|
||||
debug_printf("unknown query: %s\n",
|
||||
util_str_query_type(query_type, true));
|
||||
util_str_query_type(q->type, true));
|
||||
unreachable("zink: unknown query type");
|
||||
}
|
||||
}
|
||||
|
|
@ -336,7 +336,7 @@ qbo_append(struct pipe_screen *screen, struct zink_query *query)
|
|||
qbo->buffers[i] = pipe_buffer_create(screen, PIPE_BIND_QUERY_BUFFER,
|
||||
PIPE_USAGE_STAGING,
|
||||
/* this is the maximum possible size of the results in a given buffer */
|
||||
NUM_QUERIES * get_num_results(query->type) * sizeof(uint64_t));
|
||||
NUM_QUERIES * get_num_results(query) * sizeof(uint64_t));
|
||||
if (!qbo->buffers[i])
|
||||
goto fail;
|
||||
}
|
||||
|
|
@ -519,7 +519,7 @@ check_query_results(struct zink_query *query, union pipe_query_result *result,
|
|||
int num_starts, uint64_t *results, uint64_t *xfb_results)
|
||||
{
|
||||
uint64_t last_val = 0;
|
||||
int result_size = get_num_results(query->type);
|
||||
int result_size = get_num_results(query);
|
||||
int idx = 0;
|
||||
util_dynarray_foreach(&query->starts, struct zink_query_start, start) {
|
||||
unsigned i = idx * result_size;
|
||||
|
|
@ -606,7 +606,7 @@ get_query_result(struct pipe_context *pctx,
|
|||
util_query_clear_result(result, query->type);
|
||||
|
||||
int num_starts = get_num_starts(query);
|
||||
int result_size = get_num_results(query->type) * sizeof(uint64_t);
|
||||
int result_size = get_num_results(query) * sizeof(uint64_t);
|
||||
int num_maps = get_num_queries(query);
|
||||
|
||||
struct zink_query_buffer *qbo;
|
||||
|
|
@ -698,7 +698,7 @@ copy_pool_results_to_buffer(struct zink_context *ctx, struct zink_query *query,
|
|||
{
|
||||
struct zink_batch *batch = &ctx->batch;
|
||||
unsigned type_size = (flags & VK_QUERY_RESULT_64_BIT) ? sizeof(uint64_t) : sizeof(uint32_t);
|
||||
unsigned base_result_size = get_num_results(query->type) * type_size;
|
||||
unsigned base_result_size = get_num_results(query) * type_size;
|
||||
unsigned result_size = base_result_size * num_results;
|
||||
if (flags & VK_QUERY_RESULT_WITH_AVAILABILITY_BIT)
|
||||
result_size += type_size;
|
||||
|
|
@ -752,7 +752,7 @@ reset_qbos(struct zink_context *ctx, struct zink_query *q)
|
|||
static inline unsigned
|
||||
get_buffer_offset(struct zink_query *q)
|
||||
{
|
||||
return (get_num_starts(q) - q->last_start_idx - 1) * get_num_results(q->type) * sizeof(uint64_t);
|
||||
return (get_num_starts(q) - q->last_start_idx - 1) * get_num_results(q) * sizeof(uint64_t);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
@ -1219,7 +1219,7 @@ zink_get_query_result_resource(struct pipe_context *pctx,
|
|||
*/
|
||||
|
||||
VkQueryResultFlags flag = is_time_query(query) ? 0 : VK_QUERY_RESULT_PARTIAL_BIT;
|
||||
unsigned src_offset = result_size * get_num_results(query->type);
|
||||
unsigned src_offset = result_size * get_num_results(query);
|
||||
if (zink_batch_usage_check_completion(ctx, query->batch_uses)) {
|
||||
uint64_t u64[4] = {0};
|
||||
if (VKCTX(GetQueryPoolResults)(screen->dev, start->vkq[0]->pool->query_pool, query_id, 1, sizeof(u64), u64,
|
||||
|
|
@ -1232,7 +1232,7 @@ zink_get_query_result_resource(struct pipe_context *pctx,
|
|||
}
|
||||
struct pipe_resource *staging = pipe_buffer_create(pctx->screen, 0, PIPE_USAGE_STAGING, src_offset + result_size);
|
||||
copy_results_to_buffer(ctx, query, zink_resource(staging), 0, 1, size_flags | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT | flag);
|
||||
zink_copy_buffer(ctx, res, zink_resource(staging), offset, result_size * get_num_results(query->type), result_size);
|
||||
zink_copy_buffer(ctx, res, zink_resource(staging), offset, result_size * get_num_results(query), result_size);
|
||||
pipe_resource_reference(&staging, NULL);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue