diff options
author | Patrice Mandin <pmandin@caramail.com> | 2008-08-26 22:25:23 +0200 |
---|---|---|
committer | Patrice Mandin <pmandin@caramail.com> | 2008-08-26 22:25:23 +0200 |
commit | 4dbe6cfa1aca9ba81a3285975ce47e3ead21fc84 (patch) | |
tree | 87badf519b486db38f5ed5e757fe491e0209ca83 /context_surface_2d.c | |
parent | e1520747d8a8cdacfdefdd212da285f36403f493 (diff) |
Add more objects
Diffstat (limited to 'context_surface_2d.c')
-rw-r--r-- | context_surface_2d.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/context_surface_2d.c b/context_surface_2d.c new file mode 100644 index 0000000..accc6f1 --- /dev/null +++ b/context_surface_2d.c @@ -0,0 +1,31 @@ +#include <stdio.h> + +#include "screen.h" +#include "object.h" +#include "fifo.h" +#include "nouveau_class.h" + +void context_surface_2d_init(void) +{ + printf("-- Context surface 2D, init\n"); + + SetSubchannel(NvSubCtxSurf2D, NvCtxSurf2D); + + BEGIN_RING(NvSubCtxSurf2D, NV04_CONTEXT_SURFACES_2D_DMA_NOTIFY, 1); + OUT_RING (NvSyncNotify); + + BEGIN_RING(NvSubCtxSurf2D, NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_SOURCE, 2); + OUT_RING (NvDmaFB); + OUT_RING (NvDmaFB); + + BEGIN_RING(NvSubCtxSurf2D, NV04_CONTEXT_SURFACES_2D_FORMAT, 4); + OUT_RING( (screen_bpp==32) + ? NV04_CONTEXT_SURFACES_2D_FORMAT_A8R8G8B8 + : NV04_CONTEXT_SURFACES_2D_FORMAT_R5G6B5 + ); + OUT_RING ((screen_pitch<<16)|screen_pitch); + OUT_RING (screen_offset); /* src */ + OUT_RING (screen_offset); /* dst */ + + FIRE_RING(); +} |