nv50: fix/handle a few more PIPE_CAPs
authorChristoph Bumiller <e0425955@student.tuwien.ac.at>
Sat, 25 Sep 2010 17:34:23 +0000 (19:34 +0200)
committerChristoph Bumiller <e0425955@student.tuwien.ac.at>
Sat, 25 Sep 2010 17:37:09 +0000 (19:37 +0200)
src/gallium/drivers/nv50/nv50_screen.c

index c5115372ed6bea716ba904a42c330c4502666d23..c6bd62df1db160737d82f18a8d9c57ebe86bc603 100644 (file)
@@ -84,6 +84,7 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
        case PIPE_CAP_TWO_SIDED_STENCIL:
                return 1;
        case PIPE_CAP_GLSL:
+       case PIPE_CAP_SM3:
                return 1;
        case PIPE_CAP_ANISOTROPIC_FILTER:
                return 1;
@@ -95,6 +96,8 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
                return 1;
         case PIPE_CAP_TIMER_QUERY:
                return 0;
+       case PIPE_CAP_STREAM_OUTPUT:
+               return 0;
        case PIPE_CAP_TEXTURE_SHADOW_MAP:
                return 1;
        case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
@@ -137,8 +140,8 @@ nv50_screen_get_shader_param(struct pipe_screen *pscreen, unsigned shader,
        switch(shader) {
        case PIPE_SHADER_FRAGMENT:
        case PIPE_SHADER_VERTEX:
-       case PIPE_SHADER_GEOMETRY:
                break;
+       case PIPE_SHADER_GEOMETRY:
        default:
                return 0;
        }
@@ -158,6 +161,8 @@ nv50_screen_get_shader_param(struct pipe_screen *pscreen, unsigned shader,
                        return 64 / 4;
        case PIPE_SHADER_CAP_MAX_CONSTS:
                return 65536 / 16;
+       case PIPE_SHADER_CAP_MAX_CONST_BUFFERS: /* 16 - 1, but not implemented */
+               return 1;
        case PIPE_SHADER_CAP_MAX_ADDRS: /* no spilling atm */
                return 1;
        case PIPE_SHADER_CAP_MAX_PREDS: /* not yet handled */