diff --git a/.pick_status.json b/.pick_status.json index 446dd274359..c6442eb6766 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5964,7 +5964,7 @@ "description": "isl: fix layout for comparing surf and view properties", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "628bfaf1c6f207ee01c59e236cef3fae942d6c55", "notes": null diff --git a/src/intel/isl/isl_surface_state.c b/src/intel/isl/isl_surface_state.c index d3e58b80f72..7af01112238 100644 --- a/src/intel/isl/isl_surface_state.c +++ b/src/intel/isl/isl_surface_state.c @@ -206,10 +206,17 @@ isl_genX(surf_fill_state_s)(const struct isl_device *dev, void *state, ASSERTED const struct isl_format_layout *surf_fmtl = isl_format_get_layout(info->surf->format); ASSERTED const struct isl_format_layout *view_fmtl = - isl_format_get_layout(info->surf->format); + isl_format_get_layout(info->view->format); + assert(surf_fmtl->bpb == view_fmtl->bpb); - assert(surf_fmtl->bw == view_fmtl->bw); - assert(surf_fmtl->bh == view_fmtl->bh); + + /* We could be attempting to upload blocks of compressed data via an + * uncompressed view, blocksize will not match there. + */ + if (isl_format_is_compressed(info->view->format)) { + assert(surf_fmtl->bw == view_fmtl->bw); + assert(surf_fmtl->bh == view_fmtl->bh); + } } s.SurfaceFormat = info->view->format;