trace: Use u_time.
[mesa.git] / src / gallium / drivers / nv50 / nv50_surface.c
index b266324f58d7d40b30278c6acd625e0ad41d4ef3..ac0c1d02703f419395b9b59c4a4cc90481cac335 100644 (file)
@@ -25,8 +25,8 @@
 #include "nouveau/nouveau_pushbuf.h"
 #include "nv50_context.h"
 #include "pipe/p_defines.h"
-#include "pipe/internal/p_winsys_screen.h"
-#include "pipe/p_inlines.h"
+#include "util/u_simple_screen.h"
+#include "util/u_inlines.h"
 
 #include "util/u_tile.h"
 
@@ -60,22 +60,24 @@ nv50_surface_set(struct nv50_screen *screen, struct pipe_surface *ps, int dst)
        format = nv50_format(ps->format);
        if (format < 0)
                return 1;
-  
+
        if (!bo->tile_flags) {
+               MARK_RING (chan, 9, 2); /* flush on lack of space or relocs */
                BEGIN_RING(chan, eng2d, mthd, 2);
                OUT_RING  (chan, format);
                OUT_RING  (chan, 1);
                BEGIN_RING(chan, eng2d, mthd + 0x14, 5);
-               OUT_RING  (chan, mt->level[0].pitch);
+               OUT_RING  (chan, mt->level[ps->level].pitch);
                OUT_RING  (chan, ps->width);
                OUT_RING  (chan, ps->height);
                OUT_RELOCh(chan, bo, ps->offset, flags);
                OUT_RELOCl(chan, bo, ps->offset, flags);
        } else {
+               MARK_RING (chan, 11, 2); /* flush on lack of space or relocs */
                BEGIN_RING(chan, eng2d, mthd, 5);
                OUT_RING  (chan, format);
                OUT_RING  (chan, 0);
-               OUT_RING  (chan, bo->tile_mode << 4);
+               OUT_RING  (chan, mt->level[ps->level].tile_mode << 4);
                OUT_RING  (chan, 1);
                OUT_RING  (chan, 0);
                BEGIN_RING(chan, eng2d, mthd + 0x18, 4);
@@ -174,11 +176,11 @@ nv50_surface_fill(struct pipe_context *pipe, struct pipe_surface *dest,
        if (ret)
                return;
 
-       BEGIN_RING(chan, eng2d, 0x0580, 3);
-       OUT_RING  (chan, 4);
+       BEGIN_RING(chan, eng2d, NV50_2D_DRAW_SHAPE, 3);
+       OUT_RING  (chan, NV50_2D_DRAW_SHAPE_RECTANGLES);
        OUT_RING  (chan, format);
        OUT_RING  (chan, value);
-       BEGIN_RING(chan, eng2d, NV50_2D_RECT_X1, 4);
+       BEGIN_RING(chan, eng2d, NV50_2D_DRAW_POINT32_X(0), 4);
        OUT_RING  (chan, destx);
        OUT_RING  (chan, desty);
        OUT_RING  (chan, width);