intel/fs: use generated helpers for Wa_1209978020 / Wa_18012201914

Wa_1209978020 is a clone of Wa_18012201914.  Update references to
refer to the originating bug, and use generated helpers to ensure it
is applied to future platforms as needed.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21741>
This commit is contained in:
Mark Janes
2023-02-07 19:41:01 -08:00
committed by Marge Bot
parent c92d589597
commit bc04e2daca
2 changed files with 5 additions and 4 deletions

View File

@@ -1062,14 +1062,15 @@ lower_sampler_logical_send_gfx7(const fs_builder &bld, fs_inst *inst, opcode op,
if (min_lod.file != BAD_FILE) {
/* Account for all of the missing coordinate sources */
if (op == SHADER_OPCODE_TXD && devinfo->verx10 >= 125) {
if (op == SHADER_OPCODE_TXD &&
intel_needs_workaround(devinfo, 18012201914)) {
/* On DG2 and newer platforms, sample_d can only be used with 1D and
* 2D surfaces, so the maximum number of gradient components is 2.
* In spite of this limitation, the Bspec lists a mysterious R
* component before the min_lod, so the maximum coordinate components
* is 3.
*
* Wa_1209978020
* Wa_18012201914
*/
length += 3 - coord_components;
length += (2 - grad_components) * 2;

View File

@@ -956,8 +956,8 @@ brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir,
.lower_txf_offset = true,
.lower_rect_offset = true,
.lower_txd_cube_map = true,
.lower_txd_3d = devinfo->verx10 >= 125, /* Wa_1209978020 */
.lower_txd_array = devinfo->verx10 >= 125, /* Wa_1209978020 */
.lower_txd_3d = intel_needs_workaround(devinfo, 18012201914),
.lower_txd_array = intel_needs_workaround(devinfo, 18012201914),
.lower_txb_shadow_clamp = true,
.lower_txd_shadow_clamp = true,
.lower_txd_offset_clamp = true,