summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Ekstrand <[email protected]>2017-05-18 14:00:48 -0700
committerJason Ekstrand <[email protected]>2017-06-01 15:33:56 -0700
commitb178762d051bad0f373631908b8ce7b5e9ba8d05 (patch)
treee56e69a28dd50f313eec094643403066b45fb8e6
parent757f7087a5d9b106767220393772043ba70c157b (diff)
intel/isl: Make get_intratile_offset_el take the element size in bits
Reviewed-by: Topi Pohjolainen <[email protected]>
-rw-r--r--src/intel/isl/isl.c7
-rw-r--r--src/intel/isl/isl.h6
-rw-r--r--src/mesa/drivers/dri/i965/intel_blit.c2
3 files changed, 6 insertions, 9 deletions
diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c
index 1227238b186..fb4e170bfc0 100644
--- a/src/intel/isl/isl.c
+++ b/src/intel/isl/isl.c
@@ -2147,7 +2147,7 @@ isl_surf_get_image_offset_el(const struct isl_surf *surf,
void
isl_tiling_get_intratile_offset_el(enum isl_tiling tiling,
- uint8_t bs,
+ uint32_t bpb,
uint32_t row_pitch,
uint32_t total_x_offset_el,
uint32_t total_y_offset_el,
@@ -2156,15 +2156,14 @@ isl_tiling_get_intratile_offset_el(enum isl_tiling tiling,
uint32_t *y_offset_el)
{
if (tiling == ISL_TILING_LINEAR) {
+ assert(bpb % 8 == 0);
*base_address_offset = total_y_offset_el * row_pitch +
- total_x_offset_el * bs;
+ total_x_offset_el * (bpb / 8);
*x_offset_el = 0;
*y_offset_el = 0;
return;
}
- const uint32_t bpb = bs * 8;
-
struct isl_tile_info tile_info;
isl_tiling_get_info(tiling, bpb, &tile_info);
diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h
index 4bb3de78973..8b2d264f8b2 100644
--- a/src/intel/isl/isl.h
+++ b/src/intel/isl/isl.h
@@ -1601,7 +1601,7 @@ isl_surf_get_image_offset_el(const struct isl_surf *surf,
*/
void
isl_tiling_get_intratile_offset_el(enum isl_tiling tiling,
- uint8_t bs,
+ uint32_t bpb,
uint32_t row_pitch,
uint32_t total_x_offset_el,
uint32_t total_y_offset_el,
@@ -1621,8 +1621,6 @@ isl_tiling_get_intratile_offset_sa(enum isl_tiling tiling,
{
const struct isl_format_layout *fmtl = isl_format_get_layout(format);
- assert(fmtl->bpb % 8 == 0);
-
/* For computing the intratile offsets, we actually want a strange unit
* which is samples for multisampled surfaces but elements for compressed
* surfaces.
@@ -1632,7 +1630,7 @@ isl_tiling_get_intratile_offset_sa(enum isl_tiling tiling,
const uint32_t total_x_offset = total_x_offset_sa / fmtl->bw;
const uint32_t total_y_offset = total_y_offset_sa / fmtl->bh;
- isl_tiling_get_intratile_offset_el(tiling, fmtl->bpb / 8, row_pitch,
+ isl_tiling_get_intratile_offset_el(tiling, fmtl->bpb, row_pitch,
total_x_offset, total_y_offset,
base_address_offset,
x_offset_sa, y_offset_sa);
diff --git a/src/mesa/drivers/dri/i965/intel_blit.c b/src/mesa/drivers/dri/i965/intel_blit.c
index 21f0271a04b..61764fbe965 100644
--- a/src/mesa/drivers/dri/i965/intel_blit.c
+++ b/src/mesa/drivers/dri/i965/intel_blit.c
@@ -172,7 +172,7 @@ get_blit_intratile_offset_el(const struct brw_context *brw,
uint32_t *y_offset_el)
{
enum isl_tiling tiling = intel_miptree_get_isl_tiling(mt);
- isl_tiling_get_intratile_offset_el(tiling, mt->cpp, mt->pitch,
+ isl_tiling_get_intratile_offset_el(tiling, mt->cpp * 8, mt->pitch,
total_x_offset_el, total_y_offset_el,
base_address_offset,
x_offset_el, y_offset_el);