From: Roland Scheidegger Date: Fri, 1 Mar 2013 14:32:03 +0000 (+0100) Subject: llvmpipe: don't assert on illegal surface creation. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2ef13e7c557eb5b5d017e25ff7c15b2912996c6f;p=mesa.git llvmpipe: don't assert on illegal surface creation. Since c8eb2d0e829d0d2aea6a982620da0d3cfb5982e2 llvmpipe checks if it's actually legal to create a surface. The opengl state tracker doesn't quite obey this so for now just warn instead of assert. Also warn instead of disabled assert when creating sampler views (same reasoning). Addresses https://bugs.freedesktop.org/show_bug.cgi?id=61647. Reviewed-by: Jose Fonseca --- diff --git a/src/gallium/drivers/llvmpipe/lp_state_sampler.c b/src/gallium/drivers/llvmpipe/lp_state_sampler.c index 3b31d4ff5d5..7441973bda2 100644 --- a/src/gallium/drivers/llvmpipe/lp_state_sampler.c +++ b/src/gallium/drivers/llvmpipe/lp_state_sampler.c @@ -218,9 +218,8 @@ llvmpipe_create_sampler_view(struct pipe_context *pipe, * XXX we REALLY want to see the correct bind flag here but the OpenGL * state tracker can't guarantee that at least for texture buffer objects. */ -#if 0 - assert(texture->bind & PIPE_BIND_SAMPLER_VIEW); -#endif + if (!(texture->bind & PIPE_BIND_SAMPLER_VIEW)) + debug_printf("Illegal sampler view creation without bind flag\n"); if (view) { *view = *templ; diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c index e4ae3c1b65f..9de05e76926 100644 --- a/src/gallium/drivers/llvmpipe/lp_texture.c +++ b/src/gallium/drivers/llvmpipe/lp_texture.c @@ -577,7 +577,8 @@ llvmpipe_create_surface(struct pipe_context *pipe, struct pipe_surface *ps; assert(surf_tmpl->u.tex.level <= pt->last_level); - assert(pt->bind & (PIPE_BIND_DEPTH_STENCIL | PIPE_BIND_RENDER_TARGET)); + if (!(pt->bind & (PIPE_BIND_DEPTH_STENCIL | PIPE_BIND_RENDER_TARGET))) + debug_printf("Illegal surface creation without bind flag\n"); ps = CALLOC_STRUCT(pipe_surface); if (ps) {