mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 21:40:20 +01:00
mesa/st: Finalize the texture before BlitFramebuffer from it.
If the texture hasn't yet been validated, the current tex image contents may have been ignored in favor of the texture's main miptree. Fixes test failure on softpipe and intermittent failures on radeonsi in: https://gitlab.freedesktop.org/mesa/piglit/-/merge_requests/428 Cc: mesa-stable Tested-by: Chia-I Wu <olvaffe@gmail.com> Reviewed-by: Chia-I Wu <olvaffe@gmail.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8091>
This commit is contained in:
parent
5f2166525f
commit
f740af2796
1 changed files with 7 additions and 0 deletions
|
|
@ -39,6 +39,7 @@
|
|||
#include "st_cb_bitmap.h"
|
||||
#include "st_cb_blit.h"
|
||||
#include "st_cb_fbo.h"
|
||||
#include "st_cb_texture.h"
|
||||
#include "st_manager.h"
|
||||
#include "st_scissor.h"
|
||||
#include "st_util.h"
|
||||
|
|
@ -180,6 +181,12 @@ st_BlitFramebuffer(struct gl_context *ctx,
|
|||
blit.mask = PIPE_MASK_RGBA;
|
||||
|
||||
if (srcAtt->Type == GL_TEXTURE) {
|
||||
/* Make sure that the st_texture_object->pt is the current storage for
|
||||
* our miplevel. The finalize would happen at some point anyway, might
|
||||
* as well be now.
|
||||
*/
|
||||
st_finalize_texture(ctx, st->pipe, srcAtt->Texture, srcAtt->CubeMapFace);
|
||||
|
||||
struct st_texture_object *srcObj = st_texture_object(srcAtt->Texture);
|
||||
|
||||
if (!srcObj || !srcObj->pt) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue