diff --git a/.pick_status.json b/.pick_status.json index be25a526d0f..7dfecf58afa 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -834,7 +834,7 @@ "description": "blorp: use 2D dimension for 1D tiled images", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "31eeb72e45be6ef943df0b60f3cd7a646fa7b349", "notes": null diff --git a/src/intel/blorp/blorp_genX_exec_brw.h b/src/intel/blorp/blorp_genX_exec_brw.h index dc5b633bd30..b954f3d5117 100644 --- a/src/intel/blorp/blorp_genX_exec_brw.h +++ b/src/intel/blorp/blorp_genX_exec_brw.h @@ -1860,7 +1860,11 @@ xy_bcb_surf_dim(const struct isl_surf *surf) { switch (surf->dim) { case ISL_SURF_DIM_1D: - return XY_SURFTYPE_1D; + /* An undocumented assertion in simulation is that 1D surfaces must use + * LINEAR tiling. But that doesn't work, so instead consider 1D tiled + * surfaces as 2D with a Height=1. + */ + return surf->tiling != ISL_TILING_LINEAR ? XY_SURFTYPE_2D: XY_SURFTYPE_1D; case ISL_SURF_DIM_2D: return XY_SURFTYPE_2D; case ISL_SURF_DIM_3D: