<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>