Mesa (master): gallium/util: (trivial) fix util_clear_render_target

Roland Scheidegger sroland at kemper.freedesktop.org
Fri Feb 24 19:40:26 UTC 2017


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

Author: Roland Scheidegger <sroland at vmware.com>
Date:   Fri Feb 24 18:40:40 2017 +0100

gallium/util: (trivial) fix util_clear_render_target

the format of the rt can be different than the one of the texture, so must
propagate the format explicitly to the helper. Broken since
3f9c5d62441eba38e8b1592aba965ed5db6fd89b (but unused by st/mesa).

---

 src/gallium/auxiliary/util/u_surface.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/src/gallium/auxiliary/util/u_surface.c b/src/gallium/auxiliary/util/u_surface.c
index f2a471d..5abf966 100644
--- a/src/gallium/auxiliary/util/u_surface.c
+++ b/src/gallium/auxiliary/util/u_surface.c
@@ -423,6 +423,7 @@ util_clear_color_texture_helper(struct pipe_transfer *dst_trans,
 static void
 util_clear_color_texture(struct pipe_context *pipe,
                          struct pipe_resource *texture,
+                         enum pipe_format format,
                          const union pipe_color_union *color,
                          unsigned level,
                          unsigned dstx, unsigned dsty, unsigned dstz,
@@ -430,7 +431,6 @@ util_clear_color_texture(struct pipe_context *pipe,
 {
    struct pipe_transfer *dst_trans;
    ubyte *dst_map;
-   enum pipe_format format = texture->format;
 
    dst_map = pipe_transfer_map_3d(pipe,
                                   texture,
@@ -491,16 +491,16 @@ util_clear_render_target(struct pipe_context *pipe,
                                   dx, 0, w, 1,
                                   &dst_trans);
       if (dst_map) {
-         util_clear_color_texture_helper(dst_trans, dst_map, dst->format, color,
-                                         width, height, 1);
+         util_clear_color_texture_helper(dst_trans, dst_map, dst->format,
+                                         color, width, height, 1);
          pipe->transfer_unmap(pipe, dst_trans);
       }
    }
    else {
       unsigned depth = dst->u.tex.last_layer - dst->u.tex.first_layer + 1;
-      util_clear_color_texture(pipe, dst->texture, color, dst->u.tex.level,
-                               dstx, dsty, dst->u.tex.first_layer,
-                               width, height, depth);
+      util_clear_color_texture(pipe, dst->texture, dst->format, color,
+                               dst->u.tex.level, dstx, dsty,
+                               dst->u.tex.first_layer, width, height, depth);
    }
 }
 
@@ -674,7 +674,8 @@ util_clear_texture(struct pipe_context *pipe,
       else
          desc->unpack_rgba_float(color.f, 0, data, 0, 1, 1);
 
-      util_clear_color_texture(pipe, tex, &color, level, box->x, box->y, box->z,
+      util_clear_color_texture(pipe, tex, tex->format, &color, level,
+                               box->x, box->y, box->z,
                                box->width, box->height, box->depth);
    }
 }




More information about the mesa-commit mailing list