nvc0: fix writing query results into buffer
We need to mark the range as valid, and validate the resource using a helper to ensure that the buffer status is marked properly. Fixes some CTS pipeline stats query tests, and KHR-GL45.direct_state_access.queries_functional Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu> Tested-by: Karol Herbst <kherbst@redhat.com>
This commit is contained in:
@@ -386,6 +386,12 @@ nvc0_hw_get_query_result_resource(struct nvc0_context *nvc0,
|
||||
nvc0->base.push_cb(&nvc0->base, buf, offset,
|
||||
result_type >= PIPE_QUERY_TYPE_I64 ? 2 : 1,
|
||||
ready);
|
||||
|
||||
util_range_add(&buf->valid_buffer_range, offset,
|
||||
offset + (result_type >= PIPE_QUERY_TYPE_I64 ? 8 : 4));
|
||||
|
||||
nvc0_resource_validate(buf, NOUVEAU_BO_WR);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -473,10 +479,10 @@ nvc0_hw_get_query_result_resource(struct nvc0_context *nvc0,
|
||||
PUSH_DATAh(push, buf->address + offset);
|
||||
PUSH_DATA (push, buf->address + offset);
|
||||
|
||||
if (buf->mm) {
|
||||
nouveau_fence_ref(nvc0->screen->base.fence.current, &buf->fence);
|
||||
nouveau_fence_ref(nvc0->screen->base.fence.current, &buf->fence_wr);
|
||||
}
|
||||
util_range_add(&buf->valid_buffer_range, offset,
|
||||
offset + (result_type >= PIPE_QUERY_TYPE_I64 ? 8 : 4));
|
||||
|
||||
nvc0_resource_validate(buf, NOUVEAU_BO_WR);
|
||||
}
|
||||
|
||||
static const struct nvc0_query_funcs hw_query_funcs = {
|
||||
|
||||
Reference in New Issue
Block a user