--- src/intel/isl/isl_surface_state.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c index bfb27fa..a1d5fc2 100644 --- a/src/intel/isl/isl_surface_state.c +++ b/src/intel/isl/isl_surface_state.c @@ -74,6 +74,14 @@ static const uint8_t isl_to_gen_tiling[] = { }; #endif +#if GEN_GEN >= 9 +static const uint8_t isl_tiling_to_gen_trmode[] = { + [ISL_TILING_Y0] = NONE, + [ISL_TILING_Yf] = TILEYF, + [ISL_TILING_Ys] = TILEYS, +}; +#endif + #if GEN_GEN >= 7 static const uint32_t isl_to_gen_multisample_layout[] = { [ISL_MSAA_LAYOUT_NONE] = MSFMT_MSS, @@ -412,7 +420,6 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state, /* We don't use miptails yet. The PRM recommends that you set "Mip Tail * Start LOD" to 15 to prevent the hardware from trying to use them. */ - s.TiledResourceMode = NONE; s.MipTailStartLOD = 15; #endif @@ -438,7 +445,15 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state, ISL_ARRAY_PITCH_SPAN_COMPACT; #endif -#if GEN_GEN >= 8 +#if GEN_GEN >= 9 + s.TileMode = isl_to_gen_tiling[info->surf->tiling]; + if (isl_tiling_is_any_y(info->surf->tiling)) { + /* 1D Yf/Ys is supposed to have a tile mode of linear */ + if (info->surf->dim == ISL_SURF_DIM_1D) + s.TileMode = LINEAR; + s.TiledResourceMode = isl_tiling_to_gen_trmode[info->surf->tiling]; + } +#elif GEN_GEN >= 8 s.TileMode = isl_to_gen_tiling[info->surf->tiling]; #else s.TiledSurface = info->surf->tiling != ISL_TILING_LINEAR, -- 2.5.0.400.gff86faf _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev