Lines Matching defs:query
85 struct virgl_query *query = virgl_query(q);
88 handle = query->handle;
96 struct virgl_query *query;
99 query = CALLOC_STRUCT(virgl_query);
100 if (!query)
103 query->buf = (struct virgl_resource *)pipe_buffer_create(ctx->screen, PIPE_BIND_CUSTOM,
105 if (!query->buf) {
106 FREE(query);
111 query->type = pipe_to_virgl_query(query_type);
112 query->index = index;
113 query->handle = handle;
114 query->buf->clean = FALSE;
115 virgl_encoder_create_query(vctx, handle, query->type, index, query->buf, 0);
117 return (struct pipe_query *)query;
124 struct virgl_query *query = virgl_query(q);
126 virgl_encode_delete_object(vctx, query->handle, VIRGL_OBJECT_QUERY);
128 pipe_resource_reference((struct pipe_resource **)&query->buf, NULL);
129 FREE(query);
136 struct virgl_query *query = virgl_query(q);
138 query->buf->clean = FALSE;
139 virgl_encoder_begin_query(vctx, query->handle);
147 struct virgl_query *query = virgl_query(q);
152 virgl_transfer_inline_write(ctx, &query->buf->u.b, 0, PIPE_TRANSFER_WRITE,
156 virgl_encoder_end_query(vctx, query->handle);
166 struct virgl_query *query = virgl_query(q);
170 /* ask host for query result */
171 if (!query->result_gotten_sent) {
172 query->result_gotten_sent = 1;
173 virgl_encoder_get_query_result(vctx, query->handle, 0);
180 host_state = pipe_buffer_map(ctx, &query->buf->u.b,
191 if (query->type == PIPE_QUERY_TIMESTAMP || query->type == PIPE_QUERY_TIME_ELAPSED)
197 query->result_gotten_sent = 0;