summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clip_rectangle.c4
-rw-r--r--context_surface_2d.c17
-rw-r--r--image_pattern.c5
-rw-r--r--imageblit.c11
-rw-r--r--object.c2
-rw-r--r--raster_op.c3
-rw-r--r--tcl_init.c17
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);
}
diff --git a/object.c b/object.c
index 2d20f79..c650e0e 100644
--- a/object.c
+++ b/object.c
@@ -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,
diff --git a/tcl_init.c b/tcl_init.c
index 9dac19b..94bd8b0 100644
--- a/tcl_init.c
+++ b/tcl_init.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"
@@ -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