Lines Matching refs:query

88    struct virgl_query *query = virgl_query(q);
91 handle = query->handle;
99 struct virgl_query *query;
101 query = CALLOC_STRUCT(virgl_query);
102 if (!query)
105 query->buf = (struct virgl_resource *)
108 if (!query->buf) {
109 FREE(query);
113 query->handle = virgl_object_assign_handle();
114 query->result_size = (query_type == PIPE_QUERY_TIMESTAMP ||
117 util_range_add(&query->buf->b, &query->buf->valid_buffer_range, 0,
119 virgl_resource_dirty(query->buf, 0);
121 virgl_encoder_create_query(vctx, query->handle,
122 pipe_to_virgl_query(query_type), index, query->buf, 0);
124 return (struct pipe_query *)query;
131 struct virgl_query *query = virgl_query(q);
133 virgl_encode_delete_object(vctx, query->handle, VIRGL_OBJECT_QUERY);
135 pipe_resource_reference((struct pipe_resource **)&query->buf, NULL);
136 FREE(query);
143 struct virgl_query *query = virgl_query(q);
145 virgl_encoder_begin_query(vctx, query->handle);
155 struct virgl_query *query = virgl_query(q);
158 host_state = vs->vws->resource_map(vs->vws, query->buf->hw_res);
163 query->ready = false;
165 virgl_encoder_end_query(vctx, query->handle);
168 virgl_encoder_get_query_result(vctx, query->handle, 0);
169 vs->vws->emit_res(vs->vws, vctx->cbuf, query->buf->hw_res, false);
179 struct virgl_query *query = virgl_query(q);
181 if (!query->ready) {
187 if (vs->vws->res_is_referenced(vs->vws, vctx->cbuf, query->buf->hw_res))
191 vs->vws->resource_wait(vs->vws, query->buf->hw_res);
192 else if (vs->vws->resource_is_busy(vs->vws, query->buf->hw_res))
195 host_state = vs->vws->resource_map(vs->vws, query->buf->hw_res);
212 host_state = pipe_buffer_map(ctx, &query->buf->b,
216 if (query->result_size == 8)
217 query->result = host_state->result;
219 query->result = (uint32_t) host_state->result;
224 query->ready = true;
227 result->u64 = query->result;
247 struct virgl_query *query = virgl_query(q);
250 virgl_encode_get_query_result_qbo(vctx, query->handle, qbo, (flags & PIPE_QUERY_WAIT), result_type, offset, index);