diff --git a/.pick_status.json b/.pick_status.json index 57b639ba740..68ac1d485f8 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1344,7 +1344,7 @@ "description": "isl: fix condition for enabling sampler route to lsc", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "70382f7f06561dcd94e4d2e6f2bedc8dbeec5d8e", "notes": null 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 4e4d24cbe31..c2be341a595 100644 --- a/src/intel/isl/isl_surface_state.c +++ b/src/intel/isl/isl_surface_state.c @@ -578,8 +578,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)