diff --git a/src/amd/compiler/instruction_selection/aco_select_nir.cpp b/src/amd/compiler/instruction_selection/aco_select_nir.cpp index 84bc23ddb01..3ce03241fc8 100644 --- a/src/amd/compiler/instruction_selection/aco_select_nir.cpp +++ b/src/amd/compiler/instruction_selection/aco_select_nir.cpp @@ -683,7 +683,7 @@ visit_tex(isel_context* ctx, nir_tex_instr* instr) tex->tfe = instr->is_sparse; tex->d16 = d16; tex->a16 = a16; - if (implicit_derivs) + if (implicit_derivs && !has_wqm_coord) set_wqm(ctx, true); if (tg4_integer_cube_workaround) { diff --git a/src/amd/compiler/instruction_selection/aco_select_nir_intrinsics.cpp b/src/amd/compiler/instruction_selection/aco_select_nir_intrinsics.cpp index 87d2e5c7660..0c9fbb054d7 100644 --- a/src/amd/compiler/instruction_selection/aco_select_nir_intrinsics.cpp +++ b/src/amd/compiler/instruction_selection/aco_select_nir_intrinsics.cpp @@ -5134,6 +5134,7 @@ visit_intrinsic(isel_context* ctx, nir_intrinsic_instr* instr) vec->definitions[0] = Definition(dst); ctx->block->instructions.emplace_back(std::move(vec)); + set_wqm(ctx, true); break; } case nir_intrinsic_store_scalar_arg_amd: {