summaryrefslogtreecommitdiff
path: root/src/r6xx_accel.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-03-02 04:08:09 -0500
committerAlex Deucher <alexdeucher@gmail.com>2009-03-02 04:08:09 -0500
commitb7164ac4ad55e5d0fc474df8ae762b469b91ba30 (patch)
tree5c2914edcf594868e395cc3098d118a5d7fb7d95 /src/r6xx_accel.c
parentfa98f424de739be2c6005b740a74bbf1ee968a8b (diff)
R6xx/R7xx EXA: combine composite mask/non-mask VS
Also fix set_bool_const() the CF bool consts are not contiguous by shader type There are 96 boolean constants (32 each for PS, VS, GS) and they are ordered as follows: ps, vs, gs ... ps, vs, gs
Diffstat (limited to 'src/r6xx_accel.c')
-rw-r--r--src/r6xx_accel.c22
1 files changed, 3 insertions, 19 deletions
diff --git a/src/r6xx_accel.c b/src/r6xx_accel.c
index aa2ab86b..114ccf50 100644
--- a/src/r6xx_accel.c
+++ b/src/r6xx_accel.c
@@ -433,26 +433,10 @@ set_alu_consts(ScrnInfoPtr pScrn, drmBufPtr ib, int offset, int count, float *co
}
void
-set_bool_consts(ScrnInfoPtr pScrn, drmBufPtr ib, int offset, int count, uint32_t *const_buf)
+set_bool_const(ScrnInfoPtr pScrn, drmBufPtr ib, int offset, uint32_t val)
{
- int i;
- const int countreg = count * (SQ_BOOL_CONST_offset >> 2);
-
- PACK0(ib, SQ_BOOL_CONST + offset * SQ_BOOL_CONST_offset, countreg);
- for (i = 0; i < countreg; i++)
- E32(ib, const_buf[i]);
-
-}
-
-void
-set_loop_consts(ScrnInfoPtr pScrn, drmBufPtr ib, int offset, int count, uint32_t *const_buf)
-{
- int i;
- const int countreg = count * (SQ_LOOP_CONST_offset >> 2);
-
- PACK0(ib, SQ_LOOP_CONST + offset * SQ_LOOP_CONST_offset, countreg);
- for (i = 0; i < countreg; i++)
- E32(ib, const_buf[i]);
+ /* bool order is: ps, vs, gs, ps, vs, gs, ... */
+ EREG(ib, SQ_BOOL_CONST_0 + (offset << 2), val);
}
void