Mesa (master): llvmpipe: fix bogus assertions for buffer surfaces

Roland Scheidegger sroland at kemper.freedesktop.org
Sat Jun 1 18:04:20 UTC 2013


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

Author: Roland Scheidegger <sroland at vmware.com>
Date:   Sat Jun  1 16:48:03 2013 +0200

llvmpipe: fix bogus assertions for buffer surfaces

One of the assertion made no sense for buffer rendertargets
(due to the union), so drop it. (The same assertion is present already in
the path for texture surfaces later.).

v2: make assertion completely accurate (suggested by Jose).

Reviewed-by: Jose Fonseca <jfonseca at vmware.com>

---

 src/gallium/drivers/llvmpipe/lp_texture.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c
index 56eb499..22f952c 100644
--- a/src/gallium/drivers/llvmpipe/lp_texture.c
+++ b/src/gallium/drivers/llvmpipe/lp_texture.c
@@ -477,7 +477,6 @@ llvmpipe_create_surface(struct pipe_context *pipe,
 {
    struct pipe_surface *ps;
 
-   assert(surf_tmpl->u.tex.level <= pt->last_level);
    if (!(pt->bind & (PIPE_BIND_DEPTH_STENCIL | PIPE_BIND_RENDER_TARGET)))
       debug_printf("Illegal surface creation without bind flag\n");
 
@@ -505,7 +504,8 @@ llvmpipe_create_surface(struct pipe_context *pipe,
          ps->u.buf.first_element = surf_tmpl->u.buf.first_element;
          ps->u.buf.last_element = surf_tmpl->u.buf.last_element;
          assert(ps->u.buf.first_element <= ps->u.buf.last_element);
-         assert(ps->u.buf.last_element < ps->width);
+         assert(util_format_get_blocksize(surf_tmpl->format) *
+                (ps->u.buf.last_element + 1) <= pt->width0);
       }
    }
    return ps;




More information about the mesa-commit mailing list