radeon: Fix flushing before writing a teximage's BO when !t->bo.
Before, if we ended up here without a BO for our image, but did choose a miptree that had active rendering in the command buffer, our teximage data would jump ahead of the rendering using the old texture contents. This showed up as breakage in gen-teximage and friends in the following commit. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
This commit is contained in:
parent
6dbad425bc
commit
4990e7e9fb
|
@ -787,18 +787,6 @@ static void radeon_teximage(
|
|||
radeon_print(RADEON_TEXTURE, RADEON_NORMAL,
|
||||
"%s %dd: texObj %p, texImage %p, face %d, level %d\n",
|
||||
__func__, dims, texObj, texImage, face, level);
|
||||
{
|
||||
struct radeon_bo *bo;
|
||||
bo = !image->mt ? image->bo : image->mt->bo;
|
||||
if (bo && radeon_bo_is_referenced_by_cs(bo, rmesa->cmdbuf.cs)) {
|
||||
radeon_print(RADEON_TEXTURE, RADEON_VERBOSE,
|
||||
"%s Calling teximage for texture that is "
|
||||
"queued for GPU processing.\n",
|
||||
__func__);
|
||||
radeon_firevertices(rmesa);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
t->validated = GL_FALSE;
|
||||
|
||||
|
@ -820,6 +808,18 @@ static void radeon_teximage(
|
|||
}
|
||||
}
|
||||
|
||||
{
|
||||
struct radeon_bo *bo;
|
||||
bo = !image->mt ? image->bo : image->mt->bo;
|
||||
if (bo && radeon_bo_is_referenced_by_cs(bo, rmesa->cmdbuf.cs)) {
|
||||
radeon_print(RADEON_TEXTURE, RADEON_VERBOSE,
|
||||
"%s Calling teximage for texture that is "
|
||||
"queued for GPU processing.\n",
|
||||
__func__);
|
||||
radeon_firevertices(rmesa);
|
||||
}
|
||||
}
|
||||
|
||||
/* Upload texture image; note that the spec allows pixels to be NULL */
|
||||
if (compressed) {
|
||||
pixels = _mesa_validate_pbo_compressed_teximage(
|
||||
|
|
Loading…
Reference in New Issue