Mesa (master): nv30: properly init window information

Ben Skeggs darktama at kemper.freedesktop.org
Thu Apr 26 23:27:44 UTC 2012


Module: Mesa
Branch: master
Commit: 9856fd02a0d6f7314ed580aea4e354a49f3b013f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9856fd02a0d6f7314ed580aea4e354a49f3b013f

Author: Ben Skeggs <bskeggs at redhat.com>
Date:   Fri Apr 27 09:26:13 2012 +1000

nv30: properly init window information

Should fix >2k rendering issues reported on nv4x.

Signed-off-by: Ben Skeggs <bskeggs at redhat.com>

---

 src/gallium/drivers/nv30/nv30_screen.c         |    2 --
 src/gallium/drivers/nv30/nv30_state_validate.c |    5 ++++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/gallium/drivers/nv30/nv30_screen.c b/src/gallium/drivers/nv30/nv30_screen.c
index 158fef5..d355f74 100644
--- a/src/gallium/drivers/nv30/nv30_screen.c
+++ b/src/gallium/drivers/nv30/nv30_screen.c
@@ -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);
diff --git a/src/gallium/drivers/nv30/nv30_state_validate.c b/src/gallium/drivers/nv30/nv30_state_validate.c
index df0170b..ae7955b 100644
--- a/src/gallium/drivers/nv30/nv30_state_validate.c
+++ b/src/gallium/drivers/nv30/nv30_state_validate.c
@@ -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]);




More information about the mesa-commit mailing list