summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolai Hähnle <nicolai.haehnle@amd.com>2016-06-17 10:48:53 +0200
committerEmil Velikov <emil.l.velikov@gmail.com>2016-06-21 11:34:38 +0100
commitb03b256e921c3f7cebfcf9efd5bdf7b403b9c961 (patch)
tree1307a9641541d564d668944989124a21c7a41dc3
parent52ae654569cb1e0e42f12b492fdd62d7cf20dc12 (diff)
downloadmesa-b03b256e921c3f7cebfcf9efd5bdf7b403b9c961.tar.gz
radeonsi: fix calculation of valid RB mask per SE
The old calculation treated too many RBs as disabled. Cc: 11.0 11.1 11.2 12.0 <mesa-stable@lists.freedesktop.org> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com> (cherry picked from commit c95175581e983642dc4b23d059e6eaff5b79d2db)
-rw-r--r--src/gallium/drivers/radeonsi/si_state.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state.c b/src/gallium/drivers/radeonsi/si_state.c
index 47af9c8ca2f..96da179e674 100644
--- a/src/gallium/drivers/radeonsi/si_state.c
+++ b/src/gallium/drivers/radeonsi/si_state.c
@@ -3478,10 +3478,15 @@ si_write_harvested_raster_configs(struct si_context *sctx,
unsigned se_mask[4];
unsigned se;
- se_mask[0] = ((1 << rb_per_se) - 1) & rb_mask;
- se_mask[1] = (se_mask[0] << rb_per_se) & rb_mask;
- se_mask[2] = (se_mask[1] << rb_per_se) & rb_mask;
- se_mask[3] = (se_mask[2] << rb_per_se) & rb_mask;
+ se_mask[0] = ((1 << rb_per_se) - 1);
+ se_mask[1] = (se_mask[0] << rb_per_se);
+ se_mask[2] = (se_mask[1] << rb_per_se);
+ se_mask[3] = (se_mask[2] << rb_per_se);
+
+ se_mask[0] &= rb_mask;
+ se_mask[1] &= rb_mask;
+ se_mask[2] &= rb_mask;
+ se_mask[3] &= rb_mask;
assert(num_se == 1 || num_se == 2 || num_se == 4);
assert(sh_per_se == 1 || sh_per_se == 2);