Merge branch 'gallium-0.2' into gallium-winsys-private
[mesa.git] / src / gallium / drivers / nv50 / nv50_screen.c
index b5aef7dadd8269f86b437d499c88991b3480d79d..3abacfc8d544b4de6fc01c106ef84e2a7aeed5b5 100644 (file)
@@ -57,6 +57,10 @@ nv50_screen_is_format_supported(struct pipe_screen *pscreen,
                case PIPE_FORMAT_A8_UNORM:
                case PIPE_FORMAT_I8_UNORM:
                case PIPE_FORMAT_A8L8_UNORM:
+               case PIPE_FORMAT_DXT1_RGB:
+               case PIPE_FORMAT_DXT1_RGBA:
+               case PIPE_FORMAT_DXT3_RGBA:
+               case PIPE_FORMAT_DXT5_RGBA:
                        return TRUE;
                default:
                        break;
@@ -90,23 +94,23 @@ nv50_screen_get_param(struct pipe_screen *pscreen, int param)
        case PIPE_CAP_MAX_TEXTURE_IMAGE_UNITS:
                return 32;
        case PIPE_CAP_NPOT_TEXTURES:
-               return 0;
+               return 1;
        case PIPE_CAP_TWO_SIDED_STENCIL:
                return 1;
        case PIPE_CAP_GLSL:
                return 0;
        case PIPE_CAP_S3TC:
-               return 0;
+               return 1;
        case PIPE_CAP_ANISOTROPIC_FILTER:
-               return 0;
+               return 1;
        case PIPE_CAP_POINT_SPRITE:
                return 0;
        case PIPE_CAP_MAX_RENDER_TARGETS:
                return 8;
        case PIPE_CAP_OCCLUSION_QUERY:
-               return 0;
+               return 1;
        case PIPE_CAP_TEXTURE_SHADOW_MAP:
-               return 0;
+               return 1;
        case PIPE_CAP_MAX_TEXTURE_2D_LEVELS:
                return 13;
        case PIPE_CAP_MAX_TEXTURE_3D_LEVELS:
@@ -116,6 +120,8 @@ nv50_screen_get_param(struct pipe_screen *pscreen, int param)
        case PIPE_CAP_TEXTURE_MIRROR_CLAMP:
        case PIPE_CAP_TEXTURE_MIRROR_REPEAT:
                return 1;
+       case PIPE_CAP_MAX_VERTEX_TEXTURE_UNITS:
+               return 0;
        case NOUVEAU_CAP_HW_VTXBUF:     
                return 1;
        case NOUVEAU_CAP_HW_IDXBUF:     
@@ -236,7 +242,7 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *nvws)
        so_data  (so, 8);
 
        /* Shared constant buffer */
-       screen->constbuf = ws->buffer_create(ws, 0, 0, 128 * 4 * 4);
+       screen->constbuf = ws->_buffer_create(ws, 0, 0, 128 * 4 * 4);
        if (nvws->res_init(&screen->vp_data_heap, 0, 128)) {
                NOUVEAU_ERR("Error initialising constant buffer\n");
                nv50_screen_destroy(&screen->pipe);
@@ -255,7 +261,7 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *nvws)
         * blocks.  At some point we *may* want to go the NVIDIA way of doing
         * things?
         */
-       screen->tic = ws->buffer_create(ws, 0, 0, 32 * 8 * 4);
+       screen->tic = ws->_buffer_create(ws, 0, 0, 32 * 8 * 4);
        so_method(so, screen->tesla, 0x1280, 3);
        so_reloc (so, screen->tic, 0, NOUVEAU_BO_VRAM |
                  NOUVEAU_BO_RD | NOUVEAU_BO_HIGH, 0, 0);
@@ -269,7 +275,7 @@ nv50_screen_create(struct pipe_winsys *ws, struct nouveau_winsys *nvws)
                  NOUVEAU_BO_RD | NOUVEAU_BO_LOW, 0, 0);
        so_data  (so, 0x00000800);
 
-       screen->tsc = ws->buffer_create(ws, 0, 0, 32 * 8 * 4);
+       screen->tsc = ws->_buffer_create(ws, 0, 0, 32 * 8 * 4);
        so_method(so, screen->tesla, 0x1280, 3);
        so_reloc (so, screen->tsc, 0, NOUVEAU_BO_VRAM |
                  NOUVEAU_BO_RD | NOUVEAU_BO_HIGH, 0, 0);