summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/r300/r300_fragprog.c
diff options
context:
space:
mode:
authorNicolai Haehnle <[email protected]>2008-06-01 19:53:52 +0200
committerNicolai Haehnle <[email protected]>2008-06-01 19:59:42 +0200
commitc9ea62444c6969da8706ea88e12df8c458a6acce (patch)
tree2241ec0f38333c34382c3d0f70952fa8f4d805c8 /src/mesa/drivers/dri/r300/r300_fragprog.c
parentd9c7c5f071f5bf2a7516d877c9ab84b2b2b91779 (diff)
r300: Writing to result.depth in fragment programs (R3xx; only stub for R5xx)
Setup fg_depth_src for depth writing programs and change early Z (ztop) semantics. Piglit's version of glean/fragprog test passes now (unlike Glean, its dependency on EXT_fog_coord, which we don't support, is optional). R3xx only at the moment, but should be straightforward to adapt to R5xx (I don't own an R5xx, and I don't want to break anything.)
Diffstat (limited to 'src/mesa/drivers/dri/r300/r300_fragprog.c')
-rw-r--r--src/mesa/drivers/dri/r300/r300_fragprog.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/r300/r300_fragprog.c b/src/mesa/drivers/dri/r300/r300_fragprog.c
index ac45da44049..54b80d20a16 100644
--- a/src/mesa/drivers/dri/r300/r300_fragprog.c
+++ b/src/mesa/drivers/dri/r300/r300_fragprog.c
@@ -862,6 +862,7 @@ static int t_hw_dst(struct r300_fragment_program *fp,
R300_RGBA_OUT;
break;
case FRAG_RESULT_DEPR:
+ fp->WritesDepth = GL_TRUE;
fp->node[fp->cur_node].flags |=
R300_W_OUT;
break;
@@ -2105,6 +2106,7 @@ static void init_program(r300ContextPtr r300, struct r300_fragment_program *fp)
fp->translated = GL_FALSE;
fp->error = GL_FALSE;
fp->cs = cs = &(R300_CONTEXT(fp->ctx)->state.pfs_compile);
+ fp->WritesDepth = GL_FALSE;
fp->tex.length = 0;
fp->cur_node = 0;
fp->first_node_has_tex = 0;