summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2011-09-22 17:01:18 +0200
committerMichel Dänzer <michel@daenzer.net>2011-09-22 17:01:18 +0200
commitde414f491526610bb260c73805c81ba413388e20 (patch)
treef7a19c78dfcc3b094550fd1d3f2ba2781c626734
parent4beb8f9e9d0d45d64a9d60ef48ede95b4723c9a5 (diff)
st/mesa: Finalize texture on render-to-texture.
This makes sure that stObj->pt exists and is up to date. Fixes https://bugs.freedesktop.org/show_bug.cgi?id=39193 and piglit fbo-incomplete-texture-03. Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Reviewed-by: Brian Paul <brianp@vmware.com> NOTE: This is a candidate for the 7.11 branch.
-rw-r--r--src/mesa/state_tracker/st_cb_fbo.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mesa/state_tracker/st_cb_fbo.c b/src/mesa/state_tracker/st_cb_fbo.c
index d43f67ac98f..05139ec5aab 100644
--- a/src/mesa/state_tracker/st_cb_fbo.c
+++ b/src/mesa/state_tracker/st_cb_fbo.c
@@ -47,6 +47,7 @@
#include "st_context.h"
#include "st_cb_fbo.h"
#include "st_cb_flush.h"
+#include "st_cb_texture.h"
#include "st_format.h"
#include "st_texture.h"
#include "st_manager.h"
@@ -340,15 +341,17 @@ st_render_texture(struct gl_context *ctx,
struct pipe_context *pipe = st->pipe;
struct st_renderbuffer *strb;
struct gl_renderbuffer *rb;
- struct pipe_resource *pt = st_get_texobj_resource(att->Texture);
+ struct pipe_resource *pt;
struct st_texture_object *stObj;
const struct gl_texture_image *texImage;
struct pipe_surface surf_tmpl;
- /* When would this fail? Perhaps assert? */
- if (!pt)
+ if (!st_finalize_texture(ctx, pipe, att->Texture))
return;
+ pt = st_get_texobj_resource(att->Texture);
+ assert(pt);
+
/* get pointer to texture image we're rendeing to */
texImage = _mesa_get_attachment_teximage(att);