mesa/st: Avoid spurious transfers when creating fbo textures without image data.
authorJosé Fonseca <jfonseca@vmware.com>
Thu, 14 Apr 2011 14:22:49 +0000 (15:22 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Thu, 14 Apr 2011 18:51:45 +0000 (19:51 +0100)
We could actually try to do an early return both for gallium textures and
malloc memory textures, but I'm not sure exactly which situations
stImage->pt is NULL, and whether texImage->Data == NULL would be acceptible
or not.

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

index 914c06b7023a1c5b552d15e71cbd3ff89403ebd0..43c24ae957fb2460b787e4d14e75ae79833ba237 100644 (file)
@@ -600,7 +600,12 @@ st_TexImage(struct gl_context * ctx,
     * memory or malloc space for it.
     */
    if (stImage->pt) {
-      /* Store the image in the gallium texture memory buffer */
+      if (!pixels) {
+         /* We've allocated texture resource, but have no pixel data - all done. */
+         goto done;
+      }
+
+      /* Store the image in the gallium transfer object */
       if (format == GL_DEPTH_COMPONENT &&
           util_format_is_depth_and_stencil(stImage->pt->format))
          transfer_usage = PIPE_TRANSFER_READ_WRITE;