Lines Matching defs:query
101 struct r600_query_pc *query = (struct r600_query_pc *)rquery;
103 while (query->groups) {
104 struct r600_pc_group *group = query->groups;
105 query->groups = group->next;
109 FREE(query->counters);
127 struct r600_query_pc *query = (struct r600_query_pc *)hwquery;
132 if (query->shaders)
133 pc->emit_shaders(ctx, query->shaders);
135 for (group = query->groups; group; group = group->next) {
158 struct r600_query_pc *query = (struct r600_query_pc *)hwquery;
163 for (group = query->groups; group; group = group->next) {
190 struct r600_query_pc *query = (struct r600_query_pc *)hwquery;
192 memset(result, 0, sizeof(result->batch[0]) * query->num_counters);
200 struct r600_query_pc *query = (struct r600_query_pc *)hwquery;
204 for (i = 0; i < query->num_counters; ++i) {
205 struct r600_pc_counter *counter = &query->counters[i];
230 struct r600_query_pc *query,
234 struct r600_pc_group *group = query->groups;
262 query_shaders = query->shaders & ~R600_PC_SHADERS_WINDOWING;
268 query->shaders = shaders;
271 if (block->flags & R600_PC_BLOCK_SHADER_WINDOWED && !query->shaders) {
272 // A non-zero value in query->shaders ensures that the shader
274 query->shaders = R600_PC_SHADERS_WINDOWING;
290 group->next = query->groups;
291 query->groups = group;
305 struct r600_query_pc *query;
312 query = CALLOC_STRUCT(r600_query_pc);
313 if (!query)
316 query->b.b.ops = &batch_query_ops;
317 query->b.ops = &batch_query_hw_ops;
319 query->num_counters = num_queries;
336 group = get_group_state(screen, query, block, sub_gid);
351 query->b.num_cs_dw_begin = pc->num_start_cs_dwords;
352 query->b.num_cs_dw_end = pc->num_stop_cs_dwords;
354 query->b.num_cs_dw_begin += pc->num_instance_cs_dwords; /* conservative */
355 query->b.num_cs_dw_end += pc->num_instance_cs_dwords;
358 for (group = query->groups; group; group = group->next) {
369 query->b.result_size += sizeof(uint64_t) * instances * group->num_counters;
374 query->b.num_cs_dw_begin += select_dw;
375 query->b.num_cs_dw_end += instances * read_dw;
376 query->b.num_cs_dw_begin += pc->num_instance_cs_dwords; /* conservative */
377 query->b.num_cs_dw_end += instances * pc->num_instance_cs_dwords;
380 if (query->shaders) {
381 if (query->shaders == R600_PC_SHADERS_WINDOWING)
382 query->shaders = 0xffffffff;
383 query->b.num_cs_dw_begin += pc->num_shaders_cs_dwords;
386 /* Map user-supplied query array to result indices */
387 query->counters = CALLOC(num_queries, sizeof(*query->counters));
389 struct r600_pc_counter *counter = &query->counters[i];
398 group = get_group_state(screen, query, block, sub_gid);
416 if (!si_query_hw_init(screen, &query->b))
419 return (struct pipe_query *)query;
422 r600_pc_query_destroy(screen, &query->b.b);