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);
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]);