Revert "gallium: move setup of dest_surface in do_copy_texsubimage()"
authorMichel Dänzer <michel@tungstengraphics.com>
Wed, 7 May 2008 07:46:28 +0000 (08:46 +0100)
committerMichel Dänzer <michel@tungstengraphics.com>
Wed, 7 May 2008 07:46:28 +0000 (08:46 +0100)
This reverts commit f7dbd18371f9cb6686b6a97642b3ca5577e83472.

Looks like an accidental revert of commit
650c57f19398800dfdcf357b6e9ec7b68bfa34f1.

src/mesa/state_tracker/st_cb_texture.c

index 3723b91210859310c32ae5e6a5d6e0d8f802cd4c..3206215b2ef743f76213ff661e5d70f28f736414 100644 (file)
@@ -1137,7 +1137,6 @@ do_copy_texsubimage(GLcontext *ctx,
    struct st_renderbuffer *strb;
    struct pipe_context *pipe = ctx->st->pipe;
    struct pipe_screen *screen = pipe->screen;
-   struct pipe_surface *dest_surface;
    uint dest_format, src_format;
    uint do_flip = FALSE;
    GLboolean use_fallback = GL_TRUE;
@@ -1168,13 +1167,7 @@ do_copy_texsubimage(GLcontext *ctx,
    src_format = strb->surface->format;
    dest_format = stImage->pt->format;
 
-   dest_surface = screen->get_tex_surface(screen, stImage->pt, stImage->face,
-                                          stImage->level, destZ,
-                                          PIPE_BUFFER_USAGE_CPU_WRITE);
-
-   if (ctx->_ImageTransferState == 0x0 &&
-       strb->surface->buffer &&
-       dest_surface->buffer) {
+   if (ctx->_ImageTransferState == 0x0) {
       /* do blit-style copy */
 
       /* XXX may need to invert image depending on window
@@ -1197,6 +1190,14 @@ do_copy_texsubimage(GLcontext *ctx,
                         x, y + height, dstx, dsty, width, height,
                         GL_COPY); /* ? */
 #else
+      struct pipe_surface *dest_surface;
+
+      dest_surface = screen->get_tex_surface(screen, stImage->pt, stImage->face,
+                                             stImage->level, destZ,
+                                             PIPE_BUFFER_USAGE_GPU_WRITE);
+
+      assert(strb->surface->buffer);
+      assert(dest_surface->buffer);
 
       if (src_format == dest_format) {
           pipe->surface_copy(pipe,
@@ -1224,6 +1225,8 @@ do_copy_texsubimage(GLcontext *ctx,
                           0.0, PIPE_TEX_MIPFILTER_NEAREST);
          use_fallback = GL_FALSE;
       }
+
+      pipe_surface_reference(&dest_surface, NULL);
 #endif
    }
 
@@ -1234,8 +1237,6 @@ do_copy_texsubimage(GLcontext *ctx,
                                 srcX, srcY, width, height);
    }
 
-   pipe_surface_reference(&dest_surface, NULL);
-
    if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
       ctx->Driver.GenerateMipmap(ctx, target, texObj);
    }