mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 02:38:04 +02:00
intel: GetBuffer fix
After copy buffer on preGEN6, it is necessary to wait for the blit to complete before returning data to the user. This should fix the piglit test: copy_buffer_coherency (pre-GEN6). Signed-off-by: Ben Widawsky <ben@bwidawsk.net> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
df7859be6b
commit
fa351bd2e0
1 changed files with 6 additions and 1 deletions
|
|
@ -282,12 +282,17 @@ intel_bufferobj_get_subdata(struct gl_context * ctx,
|
||||||
GLvoid * data, struct gl_buffer_object *obj)
|
GLvoid * data, struct gl_buffer_object *obj)
|
||||||
{
|
{
|
||||||
struct intel_buffer_object *intel_obj = intel_buffer_object(obj);
|
struct intel_buffer_object *intel_obj = intel_buffer_object(obj);
|
||||||
|
struct intel_context *intel = intel_context(ctx);
|
||||||
|
|
||||||
assert(intel_obj);
|
assert(intel_obj);
|
||||||
if (intel_obj->sys_buffer)
|
if (intel_obj->sys_buffer)
|
||||||
memcpy(data, (char *)intel_obj->sys_buffer + offset, size);
|
memcpy(data, (char *)intel_obj->sys_buffer + offset, size);
|
||||||
else
|
else {
|
||||||
|
if (drm_intel_bo_references(intel->batch.bo, intel_obj->buffer)) {
|
||||||
|
intel_batchbuffer_flush(intel);
|
||||||
|
}
|
||||||
drm_intel_bo_get_subdata(intel_obj->buffer, offset, size, data);
|
drm_intel_bo_get_subdata(intel_obj->buffer, offset, size, data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue