nv50: report some supported formats to keep the state tracker from asserting.
[mesa.git] / src / gallium / drivers / nv50 / nv50_screen.c
index ff4aca81a5a5c93e18c2387055ae90d3516dfafc..e4ca72c717123ecade6bbd5386cd4e063e86f574 100644 (file)
@@ -14,6 +14,30 @@ static boolean
 nv50_screen_is_format_supported(struct pipe_screen *pscreen,
                                enum pipe_format format, uint type)
 {
+       switch (type) {
+       case PIPE_SURFACE:
+               switch (format) {
+               case PIPE_FORMAT_A8R8G8B8_UNORM:
+               case PIPE_FORMAT_R5G6B5_UNORM:
+               case PIPE_FORMAT_Z24S8_UNORM:
+               case PIPE_FORMAT_Z16_UNORM:
+                       return TRUE;
+               default:
+                       break;
+               }
+               break;
+       case PIPE_TEXTURE:
+               switch (format) {
+               case PIPE_FORMAT_I8_UNORM:
+                       return TRUE;
+               default:
+                       break;
+               }
+               break;
+       default:
+               assert(0);
+       }
+
        return FALSE;
 }
 
@@ -63,6 +87,9 @@ nv50_screen_get_param(struct pipe_screen *pscreen, int param)
                return 10;
        case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS:
                return 13;
+       case NOUVEAU_CAP_HW_VTXBUF:     
+       case NOUVEAU_CAP_HW_IDXBUF:     
+               return 0;
        default:
                NOUVEAU_ERR("Unknown PIPE_CAP %d\n", param);
                return 0;
@@ -83,8 +110,6 @@ nv50_screen_get_paramf(struct pipe_screen *pscreen, int param)
                return 16.0;
        case PIPE_CAP_MAX_TEXTURE_LOD_BIAS:
                return 4.0;
-       case PIPE_CAP_BITMAP_TEXCOORD_BIAS:
-               return 0.0;
        default:
                NOUVEAU_ERR("Unknown PIPE_CAP %d\n", param);
                return 0.0;
@@ -171,7 +196,7 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *nvws,
 
        so_emit(nvws, so);
        so_ref(NULL, &so);
-       nvws->push_flush(nvws, 0);
+       nvws->push_flush(nvws, 0, NULL);
 
        screen->pipe.winsys = ws;