summaryrefslogtreecommitdiff
path: root/src/gallium
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2010-04-22 18:22:22 +0100
committerJosé Fonseca <jfonseca@vmware.com>2010-04-22 18:42:03 +0100
commit8bee4c7718a3bd57e3d99f0913d9081cd13fe5fd (patch)
tree626a60bd7b35ecf53f6fae6c4e3311bfde540711 /src/gallium
parent50d77c79fbcdf6a33691bfa120d54528d28091a4 (diff)
llvmpipe: Use resource_is_texture() consistently.
Otherwise slightly difference order causes assertion failures. Also remove mentions of PIPE_BIND_SCANOUT/PIPE_BIND_SHARED. They are not propoer bind flags and will likely be deprecated. If surfaces should be passed to the winsys then they should have the DISPLAY_TARGET flag set, which is a proper bind flag.
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_screen.c4
-rw-r--r--src/gallium/drivers/llvmpipe/lp_texture.c37
2 files changed, 16 insertions, 25 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
index f453b9fe5a..7d2cd0c767 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -194,9 +194,7 @@ llvmpipe_is_format_supported( struct pipe_screen *_screen,
return FALSE;
}
- if(tex_usage & (PIPE_BIND_DISPLAY_TARGET |
- PIPE_BIND_SCANOUT |
- PIPE_BIND_SHARED)) {
+ if(tex_usage & PIPE_BIND_DISPLAY_TARGET) {
if(!winsys->is_displaytarget_format_supported(winsys, tex_usage, format))
return FALSE;
}
diff --git a/src/gallium/drivers/llvmpipe/lp_texture.c b/src/gallium/drivers/llvmpipe/lp_texture.c
index 4fce02ac71..336a4e4c01 100644
--- a/src/gallium/drivers/llvmpipe/lp_texture.c
+++ b/src/gallium/drivers/llvmpipe/lp_texture.c
@@ -193,20 +193,20 @@ llvmpipe_resource_create(struct pipe_screen *_screen,
assert(lpr->base.bind);
- if (lpr->base.bind & (PIPE_BIND_DISPLAY_TARGET |
- PIPE_BIND_SCANOUT |
- PIPE_BIND_SHARED)) {
- /* displayable surface */
- if (!llvmpipe_displaytarget_layout(screen, lpr))
- goto fail;
- assert(lpr->layout[0][0] == LP_TEX_LAYOUT_NONE);
- }
- else if (lpr->base.bind & (PIPE_BIND_SAMPLER_VIEW |
- PIPE_BIND_DEPTH_STENCIL)) {
- /* texture map */
- if (!llvmpipe_texture_layout(screen, lpr))
- goto fail;
- assert(lpr->layout[0][0] == LP_TEX_LAYOUT_NONE);
+ if (resource_is_texture(&lpr->base)) {
+ if (lpr->base.bind & PIPE_BIND_DISPLAY_TARGET) {
+ /* displayable surface */
+ if (!llvmpipe_displaytarget_layout(screen, lpr))
+ goto fail;
+ assert(lpr->layout[0][0] == LP_TEX_LAYOUT_NONE);
+ }
+ else {
+ /* texture map */
+ if (!llvmpipe_texture_layout(screen, lpr))
+ goto fail;
+ assert(lpr->layout[0][0] == LP_TEX_LAYOUT_NONE);
+ }
+ assert(lpr->layout[0]);
}
else {
/* other data (vertex buffer, const buffer, etc) */
@@ -221,10 +221,6 @@ llvmpipe_resource_create(struct pipe_screen *_screen,
goto fail;
}
- if (resource_is_texture(&lpr->base)) {
- assert(lpr->layout[0]);
- }
-
lpr->id = id_counter++;
return &lpr->base;
@@ -393,10 +389,7 @@ llvmpipe_resource_data(struct pipe_resource *resource)
{
struct llvmpipe_resource *lpr = llvmpipe_resource(resource);
- assert((lpr->base.bind & (PIPE_BIND_DISPLAY_TARGET |
- PIPE_BIND_SCANOUT |
- PIPE_BIND_SHARED |
- PIPE_BIND_SAMPLER_VIEW)) == 0);
+ assert(!resource_is_texture(resource));
return lpr->data;
}