--- src/intel/isl/isl.h | 3 +++ src/intel/isl/isl_surface_state.c | 9 +++++++++ 2 files changed, 12 insertions(+)
diff --git a/src/intel/isl/isl.h b/src/intel/isl/isl.h index a987482..4dd4a2f 100644 --- a/src/intel/isl/isl.h +++ b/src/intel/isl/isl.h @@ -844,6 +844,9 @@ struct isl_surf_fill_state_info { * Valid values depend on hardware generation. */ union isl_color_value clear_color; + + /* Intra-tile offset */ + uint16_t x_offset, y_offset; }; struct isl_buffer_fill_state_info { diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c index 9bfc55f..65e4b8e 100644 --- a/src/intel/isl/isl_surface_state.c +++ b/src/intel/isl/isl_surface_state.c @@ -401,6 +401,15 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state, s.MOCS = info->mocs; #endif +#if GEN_GEN > 4 || GEN_IS_G4X + const unsigned x_div = 4; + const unsigned y_div = GEN_GEN >= 8 ? 4 : 2; + assert(info->x_offset % x_div == 0); + assert(info->y_offset % y_div == 0); + s.XOffset = info->x_offset / x_div; + s.YOffset = info->y_offset / y_div; +#endif + #if GEN_GEN >= 7 if (info->aux_surf) { struct isl_tile_info tile_info; -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev