[Mesa-dev] [PATCH] gallium/tests/trivial: fix viewport depth transform

Ilia Mirkin imirkin at alum.mit.edu
Thu Mar 1 00:43:09 UTC 2018


These were getting mapped off into outer space, which would cause nv50
and nvc0 to clip the primitives (as depth_clip was enabled).

Oddly enough, it worked with nv30 and llvmpipe though. Perhaps their
frustrum clipping rules are a bit different?

Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
 src/gallium/tests/trivial/quad-tex.c | 7 ++++---
 src/gallium/tests/trivial/tri.c      | 6 +++---
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/gallium/tests/trivial/quad-tex.c b/src/gallium/tests/trivial/quad-tex.c
index df0e1301f5e..1f29306ec04 100644
--- a/src/gallium/tests/trivial/quad-tex.c
+++ b/src/gallium/tests/trivial/quad-tex.c
@@ -27,8 +27,8 @@
 #define USE_TRACE 0
 #define WIDTH 300
 #define HEIGHT 300
-#define NEAR 30
-#define FAR 1000
+#define NEAR 0
+#define FAR 1
 #define FLIP 0
 
 /* pipe_*_state structs */
@@ -174,6 +174,7 @@ static void init_prog(struct program *p)
 		memset(&box, 0, sizeof(box));
 		box.width = 2;
 		box.height = 2;
+		box.depth = 1;
 
 		ptr = p->pipe->transfer_map(p->pipe, p->tex, 0, PIPE_TRANSFER_WRITE, &box, &t);
 		ptr[0] = 0xffff0000;
@@ -226,7 +227,7 @@ static void init_prog(struct program *p)
 	{
 		float x = 0;
 		float y = 0;
-		float z = FAR;
+		float z = NEAR;
 		float half_width = (float)WIDTH / 2.0f;
 		float half_height = (float)HEIGHT / 2.0f;
 		float half_depth = ((float)FAR - (float)NEAR) / 2.0f;
diff --git a/src/gallium/tests/trivial/tri.c b/src/gallium/tests/trivial/tri.c
index 71e97022752..87a335fba1e 100644
--- a/src/gallium/tests/trivial/tri.c
+++ b/src/gallium/tests/trivial/tri.c
@@ -27,8 +27,8 @@
 #define USE_TRACE 0
 #define WIDTH 300
 #define HEIGHT 300
-#define NEAR 30
-#define FAR 1000
+#define NEAR 0
+#define FAR 1
 #define FLIP 0
 
 /* pipe_*_state structs */
@@ -171,7 +171,7 @@ static void init_prog(struct program *p)
 	{
 		float x = 0;
 		float y = 0;
-		float z = FAR;
+		float z = NEAR;
 		float half_width = (float)WIDTH / 2.0f;
 		float half_height = (float)HEIGHT / 2.0f;
 		float half_depth = ((float)FAR - (float)NEAR) / 2.0f;
-- 
2.16.1



More information about the mesa-dev mailing list