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.
This commit is contained in:
José Fonseca
2010-04-22 18:06:05 +01:00
parent 510669cd87
commit 2eea1714fd

View File

@@ -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;
}
}