nouveau: is_format_supported() interface changes
authorBen Skeggs <skeggsb@gmail.com>
Wed, 23 Jul 2008 04:14:55 +0000 (14:14 +1000)
committerBen Skeggs <skeggsb@gmail.com>
Wed, 23 Jul 2008 04:14:55 +0000 (14:14 +1000)
src/gallium/drivers/nv04/nv04_screen.c
src/gallium/drivers/nv10/nv10_screen.c
src/gallium/drivers/nv30/nv30_screen.c
src/gallium/drivers/nv40/nv40_screen.c
src/gallium/drivers/nv50/nv50_screen.c

index 9f34117b8c8bdae5595851e42620523fca2e1916..da09a3a5fe8434959427422483e0a192d0cf6323 100644 (file)
@@ -79,10 +79,11 @@ nv04_screen_get_paramf(struct pipe_screen *screen, int param)
 
 static boolean
 nv04_screen_is_format_supported(struct pipe_screen *screen,
-                               enum pipe_format format, uint type)
+                               enum pipe_format format,
+                               enum pipe_texture_target target,
+                               unsigned tex_usage, unsigned geom_flags)
 {
-       switch (type) {
-       case PIPE_SURFACE:
+       if (tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) {
                switch (format) {
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                case PIPE_FORMAT_R5G6B5_UNORM: 
@@ -91,8 +92,7 @@ nv04_screen_is_format_supported(struct pipe_screen *screen,
                default:
                        break;
                }
-               break;
-       case PIPE_TEXTURE:
+       } else {
                switch (format) {
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                case PIPE_FORMAT_X8R8G8B8_UNORM:
@@ -104,10 +104,7 @@ nv04_screen_is_format_supported(struct pipe_screen *screen,
                default:
                        break;
                }
-               break;
-       default:
-               assert(0);
-       };
+       }
 
        return FALSE;
 }
index 67787d8e9ce5973c647223119af059dcaf2932d1..403f7b98cde0b607f5c054f75871000981b42b0c 100644 (file)
@@ -82,10 +82,11 @@ nv10_screen_get_paramf(struct pipe_screen *screen, int param)
 
 static boolean
 nv10_screen_is_format_supported(struct pipe_screen *screen,
-                               enum pipe_format format, uint type)
+                               enum pipe_format format,
+                               enum pipe_texture_target target,
+                               unsigned tex_usage, unsigned geom_flags)
 {
-       switch (type) {
-       case PIPE_SURFACE:
+       if (tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) {
                switch (format) {
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                case PIPE_FORMAT_R5G6B5_UNORM: 
@@ -95,8 +96,7 @@ nv10_screen_is_format_supported(struct pipe_screen *screen,
                default:
                        break;
                }
-               break;
-       case PIPE_TEXTURE:
+       } else {
                switch (format) {
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                case PIPE_FORMAT_A1R5G5B5_UNORM:
@@ -109,10 +109,7 @@ nv10_screen_is_format_supported(struct pipe_screen *screen,
                default:
                        break;
                }
-               break;
-       default:
-               assert(0);
-       };
+       }
 
        return FALSE;
 }
index b216a703187438b13521e6ba3b86c177265433b7..0ffcd772351036c6537e40a27e3b8cadc6de1bf1 100644 (file)
@@ -86,10 +86,11 @@ nv30_screen_get_paramf(struct pipe_screen *pscreen, int param)
 
 static boolean
 nv30_screen_surface_format_supported(struct pipe_screen *pscreen,
-                                    enum pipe_format format, uint type)
+                                    enum pipe_format format,
+                                    enum pipe_texture_target target,
+                                    unsigned tex_usage, unsigned geom_flags)
 {
-       switch (type) {
-       case PIPE_SURFACE:
+       if (tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) {
                switch (format) {
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                case PIPE_FORMAT_R5G6B5_UNORM: 
@@ -99,8 +100,7 @@ nv30_screen_surface_format_supported(struct pipe_screen *pscreen,
                default:
                        break;
                }
-               break;
-       case PIPE_TEXTURE:
+       } else {
                switch (format) {
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                case PIPE_FORMAT_A1R5G5B5_UNORM:
@@ -116,10 +116,7 @@ nv30_screen_surface_format_supported(struct pipe_screen *pscreen,
                default:
                        break;
                }
-               break;
-       default:
-               assert(0);
-       };
+       }
 
        return FALSE;
 }
index ed0215b4862d53889a6a17439c054931a2cef78b..3872c0a0c9b026d8dbd34eddcece49cc3c88ab42 100644 (file)
@@ -91,10 +91,11 @@ nv40_screen_get_paramf(struct pipe_screen *pscreen, int param)
 
 static boolean
 nv40_screen_surface_format_supported(struct pipe_screen *pscreen,
-                                    enum pipe_format format, uint type)
+                                    enum pipe_format format,
+                                    enum pipe_texture_target target,
+                                    unsigned tex_usage, unsigned geom_flags)
 {
-       switch (type) {
-       case PIPE_SURFACE:
+       if (tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) {
                switch (format) {
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                case PIPE_FORMAT_R5G6B5_UNORM: 
@@ -104,8 +105,7 @@ nv40_screen_surface_format_supported(struct pipe_screen *pscreen,
                default:
                        break;
                }
-               break;
-       case PIPE_TEXTURE:
+       } else {
                switch (format) {
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                case PIPE_FORMAT_A1R5G5B5_UNORM:
@@ -125,10 +125,7 @@ nv40_screen_surface_format_supported(struct pipe_screen *pscreen,
                default:
                        break;
                }
-               break;
-       default:
-               assert(0);
-       };
+       }
 
        return FALSE;
 }
index 2f3cf041d1ce4ac4e78245ec72f22c838b596ea2..996b0b3e8f2a1fec7e0c8dde0a933400d7db9cbf 100644 (file)
 
 static boolean
 nv50_screen_is_format_supported(struct pipe_screen *pscreen,
-                               enum pipe_format format, uint type)
+                               enum pipe_format format,
+                               enum pipe_texture_target target,
+                               unsigned tex_usage, unsigned geom_flags)
 {
-       switch (type) {
-       case PIPE_SURFACE:
+       if (tex_usage & PIPE_TEXTURE_USAGE_RENDER_TARGET) {
                switch (format) {
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                case PIPE_FORMAT_R5G6B5_UNORM:
@@ -47,8 +48,7 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen,
                default:
                        break;
                }
-               break;
-       case PIPE_TEXTURE:
+       } else {
                switch (format) {
                case PIPE_FORMAT_A8R8G8B8_UNORM:
                case PIPE_FORMAT_A1R5G5B5_UNORM:
@@ -62,9 +62,6 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen,
                default:
                        break;
                }
-               break;
-       default:
-               assert(0);
        }
 
        return FALSE;