r300g: fix a crash when resolving into an sRGB texture
authorMarek Olšák <marek.olsak@amd.com>
Tue, 24 Feb 2015 22:15:59 +0000 (23:15 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 9 Mar 2015 20:03:49 +0000 (21:03 +0100)
Cc: 10.5 10.4 <mesa-stable@lists.freedesktop.org>
src/gallium/drivers/r300/r300_texture.c

index e85a818a33a5d644740bfd3d813b50944cda753a..6c01c0d21e4a0490135d6d3d3797e53323273318 100644 (file)
@@ -938,14 +938,16 @@ static void r300_texture_setup_fb_state(struct r300_surface *surf)
         surf->pitch_zmask = tex->tex.zmask_stride_in_pixels[level];
         surf->pitch_hiz = tex->tex.hiz_stride_in_pixels[level];
     } else {
+        enum pipe_format format = util_format_linear(surf->base.format);
+
         surf->pitch =
                 stride |
-                r300_translate_colorformat(surf->base.format) |
+                r300_translate_colorformat(format) |
                 R300_COLOR_TILE(tex->tex.macrotile[level]) |
                 R300_COLOR_MICROTILE(tex->tex.microtile);
-        surf->format = r300_translate_out_fmt(surf->base.format);
+        surf->format = r300_translate_out_fmt(format);
         surf->colormask_swizzle =
-            r300_translate_colormask_swizzle(surf->base.format);
+            r300_translate_colormask_swizzle(format);
         surf->pitch_cmask = tex->tex.cmask_stride_in_pixels;
     }
 }