summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2010-03-12 15:10:22 -0800
committerEric Anholt <[email protected]>2010-03-12 15:12:02 -0800
commitf1d6baee0b02aaac34f9476eee92469281336b26 (patch)
tree644917230402076d21a7c421cfcb670a2a687c7d
parentf4f2737e8767d3808d876c3f7e65ca9f48faf624 (diff)
i965: Clarify the roles of emit_pixel_xy(), emit_delta_xy(), emit_wpos_xy().
-rw-r--r--src/mesa/drivers/dri/i965/brw_wm_emit.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm_emit.c b/src/mesa/drivers/dri/i965/brw_wm_emit.c
index 2d1d011e553..05e464d4b61 100644
--- a/src/mesa/drivers/dri/i965/brw_wm_emit.c
+++ b/src/mesa/drivers/dri/i965/brw_wm_emit.c
@@ -62,7 +62,13 @@ static INLINE struct brw_reg sechalf( struct brw_reg reg )
}
-/* Payload R0:
+/**
+ * Computes the screen-space x,y position of the pixels.
+ *
+ * This will be used by emit_delta_xy() or emit_wpos_xy() for
+ * interpolation of attributes..
+ *
+ * Payload R0:
*
* R0.0 -- pixel mask, one bit for each of 4 pixels in 4 tiles,
* corresponding to each of the 16 execution channels.
@@ -77,7 +83,6 @@ static INLINE struct brw_reg sechalf( struct brw_reg reg )
* R1.7 -- ?
* R1.8 -- ?
*/
-
void emit_pixel_xy(struct brw_wm_compile *c,
const struct brw_reg *dst,
GLuint mask)
@@ -117,7 +122,14 @@ void emit_pixel_xy(struct brw_wm_compile *c,
brw_pop_insn_state(p);
}
-
+/**
+ * Computes the screen-space x,y distance of the pixels from the start
+ * vertex.
+ *
+ * This will be used in linterp or pinterp with the start vertex value
+ * and the Cx, Cy, and C0 coefficients passed in from the setup engine
+ * to produce interpolated attribute values.
+ */
void emit_delta_xy(struct brw_compile *p,
const struct brw_reg *dst,
GLuint mask,
@@ -131,7 +143,7 @@ void emit_delta_xy(struct brw_compile *p,
assert(mask == WRITEMASK_XY);
/* Calc delta X,Y by subtracting origin in r1 from the pixel
- * centers.
+ * centers produced by emit_pixel_xy().
*/
brw_ADD(p,
dst[0],
@@ -143,6 +155,9 @@ void emit_delta_xy(struct brw_compile *p,
negate(suboffset(r1,1)));
}
+/**
+ * Computes the pixel offset from the window origin for gl_FragCoord().
+ */
void emit_wpos_xy(struct brw_wm_compile *c,
const struct brw_reg *dst,
GLuint mask,
@@ -150,9 +165,6 @@ void emit_wpos_xy(struct brw_wm_compile *c,
{
struct brw_compile *p = &c->func;
- /* Calculate the pixel offset from window bottom left into destination
- * X and Y channels.
- */
if (mask & WRITEMASK_X) {
if (c->fp->program.PixelCenterInteger) {
/* X' = X */