st/mesa: fix texture buffer objects
authorMarek Olšák <maraeo@gmail.com>
Tue, 12 Feb 2013 20:00:43 +0000 (21:00 +0100)
committerMarek Olšák <maraeo@gmail.com>
Wed, 13 Feb 2013 15:38:19 +0000 (16:38 +0100)
Broken by 624528834f53f54c7a934f929769b7e6b230a0b1.

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

index 28327bc..fc2d690 100644 (file)
@@ -234,11 +234,17 @@ update_single_texture(struct st_context *st,
    }
 
    /* Determine the format of the texture sampler view */
-   view_format = stObj->pt->format;
+   if (texObj->Target == GL_TEXTURE_BUFFER) {
+      view_format =
+         st_mesa_format_to_pipe_format(stObj->base._BufferObjectFormat);
+   }
+   else {
+      view_format = stObj->pt->format;
 
-   /* If sRGB decoding is off, use the linear format */
-   if (samp->sRGBDecode == GL_SKIP_DECODE_EXT) {
-      view_format = util_format_linear(view_format);
+      /* If sRGB decoding is off, use the linear format */
+      if (samp->sRGBDecode == GL_SKIP_DECODE_EXT) {
+         view_format = util_format_linear(view_format);
+      }
    }
 
    /* if sampler view has changed dereference it */