From 4742300e6b5dc33c88b89387fdaebfc413a91486 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 3 May 2021 08:31:13 +0200 Subject: [PATCH] v3d: move NIR compiler options to GL driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Vulkan driver was already creating and using its own set of options, so the ones defined in the compiler are only used with GL, which is confusing. Move them to the GL driver. Reviewed-by: Alejandro PiƱeiro Part-of: --- src/broadcom/compiler/nir_to_vir.c | 42 ---------------------------- src/broadcom/compiler/v3d_compiler.h | 2 -- src/gallium/drivers/v3d/v3d_screen.c | 42 ++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 44 deletions(-) diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index 38a39008a9a..3cec6ba9bcd 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -3734,48 +3734,6 @@ nir_to_vir(struct v3d_compile *c) } } -const nir_shader_compiler_options v3d_nir_options = { - .lower_add_sat = true, - .lower_all_io_to_temps = true, - .lower_extract_byte = true, - .lower_extract_word = true, - .lower_bitfield_insert_to_shifts = true, - .lower_bitfield_extract_to_shifts = true, - .lower_bitfield_reverse = true, - .lower_bit_count = true, - .lower_cs_local_id_from_index = true, - .lower_ffract = true, - .lower_fmod = true, - .lower_pack_unorm_2x16 = true, - .lower_pack_snorm_2x16 = true, - .lower_pack_unorm_4x8 = true, - .lower_pack_snorm_4x8 = true, - .lower_unpack_unorm_4x8 = true, - .lower_unpack_snorm_4x8 = true, - .lower_pack_half_2x16 = true, - .lower_unpack_half_2x16 = true, - .lower_fdiv = true, - .lower_find_lsb = true, - .lower_ffma16 = true, - .lower_ffma32 = true, - .lower_ffma64 = true, - .lower_flrp32 = true, - .lower_fpow = true, - .lower_fsat = true, - .lower_fsqrt = true, - .lower_ifind_msb = true, - .lower_isign = true, - .lower_ldexp = true, - .lower_mul_high = true, - .lower_wpos_pntc = true, - .lower_rotate = true, - .lower_to_scalar = true, - .has_fsub = true, - .has_isub = true, - .divergence_analysis_options = - nir_divergence_multiple_workgroup_per_compute_subgroup, -}; - /** * When demoting a shader down to single-threaded, removes the THRSW * instructions (one will still be inserted at v3d_vir_to_qpu() for the diff --git a/src/broadcom/compiler/v3d_compiler.h b/src/broadcom/compiler/v3d_compiler.h index 3565a3a7541..fe2f44d8134 100644 --- a/src/broadcom/compiler/v3d_compiler.h +++ b/src/broadcom/compiler/v3d_compiler.h @@ -937,8 +937,6 @@ vir_has_uniform(struct qinst *inst) return inst->uniform != ~0; } -extern const nir_shader_compiler_options v3d_nir_options; - const struct v3d_compiler *v3d_compiler_init(const struct v3d_device_info *devinfo); void v3d_compiler_free(const struct v3d_compiler *compiler); void v3d_optimize_nir(struct nir_shader *s); diff --git a/src/gallium/drivers/v3d/v3d_screen.c b/src/gallium/drivers/v3d/v3d_screen.c index 3227817cf63..09e21a33782 100644 --- a/src/gallium/drivers/v3d/v3d_screen.c +++ b/src/gallium/drivers/v3d/v3d_screen.c @@ -628,6 +628,48 @@ v3d_screen_is_format_supported(struct pipe_screen *pscreen, return true; } +static const nir_shader_compiler_options v3d_nir_options = { + .lower_add_sat = true, + .lower_all_io_to_temps = true, + .lower_extract_byte = true, + .lower_extract_word = true, + .lower_bitfield_insert_to_shifts = true, + .lower_bitfield_extract_to_shifts = true, + .lower_bitfield_reverse = true, + .lower_bit_count = true, + .lower_cs_local_id_from_index = true, + .lower_ffract = true, + .lower_fmod = true, + .lower_pack_unorm_2x16 = true, + .lower_pack_snorm_2x16 = true, + .lower_pack_unorm_4x8 = true, + .lower_pack_snorm_4x8 = true, + .lower_unpack_unorm_4x8 = true, + .lower_unpack_snorm_4x8 = true, + .lower_pack_half_2x16 = true, + .lower_unpack_half_2x16 = true, + .lower_fdiv = true, + .lower_find_lsb = true, + .lower_ffma16 = true, + .lower_ffma32 = true, + .lower_ffma64 = true, + .lower_flrp32 = true, + .lower_fpow = true, + .lower_fsat = true, + .lower_fsqrt = true, + .lower_ifind_msb = true, + .lower_isign = true, + .lower_ldexp = true, + .lower_mul_high = true, + .lower_wpos_pntc = true, + .lower_rotate = true, + .lower_to_scalar = true, + .has_fsub = true, + .has_isub = true, + .divergence_analysis_options = + nir_divergence_multiple_workgroup_per_compute_subgroup, +}; + static const void * v3d_screen_get_compiler_options(struct pipe_screen *pscreen, enum pipe_shader_ir ir, unsigned shader)