summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Skeggs <skeggsb@gmail.com>2007-12-11 14:08:42 +1100
committerBen Skeggs <skeggsb@gmail.com>2007-12-11 14:08:42 +1100
commitce0e274c7cdf7ceb5ffd46d545b5cd18311dc6e0 (patch)
tree460d24d778959681ad41b188f6870a558855b41a /src
parent4bc3cfaaf065f373f2e2d1ca4361c3d4ffdca4da (diff)
nv40: some forgotten adaptions
Diffstat (limited to 'src')
-rw-r--r--src/mesa/pipe/nv40/nv40_context.c37
-rw-r--r--src/mesa/pipe/nv40/nv40_draw.c7
2 files changed, 37 insertions, 7 deletions
diff --git a/src/mesa/pipe/nv40/nv40_context.c b/src/mesa/pipe/nv40/nv40_context.c
index 518ba3574f..6d12312d51 100644
--- a/src/mesa/pipe/nv40/nv40_context.c
+++ b/src/mesa/pipe/nv40/nv40_context.c
@@ -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;
diff --git a/src/mesa/pipe/nv40/nv40_draw.c b/src/mesa/pipe/nv40/nv40_draw.c
index 52ce493ea2..6ad2b66cce 100644
--- a/src/mesa/pipe/nv40/nv40_draw.c
+++ b/src/mesa/pipe/nv40/nv40_draw.c
@@ -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;
}