diff options
-rw-r--r-- | clip_rectangle.c | 4 | ||||
-rw-r--r-- | context_surface_2d.c | 17 | ||||
-rw-r--r-- | image_pattern.c | 5 | ||||
-rw-r--r-- | imageblit.c | 11 | ||||
-rw-r--r-- | object.c | 2 | ||||
-rw-r--r-- | raster_op.c | 3 | ||||
-rw-r--r-- | tcl_init.c | 17 |
7 files changed, 33 insertions, 26 deletions
diff --git a/clip_rectangle.c b/clip_rectangle.c index 0c51ced..b01d0f3 100644 --- a/clip_rectangle.c +++ b/clip_rectangle.c @@ -1,8 +1,8 @@ #include <stdio.h> #include <stdint.h> #include <nouveau_class.h> -#include <nouveau_device.h> #include <nouveau_pushbuf.h> +#include <nouveau_notifier.h> #include "screen.h" #include "object.h" @@ -15,7 +15,7 @@ void clip_rectangle_init(void) printf("-- Clip rectangle, init\n"); BEGIN_RING(chan, subchClipRect, NV01_CONTEXT_CLIP_RECTANGLE_DMA_NOTIFY, 1); - OUT_RING (chan, NvSyncNotify); + OUT_RING (chan, notifier->handle); BEGIN_RING(chan, subchClipRect, NV01_CONTEXT_CLIP_RECTANGLE_POINT, 2); OUT_RING (chan, (viewport_y<<16) | viewport_x); diff --git a/context_surface_2d.c b/context_surface_2d.c index 2689ee5..173fd77 100644 --- a/context_surface_2d.c +++ b/context_surface_2d.c @@ -2,6 +2,7 @@ #include <stdint.h> #include <nouveau_class.h> #include <nouveau_pushbuf.h> +#include <nouveau_notifier.h> #include "screen.h" #include "object.h" @@ -9,17 +10,19 @@ void context_surface_2d_init(void) { + struct nouveau_grobj *subchCtxSurf2D = grobj[NvSubCtxSurf2D]; + printf("-- Context surface 2D, init\n"); - BEGIN_RING(chan, grobj[NvSubCtxSurf2D], NV04_CONTEXT_SURFACES_2D_DMA_NOTIFY, 1); - OUT_RING (chan, NvSyncNotify); + BEGIN_RING(chan, subchCtxSurf2D, NV04_CONTEXT_SURFACES_2D_DMA_NOTIFY, 1); + OUT_RING (chan, notifier->handle); - BEGIN_RING(chan, grobj[NvSubCtxSurf2D], NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_SOURCE, 2); - OUT_RING (chan, NvDmaFB); - OUT_RING (chan, NvDmaFB); + BEGIN_RING(chan, subchCtxSurf2D, NV04_CONTEXT_SURFACES_2D_DMA_IMAGE_SOURCE, 2); + OUT_RING (chan, chan->vram->handle); + OUT_RING (chan, chan->vram->handle); - BEGIN_RING(chan, grobj[NvSubCtxSurf2D], NV04_CONTEXT_SURFACES_2D_FORMAT, 4); - OUT_RING (chan, (screen_bpp==32) + BEGIN_RING(chan, subchCtxSurf2D, NV04_CONTEXT_SURFACES_2D_FORMAT, 4); + OUT_RING (chan, (screen_bpp==32) ? NV04_CONTEXT_SURFACES_2D_FORMAT_A8R8G8B8 : NV04_CONTEXT_SURFACES_2D_FORMAT_R5G6B5 ); diff --git a/image_pattern.c b/image_pattern.c index a98f7a2..9fc9966 100644 --- a/image_pattern.c +++ b/image_pattern.c @@ -2,6 +2,7 @@ #include <stdint.h> #include <nouveau_class.h> #include <nouveau_pushbuf.h> +#include <nouveau_notifier.h> #include "screen.h" #include "object.h" @@ -14,7 +15,7 @@ void image_pattern_init(void) printf("-- Image pattern, init\n"); BEGIN_RING(chan, subchImagePattern, NV04_IMAGE_PATTERN_DMA_NOTIFY, 1); - OUT_RING (chan, NvSyncNotify); + OUT_RING (chan, notifier->handle); BEGIN_RING(chan, subchImagePattern, NV04_IMAGE_PATTERN_MONOCHROME_FORMAT, 3); OUT_RING (chan, NV04_IMAGE_PATTERN_MONOCHROME_FORMAT_CGA6); @@ -22,7 +23,7 @@ void image_pattern_init(void) OUT_RING (chan, NV04_IMAGE_PATTERN_PATTERN_SELECT_MONO); BEGIN_RING(chan, subchImagePattern, NV04_IMAGE_PATTERN_COLOR_FORMAT, 1); - OUT_RING (chan, (screen_bpp == 32) + OUT_RING (chan, (screen_bpp == 32) ? NV04_IMAGE_PATTERN_COLOR_FORMAT_A8R8G8B8 : NV04_IMAGE_PATTERN_COLOR_FORMAT_A16R5G6B5 ); diff --git a/imageblit.c b/imageblit.c index bb0fbb3..bf9f288 100644 --- a/imageblit.c +++ b/imageblit.c @@ -2,6 +2,7 @@ #include <stdint.h> #include <nouveau_class.h> #include <nouveau_pushbuf.h> +#include <nouveau_notifier.h> #include "screen.h" #include "object.h" @@ -14,16 +15,16 @@ void imageblit_init(void) printf("-- ImageBlit, init\n"); BEGIN_RING(chan, subchImageBlit, NV04_IMAGE_BLIT_DMA_NOTIFY, 1); - OUT_RING (chan, NvSyncNotify); + OUT_RING (chan, notifier->handle); BEGIN_RING(chan, subchImageBlit, NV04_IMAGE_BLIT_SURFACE, 1); - OUT_RING (chan, NvCtxSurf2D); + OUT_RING (chan, grobj[NvSubCtxSurf2D]->handle); BEGIN_RING(chan, subchImageBlit, NV04_IMAGE_BLIT_CLIP_RECTANGLE, 1); - OUT_RING (chan, NvClipRect); + OUT_RING (chan, grobj[NvSubClipRect]->handle); BEGIN_RING(chan, subchImageBlit, NV04_IMAGE_BLIT_PATTERN, 1); - OUT_RING (chan, NvImagePattern); + OUT_RING (chan, grobj[NvSubImagePattern]->handle); BEGIN_RING(chan, subchImageBlit, NV04_IMAGE_BLIT_ROP, 1); - OUT_RING (chan, NvRasterOp); + OUT_RING (chan, grobj[NvSubRasterOp]->handle); FIRE_RING(chan); } @@ -21,7 +21,7 @@ int object_list_create(int class_3d) if (nouveau_grobj_alloc(chan, Nv3D, class_3d, &grobj[NvSub3D])) { return 1; } - if (nouveau_grobj_alloc(chan, NvCtxSurf2D, NV04_CONTEXT_SURFACES_2D, &grobj[NvSubCtxSurf2D])) { + if (nouveau_grobj_alloc(chan, NvCtxSurf2D, NV10_CONTEXT_SURFACES_2D, &grobj[NvSubCtxSurf2D])) { return 1; } if (nouveau_grobj_alloc(chan, NvImageBlit, NV12_IMAGE_BLIT, &grobj[NvSubImageBlit])) { diff --git a/raster_op.c b/raster_op.c index 1170f24..8ad5c71 100644 --- a/raster_op.c +++ b/raster_op.c @@ -2,6 +2,7 @@ #include <stdint.h> #include <nouveau_class.h> #include <nouveau_pushbuf.h> +#include <nouveau_notifier.h> #include "screen.h" #include "object.h" @@ -14,7 +15,7 @@ void raster_op_init(void) printf("-- Raster operation, init\n"); BEGIN_RING(chan, subchRasterOp, NV03_CONTEXT_ROP_DMA_NOTIFY, 1); - OUT_RING (chan, NvSyncNotify); + OUT_RING (chan, notifier->handle); BEGIN_RING(chan, subchRasterOp, NV03_CONTEXT_ROP_ROP, 1); OUT_RING (chan, @@ -2,6 +2,7 @@ #include <stdint.h> #include <nouveau_class.h> #include <nouveau_pushbuf.h> +#include <nouveau_notifier.h> #include "screen.h" #include "object.h" @@ -100,18 +101,18 @@ void tcl_init(void) printf("-- TCL init\n"); BEGIN_RING(chan, subch3D, NV34TCL_DMA_NOTIFY, 1); - OUT_RING (chan, NvSyncNotify); + OUT_RING (chan, notifier->handle); BEGIN_RING(chan, subch3D, NV34TCL_DMA_TEXTURE0, 3); - OUT_RING (chan, NvDmaFB); /* beef0201 184 texture0 */ - OUT_RING (chan, NvDmaTT); /* beef0202 188 texture1 */ - OUT_RING (chan, NvDmaFB); /* beef0201 18c color1 */ + OUT_RING (chan, chan->vram->handle); + OUT_RING (chan, chan->gart->handle); + OUT_RING (chan, chan->vram->handle); BEGIN_RING(chan, subch3D, NV34TCL_DMA_COLOR0, 2); - OUT_RING (chan, NvDmaFB); /* beef0201 194 color0 */ - OUT_RING (chan, NvDmaFB); /* beef0201 198 zeta */ + OUT_RING (chan, chan->vram->handle); + OUT_RING (chan, chan->vram->handle); BEGIN_RING(chan, subch3D, NV34TCL_DMA_IN_MEMORY7, 2); - OUT_RING (chan, NvDmaFB); /* beef0201 1ac */ - OUT_RING (chan, NvDmaFB); /* beef0201 1b0 */ + OUT_RING (chan, chan->vram->handle); + OUT_RING (chan, chan->vram->handle); #if 0 000421a4 size 1, subchannel 1 (0xbeef3097),offset 0x01a4,increment beef1e00 NV30TCL.DMA_FENCE = NV01_MEMORY_LOCAL_BANKED |