From b7ca34db132bd0066131b958bbe6844c5ceff77c Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Fri, 20 Mar 2026 15:43:54 +0100 Subject: [PATCH] nir: unvendor ac_nir_lower_sin_cos So we can use it for Nvidia. Reviewed-by: Georg Lehmann Reviewed-by: Mel Henning Part-of: --- src/amd/common/meson.build | 1 - src/amd/common/nir/ac_nir.h | 2 -- src/amd/vulkan/radv_shader.c | 2 +- src/compiler/nir/meson.build | 1 + src/compiler/nir/nir.h | 2 ++ .../nir/nir_normalize_sin_cos.c} | 10 ++++------ src/gallium/drivers/radeonsi/si_shader.c | 2 +- 7 files changed, 9 insertions(+), 11 deletions(-) rename src/{amd/common/nir/ac_nir_lower_sin_cos.c => compiler/nir/nir_normalize_sin_cos.c} (69%) diff --git a/src/amd/common/meson.build b/src/amd/common/meson.build index 7fb919f2388..202fe686efc 100644 --- a/src/amd/common/meson.build +++ b/src/amd/common/meson.build @@ -172,7 +172,6 @@ amd_common_files = files( 'nir/ac_nir_lower_ngg_mesh.c', 'nir/ac_nir_lower_ps_early.c', 'nir/ac_nir_lower_ps_late.c', - 'nir/ac_nir_lower_sin_cos.c', 'nir/ac_nir_meta.h', 'nir/ac_nir_meta_cs_blit.c', 'nir/ac_nir_meta_cs_clear_copy_buffer.c', diff --git a/src/amd/common/nir/ac_nir.h b/src/amd/common/nir/ac_nir.h index 485e802ff34..8578747d853 100644 --- a/src/amd/common/nir/ac_nir.h +++ b/src/amd/common/nir/ac_nir.h @@ -89,8 +89,6 @@ nir_def * ac_nir_load_smem(nir_builder *b, unsigned num_components, nir_def *addr, nir_def *offset, unsigned align_mul, enum gl_access_qualifier access); -bool ac_nir_lower_sin_cos(nir_shader *shader); - typedef struct { enum amd_gfx_level gfx_level; bool has_ls_vgpr_init_bug; diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 418dc74f45f..77df6fd623e 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -626,7 +626,7 @@ radv_shader_spirv_to_nir(struct radv_device *device, const struct radv_shader_st NIR_PASS(_, nir, nir_lower_doubles, NULL, lower_doubles); - NIR_PASS(_, nir, ac_nir_lower_sin_cos); + NIR_PASS(_, nir, nir_normalize_sin_cos); } if (nir->info.uses_printf) diff --git a/src/compiler/nir/meson.build b/src/compiler/nir/meson.build index d631fdd705f..4df30d9b2d0 100644 --- a/src/compiler/nir/meson.build +++ b/src/compiler/nir/meson.build @@ -252,6 +252,7 @@ else 'nir_move_output_stores_to_end.c', 'nir_move_vec_src_uses_to_dest.c', 'nir_normalize_cubemap_coords.c', + 'nir_normalize_sin_cos.c', 'nir_opt_access.c', 'nir_opt_barriers.c', 'nir_opt_barycentric.c', diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index 884a8775892..c13d0cfac95 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -7082,6 +7082,8 @@ bool nir_unlower_io_to_vars(nir_shader *nir, bool keep_intrinsics); bool nir_opt_barycentric(nir_shader *shader, bool lower_sample_to_pos); +bool nir_normalize_sin_cos(nir_shader *shader); + #include "nir_inline_helpers.h" static inline bool diff --git a/src/amd/common/nir/ac_nir_lower_sin_cos.c b/src/compiler/nir/nir_normalize_sin_cos.c similarity index 69% rename from src/amd/common/nir/ac_nir_lower_sin_cos.c rename to src/compiler/nir/nir_normalize_sin_cos.c index bb6b287dc78..8a928efb88b 100644 --- a/src/amd/common/nir/ac_nir_lower_sin_cos.c +++ b/src/compiler/nir/nir_normalize_sin_cos.c @@ -4,13 +4,11 @@ * SPDX-License-Identifier: MIT */ -#include "ac_nir.h" -#include "ac_nir_helpers.h" - +#include "nir.h" #include "nir_builder.h" static bool -lower_sin_cos(struct nir_builder *b, nir_alu_instr *sincos, UNUSED void *_) +normalize_sin_cos(struct nir_builder *b, nir_alu_instr *sincos, UNUSED void *_) { if (sincos->op != nir_op_fsin && sincos->op != nir_op_fcos) return false; @@ -26,7 +24,7 @@ lower_sin_cos(struct nir_builder *b, nir_alu_instr *sincos, UNUSED void *_) } bool -ac_nir_lower_sin_cos(nir_shader *shader) +nir_normalize_sin_cos(nir_shader *shader) { - return nir_shader_alu_pass(shader, lower_sin_cos, nir_metadata_control_flow, NULL); + return nir_shader_alu_pass(shader, normalize_sin_cos, nir_metadata_control_flow, NULL); } diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 1d3e857d6db..8ccb24db0af 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -657,7 +657,7 @@ static void si_preprocess_nir(struct si_nir_shader_ctx *ctx) }; NIR_PASS(progress, nir, nir_lower_image, &lower_image_options); - NIR_PASS(progress, nir, ac_nir_lower_sin_cos); + NIR_PASS(progress, nir, nir_normalize_sin_cos); NIR_PASS(progress, nir, si_nir_lower_intrinsics_early); if (nir->info.stage == MESA_SHADER_TASK) {