diff --git a/src/asahi/compiler/agx_nir.h b/src/asahi/compiler/agx_nir.h index d7866ba39d0..651ea069ed4 100644 --- a/src/asahi/compiler/agx_nir.h +++ b/src/asahi/compiler/agx_nir.h @@ -8,6 +8,7 @@ #include struct nir_shader; +struct nir_instr; bool agx_nir_lower_address(struct nir_shader *shader); bool agx_nir_lower_algebraic_late(struct nir_shader *shader); @@ -21,3 +22,8 @@ bool agx_nir_lower_layer(struct nir_shader *s); bool agx_nir_lower_clip_distance(struct nir_shader *s); bool agx_nir_lower_subgroups(struct nir_shader *s); bool agx_nir_lower_fminmax(struct nir_shader *s); + +bool agx_nir_lower_texture_early(struct nir_shader *s, bool support_lod_bias); +bool agx_nir_lower_texture(struct nir_shader *s, bool support_rgb32); +bool agx_nir_lower_multisampled_image_store(struct nir_shader *s); +bool agx_nir_needs_texture_crawl(struct nir_instr *instr); diff --git a/src/asahi/lib/agx_nir_lower_texture.c b/src/asahi/compiler/agx_nir_lower_texture.c similarity index 99% rename from src/asahi/lib/agx_nir_lower_texture.c rename to src/asahi/compiler/agx_nir_lower_texture.c index a90047950a1..ee680bf2707 100644 --- a/src/asahi/lib/agx_nir_lower_texture.c +++ b/src/asahi/compiler/agx_nir_lower_texture.c @@ -8,9 +8,10 @@ #include "compiler/nir/nir.h" #include "compiler/nir/nir_builder.h" -#include "libagx/libagx.h" -#include "agx_nir_passes.h" +#include "agx_nir.h" +#include "agx_nir_texture.h" #include "glsl_types.h" +#include "libagx.h" #include "nir_builder_opcodes.h" #include "nir_builtin_builder.h" #include "nir_intrinsics.h" diff --git a/src/asahi/lib/agx_nir_passes.h b/src/asahi/compiler/agx_nir_texture.h similarity index 55% rename from src/asahi/lib/agx_nir_passes.h rename to src/asahi/compiler/agx_nir_texture.h index a80653ad1e5..d132c6707de 100644 --- a/src/asahi/lib/agx_nir_passes.h +++ b/src/asahi/compiler/agx_nir_texture.h @@ -1,18 +1,10 @@ /* - * Copyright 2024 Alyssa Rosenzweig + * Copyright 2023 Alyssa Rosenzweig * SPDX-License-Identifier: MIT */ #pragma once -#include -#include -#include "agx_pack.h" -#include "shader_enums.h" - -struct nir_shader; -struct nir_instr; - /* Texture backend flags */ #define AGX_TEXTURE_FLAG_NO_CLAMP (1 << 0) @@ -24,8 +16,3 @@ struct nir_instr; #define AGX_TEXTURE_BUFFER_MAX_HEIGHT 16384 #define AGX_TEXTURE_BUFFER_MAX_SIZE \ (AGX_TEXTURE_BUFFER_WIDTH * AGX_TEXTURE_BUFFER_MAX_HEIGHT) - -bool agx_nir_lower_texture_early(struct nir_shader *s, bool support_lod_bias); -bool agx_nir_lower_texture(struct nir_shader *s, bool support_rgb32); -bool agx_nir_lower_multisampled_image_store(struct nir_shader *s); -bool agx_nir_needs_texture_crawl(struct nir_instr *instr); diff --git a/src/asahi/compiler/meson.build b/src/asahi/compiler/meson.build index db6cdbef0d1..dbb8d7a30b7 100644 --- a/src/asahi/compiler/meson.build +++ b/src/asahi/compiler/meson.build @@ -16,6 +16,7 @@ libasahi_agx_files = files( 'agx_nir_lower_interpolation.c', 'agx_nir_lower_shared_bitsize.c', 'agx_nir_lower_subgroups.c', + 'agx_nir_lower_texture.c', 'agx_nir_opt_preamble.c', 'agx_lower_64bit.c', 'agx_lower_divergent_shuffle.c', @@ -94,7 +95,7 @@ idep_agx_builder_h = declare_dependency( libasahi_compiler = static_library( 'asahi_compiler', [libasahi_agx_files, agx_opcodes_c, agx_nir_algebraic_c], - dependencies: [idep_nir, idep_agx_opcodes_h, idep_agx_builder_h, idep_mesautil], + dependencies: [idep_nir, idep_agx_opcodes_h, idep_agx_builder_h, idep_mesautil, idep_libagx], c_args : [no_override_init_args, '-Wno-c2x-extensions'], gnu_symbol_visibility : 'hidden', build_by_default : false, diff --git a/src/asahi/lib/agx_bg_eot.c b/src/asahi/lib/agx_bg_eot.c index 1bf0f75916d..6947829ac55 100644 --- a/src/asahi/lib/agx_bg_eot.c +++ b/src/asahi/lib/agx_bg_eot.c @@ -5,8 +5,9 @@ #include "agx_bg_eot.h" #include "agx_compile.h" -#include "agx_device.h" /* for AGX_MEMORY_TYPE_SHADER */ -#include "agx_nir_passes.h" +#include "agx_device.h" +#include "agx_nir.h" +#include "agx_nir_texture.h" #include "agx_tilebuffer.h" #include "nir.h" #include "nir_builder.h" diff --git a/src/asahi/lib/agx_nir_prolog_epilog.c b/src/asahi/lib/agx_nir_prolog_epilog.c index fcd3e442cfe..0db1f33648a 100644 --- a/src/asahi/lib/agx_nir_prolog_epilog.c +++ b/src/asahi/lib/agx_nir_prolog_epilog.c @@ -8,9 +8,9 @@ #include "util/format/u_formats.h" #include "agx_abi.h" #include "agx_linker.h" +#include "agx_nir.h" #include "agx_nir_lower_gs.h" #include "agx_nir_lower_vbo.h" -#include "agx_nir_passes.h" #include "agx_pack.h" #include "agx_tilebuffer.h" #include "nir.h" diff --git a/src/asahi/lib/meson.build b/src/asahi/lib/meson.build index 305b82e0d4a..9cfa3e06309 100644 --- a/src/asahi/lib/meson.build +++ b/src/asahi/lib/meson.build @@ -19,7 +19,6 @@ libasahi_lib_files = files( 'agx_nir_lower_msaa.c', 'agx_nir_lower_sample_intrinsics.c', 'agx_nir_lower_tess.c', - 'agx_nir_lower_texture.c', 'agx_nir_lower_tilebuffer.c', 'agx_nir_lower_uvs.c', 'agx_nir_lower_vbo.c', diff --git a/src/asahi/vulkan/hk_buffer_view.c b/src/asahi/vulkan/hk_buffer_view.c index 33ac27f781d..60586288f6b 100644 --- a/src/asahi/vulkan/hk_buffer_view.c +++ b/src/asahi/vulkan/hk_buffer_view.c @@ -12,7 +12,7 @@ #include "util/format/u_formats.h" #include "agx_helpers.h" -#include "agx_nir_passes.h" +#include "agx_nir_texture.h" #include "agx_pack.h" #include "hk_buffer.h" #include "hk_device.h" @@ -20,8 +20,6 @@ #include "hk_image.h" #include "hk_physical_device.h" -#include "vk_format.h" - VkFormatFeatureFlags2 hk_get_buffer_format_features(struct hk_physical_device *pdev, VkFormat vk_format) diff --git a/src/asahi/vulkan/hk_image_view.c b/src/asahi/vulkan/hk_image_view.c index cd09dfc13d6..5fe68cad490 100644 --- a/src/asahi/vulkan/hk_image_view.c +++ b/src/asahi/vulkan/hk_image_view.c @@ -9,7 +9,7 @@ #include "vulkan/vulkan_core.h" #include "agx_helpers.h" -#include "agx_nir_passes.h" +#include "agx_nir_texture.h" #include "agx_pack.h" #include "hk_device.h" #include "hk_entrypoints.h" diff --git a/src/asahi/vulkan/hk_nir_lower_descriptors.c b/src/asahi/vulkan/hk_nir_lower_descriptors.c index 6fc1ede4fb7..fac81b4fb19 100644 --- a/src/asahi/vulkan/hk_nir_lower_descriptors.c +++ b/src/asahi/vulkan/hk_nir_lower_descriptors.c @@ -6,8 +6,7 @@ */ #include "pipe/p_defines.h" #include "vulkan/vulkan_core.h" -#include "agx_nir_passes.h" -#include "agx_pack.h" +#include "agx_nir_texture.h" #include "hk_cmd_buffer.h" #include "hk_descriptor_set.h" #include "hk_descriptor_set_layout.h" @@ -16,7 +15,6 @@ #include "nir.h" #include "nir_builder.h" #include "nir_builder_opcodes.h" -#include "nir_deref.h" #include "nir_intrinsics.h" #include "nir_intrinsics_indices.h" #include "shader_enums.h" diff --git a/src/asahi/vulkan/hk_physical_device.c b/src/asahi/vulkan/hk_physical_device.c index 0689066a999..fe58ae40f7b 100644 --- a/src/asahi/vulkan/hk_physical_device.c +++ b/src/asahi/vulkan/hk_physical_device.c @@ -6,9 +6,9 @@ */ #include "hk_physical_device.h" +#include "asahi/compiler/agx_nir_texture.h" #include "asahi/lib/agx_device.h" #include "asahi/lib/agx_nir_lower_vbo.h" -#include "asahi/lib/agx_nir_passes.h" #include "util/disk_cache.h" #include "util/mesa-sha1.h" #include "git_sha1.h" @@ -21,10 +21,8 @@ #include "hk_wsi.h" #include "util/simple_mtx.h" -#include "util/u_debug.h" #include "vulkan/vulkan_core.h" #include "vulkan/wsi/wsi_common.h" -#include "vk_device.h" #include "vk_drm_syncobj.h" #include "vk_shader_module.h" diff --git a/src/asahi/vulkan/hk_shader.c b/src/asahi/vulkan/hk_shader.c index 944c653a1d3..d82493c7ac7 100644 --- a/src/asahi/vulkan/hk_shader.c +++ b/src/asahi/vulkan/hk_shader.c @@ -36,9 +36,10 @@ #include "vk_ycbcr_conversion.h" #include "asahi/compiler/agx_compile.h" +#include "asahi/compiler/agx_nir.h" +#include "asahi/compiler/agx_nir_texture.h" #include "asahi/lib/agx_abi.h" #include "asahi/lib/agx_linker.h" -#include "asahi/lib/agx_nir_passes.h" #include "asahi/lib/agx_tilebuffer.h" #include "asahi/lib/agx_uvs.h" #include "compiler/spirv/nir_spirv.h" diff --git a/src/gallium/drivers/asahi/agx_blit.c b/src/gallium/drivers/asahi/agx_blit.c index 7334ba2c36a..8b8842bba6d 100644 --- a/src/gallium/drivers/asahi/agx_blit.c +++ b/src/gallium/drivers/asahi/agx_blit.c @@ -8,8 +8,8 @@ */ #include +#include "asahi/compiler/agx_nir_texture.h" #include "asahi/layout/layout.h" -#include "asahi/lib/agx_nir_passes.h" #include "compiler/nir/nir_builder.h" #include "compiler/nir/nir_format_convert.h" #include "gallium/auxiliary/util/u_blitter.h" diff --git a/src/gallium/drivers/asahi/agx_nir_lower_bindings.c b/src/gallium/drivers/asahi/agx_nir_lower_bindings.c index 1a81f1b3222..0a7d6b3ef13 100644 --- a/src/gallium/drivers/asahi/agx_nir_lower_bindings.c +++ b/src/gallium/drivers/asahi/agx_nir_lower_bindings.c @@ -3,8 +3,7 @@ * SPDX-License-Identifier: MIT */ -#include "asahi/lib/agx_nir_passes.h" -#include "compiler/glsl_types.h" +#include "asahi/compiler/agx_nir.h" #include "compiler/nir/nir_builder.h" #include "util/bitset.h" #include "agx_state.h" @@ -12,7 +11,6 @@ #include "nir_builder_opcodes.h" #include "nir_intrinsics.h" #include "nir_intrinsics_indices.h" -#include "shader_enums.h" /* * Lower binding table textures and images to texture state registers and (if diff --git a/src/gallium/drivers/asahi/agx_state.c b/src/gallium/drivers/asahi/agx_state.c index 74729fcc8d9..ba8077b421e 100644 --- a/src/gallium/drivers/asahi/agx_state.c +++ b/src/gallium/drivers/asahi/agx_state.c @@ -9,11 +9,11 @@ #include #include #include "asahi/compiler/agx_compile.h" +#include "asahi/compiler/agx_nir.h" #include "asahi/genxml/agx_pack.h" #include "asahi/layout/layout.h" #include "asahi/lib/agx_abi.h" #include "asahi/lib/agx_helpers.h" -#include "asahi/lib/agx_nir_passes.h" #include "asahi/lib/agx_ppp.h" #include "asahi/lib/agx_usc.h" #include "asahi/libagx/compression.h" @@ -41,17 +41,13 @@ #include "util/compiler.h" #include "util/format/u_format.h" #include "util/format/u_formats.h" -#include "util/format_srgb.h" #include "util/half_float.h" #include "util/hash_table.h" #include "util/macros.h" #include "util/ralloc.h" -#include "util/u_dump.h" #include "util/u_inlines.h" #include "util/u_math.h" #include "util/u_memory.h" -#include "util/u_prim.h" -#include "util/u_resource.h" #include "util/u_transfer.h" #include "util/u_upload_mgr.h" #include "agx_bg_eot.h" @@ -67,7 +63,6 @@ #include "nir_builder_opcodes.h" #include "nir_intrinsics.h" #include "nir_intrinsics_indices.h" -#include "nir_lower_blend.h" #include "nir_xfb_info.h" #include "pool.h" diff --git a/src/gallium/drivers/asahi/agx_state.h b/src/gallium/drivers/asahi/agx_state.h index 394f56f11be..acbc5c0fddf 100644 --- a/src/gallium/drivers/asahi/agx_state.h +++ b/src/gallium/drivers/asahi/agx_state.h @@ -33,7 +33,7 @@ #include "util/u_range.h" #include "agx_bg_eot.h" #include "agx_helpers.h" -#include "agx_nir_passes.h" +#include "agx_nir_texture.h" #ifdef __GLIBC__ #include