diff options
author | José Fonseca <[email protected]> | 2010-04-22 18:06:05 +0100 |
---|---|---|
committer | José Fonseca <[email protected]> | 2010-04-22 18:06:05 +0100 |
commit | 2eea1714fdffbd665a2076c7b8fed7b264a42968 (patch) | |
tree | b335b036b05cdbc43ea0d828e66a3d09eb05f22c | |
parent | 510669cd87994b39e50a8ab1ac24110e6a299e4d (diff) |
llvmpipe: Fix resource_is_texture.
It was missing PIPE_BIND_RENDER_TARGET, causing assertion failures for
pure render targets.
Also bind flags are too variable and complex for a good assessment for
whether the resource is a texture or not. Target is more concise.
-rw-r--r-- | src/gallium/drivers/llvmpipe/lp_texture.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c index cee170ec834..4fce02ac713 100644 --- a/src/gallium/drivers/llvmpipe/lp_texture.c +++ b/src/gallium/drivers/llvmpipe/lp_texture.c @@ -55,14 +55,18 @@ static INLINE boolean resource_is_texture(const struct pipe_resource *resource) { - const unsigned tex_binds = (PIPE_BIND_DISPLAY_TARGET | - PIPE_BIND_SCANOUT | - PIPE_BIND_SHARED | - PIPE_BIND_DEPTH_STENCIL | - PIPE_BIND_SAMPLER_VIEW); - const struct llvmpipe_resource *lpr = llvmpipe_resource_const(resource); - - return (lpr->base.bind & tex_binds) ? TRUE : FALSE; + switch (resource->target) { + case PIPE_BUFFER: + return FALSE; + case PIPE_TEXTURE_1D: + case PIPE_TEXTURE_2D: + case PIPE_TEXTURE_3D: + case PIPE_TEXTURE_CUBE: + return TRUE; + default: + assert(0); + return FALSE; + } } |