r300g: disable ARB_texture_swizzle if S3TC is enabled on r3xx-only
authorMarek Olšák <maraeo@gmail.com>
Wed, 1 Dec 2010 21:49:02 +0000 (22:49 +0100)
committerMarek Olšák <maraeo@gmail.com>
Wed, 1 Dec 2010 21:54:05 +0000 (22:54 +0100)
r3xx cannot swizzle compressed textures. r4xx+ is unaffected.

NOTE: This is a candidate for the 7.9 branch.

src/gallium/drivers/r300/r300_screen.c

index 85de60df0f4781b9c6de08074badccb604955653..09981cb26b83372f44dc33a7ec0ef7cb72aef0e3 100644 (file)
@@ -116,8 +116,9 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
         case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
         case PIPE_CAP_TEXTURE_MIRROR_REPEAT:
         case PIPE_CAP_BLEND_EQUATION_SEPARATE:
-        case PIPE_CAP_TEXTURE_SWIZZLE:
             return 1;
+        case PIPE_CAP_TEXTURE_SWIZZLE:
+            return util_format_s3tc_enabled ? r300screen->caps.dxtc_swizzle : 1;
 
         /* Unsupported features (boolean caps). */
         case PIPE_CAP_TIMER_QUERY: