Mesa (master): nv30: go back to not using viewport validate function for swtnl

Ilia Mirkin imirkin at kemper.freedesktop.org
Fri Jul 1 05:04:55 UTC 2016


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

Author: Ilia Mirkin <imirkin at alum.mit.edu>
Date:   Fri Jul  1 00:59:58 2016 -0400

nv30: go back to not using viewport validate function for swtnl

The output of draw requires a null viewport transform, which the regular
code is ill-equiped to do. Reinstate the original settings in the render
path, and add setting of the viewport clip polygon based on fb
width/height (as that is all taken care of by draw).

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>

---

 src/gallium/drivers/nouveau/nv30/nv30_draw.c           | 16 ++++++++++++++++
 src/gallium/drivers/nouveau/nv30/nv30_state_validate.c |  1 -
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/nouveau/nv30/nv30_draw.c b/src/gallium/drivers/nouveau/nv30/nv30_draw.c
index 041c73c..10c9f56 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_draw.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_draw.c
@@ -342,6 +342,22 @@ nv30_render_validate(struct nv30_context *nv30)
    for (; i < 16; i++)
       r->vtxfmt[i]  = NV30_3D_VTXFMT_TYPE_V32_FLOAT;
 
+   BEGIN_NV04(push, NV30_3D(VIEWPORT_TRANSLATE_X), 8);
+   PUSH_DATAf(push, 0.0);
+   PUSH_DATAf(push, 0.0);
+   PUSH_DATAf(push, 0.0);
+   PUSH_DATAf(push, 0.0);
+   PUSH_DATAf(push, 1.0);
+   PUSH_DATAf(push, 1.0);
+   PUSH_DATAf(push, 1.0);
+   PUSH_DATAf(push, 1.0);
+   BEGIN_NV04(push, NV30_3D(DEPTH_RANGE_NEAR), 2);
+   PUSH_DATAf(push, 0.0);
+   PUSH_DATAf(push, 1.0);
+   BEGIN_NV04(push, NV30_3D(VIEWPORT_HORIZ), 2);
+   PUSH_DATA (push, nv30->framebuffer.width << 16);
+   PUSH_DATA (push, nv30->framebuffer.height << 16);
+
    BEGIN_NV04(push, NV30_3D(VTXFMT(0)), 16);
    PUSH_DATAp(push, r->vtxfmt, 16);
 
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_state_validate.c b/src/gallium/drivers/nouveau/nv30/nv30_state_validate.c
index 6f54ca0..f6acd24 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_state_validate.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_state_validate.c
@@ -425,7 +425,6 @@ static struct state_validate swtnl_validate_list[] = {
     { nv30_validate_stencil_ref,   NV30_NEW_STENCIL_REF },
     { nv30_validate_stipple,       NV30_NEW_STIPPLE },
     { nv30_validate_scissor,       NV30_NEW_SCISSOR | NV30_NEW_RASTERIZER },
-    { nv30_validate_viewport,      NV30_NEW_VIEWPORT },
     { nv30_fragprog_validate,      NV30_NEW_FRAGPROG | NV30_NEW_FRAGCONST },
     { nv30_validate_fragment,      NV30_NEW_FRAMEBUFFER | NV30_NEW_FRAGPROG },
     { nv30_fragtex_validate,       NV30_NEW_FRAGTEX },




More information about the mesa-commit mailing list