r600g: don't use register mask for SQ_GPR_RESOURCE_MGMT_1
authorMarek Olšák <maraeo@gmail.com>
Sat, 28 Jan 2012 03:25:31 +0000 (04:25 +0100)
committerMarek Olšák <maraeo@gmail.com>
Tue, 31 Jan 2012 01:15:51 +0000 (02:15 +0100)
Reviewed-by: Dave Airlie <airlied@redhat.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_state.c

index 7d0d697243dada100987a37518c1f80004b77c57..b4898a4e0efab434bc3adc0cc5a4cc7aace644ef 100644 (file)
@@ -188,6 +188,7 @@ struct r600_pipe_context {
        struct blitter_context          *blitter;
        enum radeon_family              family;
        enum chip_class                 chip_class;
+       unsigned                        r6xx_num_clause_temp_gprs;
        void                            *custom_dsa_flush;
        struct r600_screen              *screen;
        struct radeon_winsys            *ws;
index 26eb92a08f0e78adac626a5fc1f006b6150b850d..eeacf0333173c5e720a3a0f117254b5a4e1bc454 100644 (file)
@@ -1829,8 +1829,9 @@ void r600_adjust_gprs(struct r600_pipe_context *rctx)
        tmp = 0;
        tmp |= S_008C04_NUM_PS_GPRS(num_ps_gprs);
        tmp |= S_008C04_NUM_VS_GPRS(num_vs_gprs);
+       tmp |= S_008C04_NUM_CLAUSE_TEMP_GPRS(rctx->r6xx_num_clause_temp_gprs);
        rstate.nregs = 0;
-       r600_pipe_state_add_reg(&rstate, R_008C04_SQ_GPR_RESOURCE_MGMT_1, tmp, 0x0FFFFFFF, NULL, 0);
+       r600_pipe_state_add_reg(&rstate, R_008C04_SQ_GPR_RESOURCE_MGMT_1, tmp, 0xFFFFFFFF, NULL, 0);
 
        r600_context_pipe_state_set(&rctx->ctx, &rstate);
 }
@@ -2008,6 +2009,7 @@ void r600_init_config(struct r600_pipe_context *rctx)
        tmp |= S_008C04_NUM_PS_GPRS(num_ps_gprs);
        tmp |= S_008C04_NUM_VS_GPRS(num_vs_gprs);
        tmp |= S_008C04_NUM_CLAUSE_TEMP_GPRS(num_temp_gprs);
+       rctx->r6xx_num_clause_temp_gprs = num_temp_gprs;
        r600_pipe_state_add_reg(rstate, R_008C04_SQ_GPR_RESOURCE_MGMT_1, tmp, 0xFFFFFFFF, NULL, 0);
 
        /* SQ_GPR_RESOURCE_MGMT_2 */