Mesa (master): r300g: re-order caps

Marek Olšák mareko at kemper.freedesktop.org
Thu May 13 00:47:58 UTC 2010


Module: Mesa
Branch: master
Commit: 0ccc1367d76f1f40a0410c7c18fe41134cf9a024
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=0ccc1367d76f1f40a0410c7c18fe41134cf9a024

Author: Marek Olšák <maraeo at gmail.com>
Date:   Thu May 13 02:28:49 2010 +0200

r300g: re-order caps

---

 src/gallium/drivers/r300/r300_screen.c |   68 +++++++++++++-------------------
 1 files changed, 28 insertions(+), 40 deletions(-)

diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c
index 1a3454c..087a25e 100644
--- a/src/gallium/drivers/r300/r300_screen.c
+++ b/src/gallium/drivers/r300/r300_screen.c
@@ -86,15 +86,9 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
     is_r400 = FALSE;
 
     switch (param) {
-        case PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS:
-        case PIPE_CAP_MAX_COMBINED_SAMPLERS:
-            return r300screen->caps.num_tex_units;
+        /* Supported features (boolean caps). */
         case PIPE_CAP_NPOT_TEXTURES:
-            /* XXX enable now to get GL2.1 API,
-             * figure out later how to emulate this */
-            return 1;
         case PIPE_CAP_TWO_SIDED_STENCIL:
-            return 1;
         case PIPE_CAP_GLSL:
             /* I'll be frank. This is a lie.
              *
@@ -111,53 +105,47 @@ static int r300_get_param(struct pipe_screen* pscreen, enum pipe_cap param)
              *
              * ~ C.
              */
-            return 1;
-        case PIPE_CAP_DUAL_SOURCE_BLEND:
-            return 0;
         case PIPE_CAP_ANISOTROPIC_FILTER:
-            return 1;
         case PIPE_CAP_POINT_SPRITE:
-            return 1;
-        case PIPE_CAP_MAX_RENDER_TARGETS:
-            return 4;
         case PIPE_CAP_OCCLUSION_QUERY:
-            return 1;
         case PIPE_CAP_TEXTURE_SHADOW_MAP:
-            return 1;
-        case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
-        case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
-        case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
-            if (is_r500) {
-                /* 13 == 4096 */
-                return 13;
-            } else {
-                /* 12 == 2048 */
-                return 12;
-            }
         case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
-            return 1;
         case PIPE_CAP_TEXTURE_MIRROR_REPEAT:
+        case PIPE_CAP_BLEND_EQUATION_SEPARATE:
             return 1;
-        case PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS:
-            return 0;
+
+        /* Unsupported features (boolean caps). */
+        case PIPE_CAP_DUAL_SOURCE_BLEND:
         case PIPE_CAP_TGSI_CONT_SUPPORTED:
+        case PIPE_CAP_INDEP_BLEND_ENABLE:
+        case PIPE_CAP_INDEP_BLEND_FUNC:
             return 0;
-        case PIPE_CAP_BLEND_EQUATION_SEPARATE:
-            return 1;
+
+        /* Texturing. */
+        case PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS:
+        case PIPE_CAP_MAX_COMBINED_SAMPLERS:
+            return r300screen->caps.num_tex_units;
+        case PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS:
+            return 0;
+        case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
+        case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
+        case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
+            /* 13 == 4096, 12 == 2048 */
+            return is_r500 ? 13 : 12;
+
+        /* Render targets. */
+        case PIPE_CAP_MAX_RENDER_TARGETS:
+            return 4;
+
+        /* General shader limits and features. */
         case PIPE_CAP_SM3:
-            if (is_r500) {
-                return 1;
-            } else {
-                return 0;
-            }
+            return is_r500 ? 1 : 0;
         case PIPE_CAP_MAX_CONST_BUFFERS:
             return 1;
         case PIPE_CAP_MAX_CONST_BUFFER_SIZE:
             return 256;
-        case PIPE_CAP_INDEP_BLEND_ENABLE:
-            return 0;
-        case PIPE_CAP_INDEP_BLEND_FUNC:
-            return 0;
+
+        /* Fragment coordinate conventions. */
         case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT:
         case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
 	    return 1;




More information about the mesa-commit mailing list