diff --git a/src/intel/compiler/brw_lower_logical_sends.cpp b/src/intel/compiler/brw_lower_logical_sends.cpp index a83ce223106..9799f54ec01 100644 --- a/src/intel/compiler/brw_lower_logical_sends.cpp +++ b/src/intel/compiler/brw_lower_logical_sends.cpp @@ -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; diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c index c7788b83db3..b340c09c0b5 100644 --- a/src/intel/compiler/brw_nir.c +++ b/src/intel/compiler/brw_nir.c @@ -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,