https://bugs.freedesktop.org/show_bug.cgi?id=97231

--- Comment #18 from Ilia Mirkin <imir...@alum.mit.edu> ---
FWIW this also fails on nouveau right now... this is a part of the patch I'm
going to have to apply (still working out the full details, but this should
have the general idea):

@@ -329,8 +329,21 @@ nvc0_validate_viewport(struct nvc0_context *nvc0)
       PUSH_DATA (push, (w << 16) | x);
       PUSH_DATA (push, (h << 16) | y);

-      zmin = vp->translate[2] - fabsf(vp->scale[2]);
-      zmax = vp->translate[2] + fabsf(vp->scale[2]);
+      if (nvc0->rast->pipe.clip_halfz) {
+         zmin = vp->translate[2];
+         zmax = vp->translate[2] + vp->scale[2];
+         if (zmax < zmin) {
+            float t = zmax;
+            zmax = zmin;
+            zmin = t;
+         }
+      } else {
+         zmin = vp->translate[2] - fabsf(vp->scale[2]);
+         zmax = vp->translate[2] + fabsf(vp->scale[2]);
+      }

Note that the near/far planes have to be calculated differently based on
whether clip_halfz is enabled.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to