diff --git a/src/intel/isl/isl_format.c b/src/intel/isl/isl_format.c index 59f6c551e3b..2ab710d58b7 100644 --- a/src/intel/isl/isl_format.c +++ b/src/intel/isl/isl_format.c @@ -1220,12 +1220,6 @@ isl_format_rgbx_to_rgba(enum isl_format rgbx) bool isl_format_support_sampler_route_to_lsc(enum isl_format fmt) { - /* TODO/FIXME: even only enabling the optimization with formats below this - * is causing some tests to fail so completely disabling this optimization - * for now. - */ - return false; - switch (fmt) { case ISL_FORMAT_R8_UNORM: case ISL_FORMAT_R8G8_UNORM: diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c index 3f5295c84df..4be658090d8 100644 --- a/src/intel/isl/isl_surface_state.c +++ b/src/intel/isl/isl_surface_state.c @@ -579,8 +579,10 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state, s.ResourceMinLOD = info->view->min_lod_clamp; #if GFX_VERx10 >= 200 - s.EnableSamplerRoutetoLSC = isl_format_support_sampler_route_to_lsc(info->view->format); - s.EnableSamplerRoutetoLSC &= (s.SurfaceType == SURFTYPE_2D); + s.EnableSamplerRoutetoLSC = + isl_format_support_sampler_route_to_lsc(info->view->format); + s.EnableSamplerRoutetoLSC &= (s.SurfaceType == SURFTYPE_2D && + info->view->array_len == 1); /* Wa_14018471104: * For APIs that use ResourceMinLod, do the following: (remains same as before)