<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - GL_DEPTH_CLAMP doesn't clamp to the far plane"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=97231#c18">Comment # 18</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - GL_DEPTH_CLAMP doesn't clamp to the far plane"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=97231">bug 97231</a>
              from <span class="vcard"><a class="email" href="mailto:imirkin@alum.mit.edu" title="Ilia Mirkin <imirkin@alum.mit.edu>"> <span class="fn">Ilia Mirkin</span></a>
</span></b>
        <pre>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.</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>