summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2012-04-27 09:26:13 +1000
committerBen Skeggs <bskeggs@redhat.com>2012-04-27 09:32:57 +1000
commit9856fd02a0d6f7314ed580aea4e354a49f3b013f (patch)
tree1c420155289ade0b2d273eae406e08421761ad30
parenta2f7ecfa74cdc73f3e0a7ea739ce962f7a029799 (diff)
nv30: properly init window information
Should fix >2k rendering issues reported on nv4x. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
-rw-r--r--src/gallium/drivers/nv30/nv30_screen.c2
-rw-r--r--src/gallium/drivers/nv30/nv30_state_validate.c5
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 158fef5a80c..d355f749a09 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 df0170bb8e4..ae7955bb413 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]);