We send position.z == 0, DEPTH_RANGE may be some arbitrary range not including 0 (for exmaple in piglit's hiz tests).tags/mesa-9.2-rc1
@@ -976,6 +976,8 @@ nv50_blit_3d(struct nv50_context *nv50, const struct pipe_blit_info *info) | |||
BEGIN_NV04(push, NV50_3D(VIEWPORT_TRANSFORM_EN), 1); | |||
PUSH_DATA (push, 0); | |||
BEGIN_NV04(push, NV50_3D(VIEW_VOLUME_CLIP_CTRL), 1); | |||
PUSH_DATA (push, 0x1); | |||
/* Draw a large triangle in screen coordinates covering the whole | |||
* render target, with scissors defining the destination region. |
@@ -1041,7 +1041,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |||
#define NVC0_3D_VIEWPORT_TRANSFORM_EN 0x0000192c | |||
#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL 0x0000193c | |||
#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK0 0x00000001 | |||
#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_RANGE_0_1 0x00000001 | |||
#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1__MASK 0x00000006 | |||
#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1__SHIFT 1 | |||
#define NVC0_3D_VIEW_VOLUME_CLIP_CTRL_UNK1_UNK0 0x00000000 |
@@ -869,6 +869,8 @@ nvc0_blit_3d(struct nvc0_context *nvc0, const struct pipe_blit_info *info) | |||
z += 0.5f * dz; | |||
IMMED_NVC0(push, NVC0_3D(VIEWPORT_TRANSFORM_EN), 0); | |||
IMMED_NVC0(push, NVC0_3D(VIEW_VOLUME_CLIP_CTRL), 0x2 | | |||
NVC0_3D_VIEW_VOLUME_CLIP_CTRL_DEPTH_RANGE_0_1); | |||
BEGIN_NVC0(push, NVC0_3D(VIEWPORT_HORIZ(0)), 2); | |||
PUSH_DATA (push, nvc0->framebuffer.width << 16); | |||
PUSH_DATA (push, nvc0->framebuffer.height << 16); |