i965: Use brw_batch_references in tex_busy check

If the batch references the buffer, we will have to flush the batch
immediately before mapping it, at which point it will be busy.

(This bug has existed for a long time...even going back to BLT-era...)

Fixes: 779923194c ("i965/tex_image: Use meta for instead of the blitter PBO TexImage and GetTexImage")
Fixes: d5d4ba9139 ("i965/tex_subimage: use meta instead of the blitter for PBO TexSubImage")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3616>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3616>
(cherry picked from commit bdba744d70)
This commit is contained in:
Kenneth Graunke 2020-01-29 00:22:02 -08:00 committed by Dylan Baker
parent ce0bea311b
commit 9d9c92b8a6
2 changed files with 3 additions and 2 deletions

View file

@ -13,7 +13,7 @@
"description": "i965: Use brw_batch_references in tex_busy check",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "779923194c65ed3a588d3503cc5d53e1945ada0f"
},

View file

@ -325,7 +325,8 @@ intel_upload_tex(struct gl_context * ctx,
if (pixels == NULL && !_mesa_is_bufferobj(packing->BufferObj))
return;
bool tex_busy = mt && brw_bo_busy(mt->bo);
bool tex_busy = mt &&
(brw_batch_references(&brw->batch, mt->bo) || brw_bo_busy(mt->bo));
if (_mesa_is_bufferobj(packing->BufferObj) || tex_busy ||
mt->aux_usage == ISL_AUX_USAGE_CCS_E) {