From 47e61426586bb9f9f40950e9c4372e4f12bb9ed6 Mon Sep 17 00:00:00 2001 From: José Fonseca Date: Sat, 3 Apr 2010 00:51:19 +0100 Subject: util: Revert unsolicited, untested, unreviewed, and broken changes to format support. Not all is bad, but I'm afraid I'll have to throw the baby with the water given they are all tied to together. --- src/gallium/drivers/softpipe/sp_screen.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'src/gallium/drivers/softpipe/sp_screen.c') diff --git a/src/gallium/drivers/softpipe/sp_screen.c b/src/gallium/drivers/softpipe/sp_screen.c index ddc53b336fb..be64048abfc 100644 --- a/src/gallium/drivers/softpipe/sp_screen.c +++ b/src/gallium/drivers/softpipe/sp_screen.c @@ -27,7 +27,6 @@ #include "util/u_memory.h" -#include "util/u_format.h" #include "util/u_format_s3tc.h" #include "pipe/p_defines.h" #include "pipe/p_screen.h" @@ -156,9 +155,25 @@ softpipe_is_format_supported( struct pipe_screen *screen, target == PIPE_TEXTURE_3D || target == PIPE_TEXTURE_CUBE); - if(!util_format_is_supported(format)) + switch(format) { + case PIPE_FORMAT_YUYV: + case PIPE_FORMAT_UYVY: return FALSE; + case PIPE_FORMAT_DXT1_RGB: + case PIPE_FORMAT_DXT1_RGBA: + case PIPE_FORMAT_DXT3_RGBA: + case PIPE_FORMAT_DXT5_RGBA: + return util_format_s3tc_enabled; + + case PIPE_FORMAT_Z32_FLOAT: + case PIPE_FORMAT_NONE: + return FALSE; + + default: + break; + } + if(tex_usage & (PIPE_TEXTURE_USAGE_DISPLAY_TARGET | PIPE_TEXTURE_USAGE_SCANOUT | PIPE_TEXTURE_USAGE_SHARED)) { @@ -166,6 +181,8 @@ softpipe_is_format_supported( struct pipe_screen *screen, return FALSE; } + /* XXX: this is often a lie. Pull in logic from llvmpipe to fix. + */ return TRUE; } @@ -224,6 +241,8 @@ softpipe_create_screen(struct sw_winsys *winsys) screen->base.context_create = softpipe_create_context; screen->base.flush_frontbuffer = softpipe_flush_frontbuffer; + util_format_s3tc_init(); + softpipe_init_screen_texture_funcs(&screen->base); softpipe_init_screen_buffer_funcs(&screen->base); softpipe_init_screen_fence_funcs(&screen->base); -- cgit v1.2.3