st: Don't try to finalize the texture in st_render_texture().
authorEric Anholt <eric@anholt.net>
Tue, 27 Mar 2018 22:39:49 +0000 (15:39 -0700)
committerEric Anholt <eric@anholt.net>
Thu, 29 Mar 2018 00:48:41 +0000 (17:48 -0700)
We can't necessarily finalize the texture at this point if we're rendering
to a texture image whose format is different from the baselevel's format.
This was introduced as a fix for fbo-incomplete-texture-03 in
de414f491526610bb260c73805c81ba413388e20, but the later fix for vmware on
that testcase in 95d5c48f68b598cfa6db25f44aac52b3e11403cc made it
unnecessary.

Fixes assertion failures in util_resource_copy_region() in
KHR-GLES3.copy_tex_image_conversions.forbidden.* when trying to finalize
an R8 texture image to the RG8 texture object's pt.

Reviewed-by: Brian Paul <brianp@vmware.com>
src/mesa/state_tracker/st_cb_fbo.c

index 02ae8e1380e3fed7cd1652993d097fd76cff2fae..f859133e399e66e5d0b9c4c010464a8d26c30cdf 100644 (file)
@@ -509,14 +509,10 @@ st_render_texture(struct gl_context *ctx,
                   struct gl_renderbuffer_attachment *att)
 {
    struct st_context *st = st_context(ctx);
-   struct pipe_context *pipe = st->pipe;
    struct gl_renderbuffer *rb = att->Renderbuffer;
    struct st_renderbuffer *strb = st_renderbuffer(rb);
    struct pipe_resource *pt;
 
-   if (!st_finalize_texture(ctx, pipe, att->Texture, att->CubeMapFace))
-      return;
-
    pt = get_teximage_resource(att->Texture,
                               att->CubeMapFace,
                               att->TextureLevel);