nv30: properly init window information
authorBen Skeggs <bskeggs@redhat.com>
Thu, 26 Apr 2012 23:26:13 +0000 (09:26 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 26 Apr 2012 23:32:57 +0000 (09:32 +1000)
Should fix >2k rendering issues reported on nv4x.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
src/gallium/drivers/nv30/nv30_screen.c
src/gallium/drivers/nv30/nv30_state_validate.c

index 158fef5a80c7214e53b2cfe2d819919997f1914b..d355f749a09aba142d744269e6cc3c82fd6fdbf6 100644 (file)
@@ -454,8 +454,6 @@ nv30_screen_create(struct nouveau_device *dev)
    PUSH_DATA (push, screen->query->handle);  /* QUERY - intr 0x80 if nullobj */
    PUSH_DATA (push, screen->null->handle);  /* UNK1AC */
    PUSH_DATA (push, screen->null->handle);  /* UNK1B0 */
-   BEGIN_NV04(push, NV30_3D(VIEWPORT_CLIP_MODE), 1);
-   PUSH_DATA (push, 0);
    if (screen->eng3d->oclass < NV40_3D_CLASS) {
       BEGIN_NV04(push, SUBC_3D(0x03b0), 1);
       PUSH_DATA (push, 0x00100000);
index df0170bb8e42ecbe1abddcebf8a82b013647f31e..ae7955bb413a283f3ec89613db4e5b5fe0c795f4 100644 (file)
@@ -110,8 +110,11 @@ nv30_validate_fb(struct nv30_context *nv30)
    BEGIN_NV04(push, NV30_3D(VIEWPORT_HORIZ), 2);
    PUSH_DATA (push, w << 16);
    PUSH_DATA (push, h << 16);
-   BEGIN_NV04(push, NV30_3D(VIEWPORT_TX_ORIGIN), 1);
+   BEGIN_NV04(push, NV30_3D(VIEWPORT_TX_ORIGIN), 4);
    PUSH_DATA (push, (y << 16) | x);
+   PUSH_DATA (push, 0);
+   PUSH_DATA (push, ((w - 1) << 16) | 0);
+   PUSH_DATA (push, ((h - 1) << 16) | 0);
 
    if ((nv30->state.rt_enable & NV30_3D_RT_ENABLE_COLOR0) || fb->zsbuf) {
       struct nv30_surface *rsf = nv30_surface(fb->cbufs[0]);