Mesa (master): mesa/st: Avoid spurious transfers when creating fbo textures without image data.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Thu Apr 14 11:52:27 PDT 2011


Module: Mesa
Branch: master
Commit: 6881cfc7f7b425f52ae631936cc53d409f208fa1
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6881cfc7f7b425f52ae631936cc53d409f208fa1

Author: José Fonseca <jfonseca at vmware.com>
Date:   Thu Apr 14 15:22:49 2011 +0100

mesa/st: Avoid spurious transfers when creating fbo textures without image data.

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 at vmware.com>

---

 src/mesa/state_tracker/st_cb_texture.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_texture.c b/src/mesa/state_tracker/st_cb_texture.c
index 914c06b..43c24ae 100644
--- a/src/mesa/state_tracker/st_cb_texture.c
+++ b/src/mesa/state_tracker/st_cb_texture.c
@@ -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;



More information about the mesa-commit mailing list