nv40: some forgotten adaptions
authorBen Skeggs <skeggsb@gmail.com>
Tue, 11 Dec 2007 03:08:42 +0000 (14:08 +1100)
committerBen Skeggs <skeggsb@gmail.com>
Tue, 11 Dec 2007 03:08:42 +0000 (14:08 +1100)
src/mesa/pipe/nv40/nv40_context.c
src/mesa/pipe/nv40/nv40_draw.c

index 518ba3574f7a446413476845a0447709e1259390..6d12312d518569cec9c9075c8f0957d3ea6228a2 100644 (file)
@@ -7,15 +7,38 @@
 #include "nv40_dma.h"
 
 static boolean
-nv40_is_format_supported(struct pipe_context *pipe, uint format)
+nv40_is_format_supported(struct pipe_context *pipe, enum pipe_format format,
+                        uint type)
 {
-       switch (format) {
-       case PIPE_FORMAT_A8R8G8B8_UNORM:
-       case PIPE_FORMAT_R5G6B5_UNORM: 
-       case PIPE_FORMAT_Z24S8_UNORM:
-               return TRUE;
-       default:
+       switch (type) {
+       case PIPE_SURFACE:
+       case PIPE_SCREEN_SURFACE:
+               switch (format) {
+               case PIPE_FORMAT_A8R8G8B8_UNORM:
+               case PIPE_FORMAT_R5G6B5_UNORM: 
+               case PIPE_FORMAT_Z24S8_UNORM:
+                       return TRUE;
+               default:
+                       break;
+               }
+               break;
+       case PIPE_TEXTURE:
+               switch (format) {
+               case PIPE_FORMAT_A8R8G8B8_UNORM:
+               case PIPE_FORMAT_A1R5G5B5_UNORM:
+               case PIPE_FORMAT_A4R4G4B4_UNORM:
+               case PIPE_FORMAT_R5G6B5_UNORM: 
+               case PIPE_FORMAT_U_L8:
+               case PIPE_FORMAT_U_A8:
+               case PIPE_FORMAT_U_I8:
+               case PIPE_FORMAT_U_A8_L8:
+                       return TRUE;
+               default:
+                       break;
+               }
                break;
+       default:
+               assert(0);
        };
 
        return FALSE;
index 52ce493ea2d97a6c2304bbfda037fbcb057e4624..6ad2b66cce83ae1e4fef69569a418989a02a8abe 100644 (file)
@@ -44,6 +44,12 @@ nv40_draw_reset_stipple_counter(struct draw_stage *draw)
        NOUVEAU_ERR("\n");
 }
 
+static void
+nv40_draw_destroy(struct draw_stage *draw)
+{
+       free(draw);
+}
+
 struct draw_stage *
 nv40_draw_render_stage(struct nv40_context *nv40)
 {
@@ -57,6 +63,7 @@ nv40_draw_render_stage(struct nv40_context *nv40)
        nv40draw->draw.tri = nv40_draw_tri;
        nv40draw->draw.end = nv40_draw_end;
        nv40draw->draw.reset_stipple_counter = nv40_draw_reset_stipple_counter;
+       nv40draw->draw.destroy = nv40_draw_destroy;
 
        return &nv40draw->draw;
 }