blob: e2c8b93aa516bdf91799926f6e068f7c57c62794 [file] [log] [blame]
# Copyright 2023 Google, LLC
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
import("../../../mesa.gni")
mesa_source_set("gallivm") {
sources = [
"draw/draw_llvm.c",
"draw/draw_llvm.h",
"draw/draw_llvm_sample.c",
"draw/draw_pt_fetch_shade_pipeline_llvm.c",
"draw/draw_vs_llvm.c",
"gallivm/lp_bld.h",
"gallivm/lp_bld_arit.c",
"gallivm/lp_bld_arit.h",
"gallivm/lp_bld_arit_overflow.c",
"gallivm/lp_bld_arit_overflow.h",
"gallivm/lp_bld_assert.c",
"gallivm/lp_bld_assert.h",
"gallivm/lp_bld_bitarit.c",
"gallivm/lp_bld_bitarit.h",
"gallivm/lp_bld_const.c",
"gallivm/lp_bld_const.h",
"gallivm/lp_bld_conv.c",
"gallivm/lp_bld_conv.h",
"gallivm/lp_bld_coro.c",
"gallivm/lp_bld_coro.h",
"gallivm/lp_bld_debug.cpp",
"gallivm/lp_bld_debug.h",
"gallivm/lp_bld_flow.c",
"gallivm/lp_bld_flow.h",
"gallivm/lp_bld_format.c",
"gallivm/lp_bld_format.h",
"gallivm/lp_bld_format_aos.c",
"gallivm/lp_bld_format_aos_array.c",
"gallivm/lp_bld_format_float.c",
"gallivm/lp_bld_format_s3tc.c",
"gallivm/lp_bld_format_soa.c",
"gallivm/lp_bld_format_srgb.c",
"gallivm/lp_bld_format_yuv.c",
"gallivm/lp_bld_fuchsia_memory_mapper.cpp",
"gallivm/lp_bld_fuchsia_memory_mapper.hpp",
"gallivm/lp_bld_gather.c",
"gallivm/lp_bld_gather.h",
"gallivm/lp_bld_init.c",
"gallivm/lp_bld_init.h",
"gallivm/lp_bld_intr.c",
"gallivm/lp_bld_intr.h",
"gallivm/lp_bld_ir_common.c",
"gallivm/lp_bld_ir_common.h",
"gallivm/lp_bld_jit_types.c",
"gallivm/lp_bld_jit_types.h",
"gallivm/lp_bld_limits.h",
"gallivm/lp_bld_logic.c",
"gallivm/lp_bld_logic.h",
"gallivm/lp_bld_misc.cpp",
"gallivm/lp_bld_misc.h",
"gallivm/lp_bld_nir.c",
"gallivm/lp_bld_nir.h",
"gallivm/lp_bld_nir_aos.c",
"gallivm/lp_bld_nir_soa.c",
"gallivm/lp_bld_pack.c",
"gallivm/lp_bld_pack.h",
"gallivm/lp_bld_printf.c",
"gallivm/lp_bld_printf.h",
"gallivm/lp_bld_quad.c",
"gallivm/lp_bld_quad.h",
"gallivm/lp_bld_sample.c",
"gallivm/lp_bld_sample.h",
"gallivm/lp_bld_sample_aos.c",
"gallivm/lp_bld_sample_aos.h",
"gallivm/lp_bld_sample_soa.c",
"gallivm/lp_bld_struct.c",
"gallivm/lp_bld_struct.h",
"gallivm/lp_bld_swizzle.c",
"gallivm/lp_bld_swizzle.h",
"gallivm/lp_bld_tgsi.c",
"gallivm/lp_bld_tgsi.h",
"gallivm/lp_bld_tgsi_action.c",
"gallivm/lp_bld_tgsi_action.h",
"gallivm/lp_bld_tgsi_aos.c",
"gallivm/lp_bld_tgsi_info.c",
"gallivm/lp_bld_tgsi_soa.c",
"gallivm/lp_bld_type.c",
"gallivm/lp_bld_type.h",
"nir/nir_to_tgsi_info.c",
"nir/nir_to_tgsi_info.h",
"tessellator/p_tessellator.cpp",
"tessellator/p_tessellator.h",
"tessellator/tessellator.cpp",
"tessellator/tessellator.hpp",
]
include_dirs = [
"$mesa_build_root/include/",
"$mesa_build_root/src/compiler/nir",
"$mesa_build_root/src/gallium/auxiliary/",
"$mesa_build_root/src/gallium/include/",
"$mesa_build_root/src/",
]
deps = [
":gen",
"$mesa_build_root/src/compiler/nir",
# TODO(https://fxbug.dev/321122796):
# These are for marking JIT memory as executable in lp_bld_fuchsia_memory_mapper.cpp.
# Perhaps this functionality should be moved into a separate target?
"//sdk/fidl/fuchsia.vulkan.loader:fuchsia.vulkan.loader_cpp",
"//sdk/lib/component/incoming/cpp",
]
# Suppress warnings.
configs = [
"$mesa_build_root:build_config",
"//build/config:Wno-unused-but-set-variable",
"//build/config:Wno-strict-prototypes",
"//third_party/mesa:LLVMHeader_config",
]
}
mesa_source_set("auxiliary") {
deps = [
":gallivm",
":gen",
"$mesa_build_root/src/compiler/nir",
]
sources = [
"cso_cache/cso_cache.c",
"cso_cache/cso_cache.h",
"cso_cache/cso_context.c",
"cso_cache/cso_context.h",
"cso_cache/cso_hash.c",
"cso_cache/cso_hash.h",
"draw/draw_cliptest_tmp.h",
"draw/draw_context.c",
"draw/draw_context.h",
"draw/draw_decompose_tmp.h",
"draw/draw_fs.c",
"draw/draw_fs.h",
"draw/draw_gs.c",
"draw/draw_gs.h",
"draw/draw_gs_tmp.h",
"draw/draw_pipe.c",
"draw/draw_pipe.h",
"draw/draw_pipe_aaline.c",
"draw/draw_pipe_aapoint.c",
"draw/draw_pipe_clip.c",
"draw/draw_pipe_cull.c",
"draw/draw_pipe_flatshade.c",
"draw/draw_pipe_offset.c",
"draw/draw_pipe_pstipple.c",
"draw/draw_pipe_stipple.c",
"draw/draw_pipe_twoside.c",
"draw/draw_pipe_unfilled.c",
"draw/draw_pipe_user_cull.c",
"draw/draw_pipe_util.c",
"draw/draw_pipe_validate.c",
"draw/draw_pipe_vbuf.c",
"draw/draw_pipe_wide_line.c",
"draw/draw_pipe_wide_point.c",
"draw/draw_prim_assembler.c",
"draw/draw_prim_assembler.h",
"draw/draw_prim_assembler_tmp.h",
"draw/draw_private.h",
"draw/draw_pt.c",
"draw/draw_pt.h",
"draw/draw_pt_decompose.h",
"draw/draw_pt_emit.c",
"draw/draw_pt_fetch.c",
"draw/draw_pt_fetch_shade_emit.c",
"draw/draw_pt_fetch_shade_pipeline.c",
"draw/draw_pt_post_vs.c",
"draw/draw_pt_so_emit.c",
"draw/draw_pt_util.c",
"draw/draw_pt_vsplit.c",
"draw/draw_pt_vsplit_tmp.h",
"draw/draw_so_emit_tmp.h",
"draw/draw_split_tmp.h",
"draw/draw_tess.c",
"draw/draw_tess.h",
"draw/draw_vbuf.h",
"draw/draw_vertex.c",
"draw/draw_vertex.h",
"draw/draw_vs.c",
"draw/draw_vs.h",
"draw/draw_vs_exec.c",
"draw/draw_vs_variant.c",
"driver_ddebug/dd_context.c",
"driver_ddebug/dd_draw.c",
"driver_ddebug/dd_pipe.h",
"driver_ddebug/dd_public.h",
"driver_ddebug/dd_screen.c",
"driver_ddebug/dd_util.h",
"driver_noop/noop_pipe.c",
"driver_noop/noop_public.h",
"driver_noop/noop_state.c",
"driver_trace/tr_context.c",
"driver_trace/tr_context.h",
"driver_trace/tr_dump.c",
"driver_trace/tr_dump.h",
"driver_trace/tr_dump_defines.h",
"driver_trace/tr_dump_state.c",
"driver_trace/tr_dump_state.h",
"driver_trace/tr_public.h",
"driver_trace/tr_screen.c",
"driver_trace/tr_screen.h",
"driver_trace/tr_texture.c",
"driver_trace/tr_texture.h",
"hud/font.c",
"hud/font.h",
"hud/hud_context.c",
"hud/hud_context.h",
"hud/hud_cpu.c",
"hud/hud_cpufreq.c",
"hud/hud_diskstat.c",
"hud/hud_driver_query.c",
"hud/hud_fps.c",
"hud/hud_nic.c",
"hud/hud_private.h",
"hud/hud_sensors_temp.c",
"indices/u_indices.h",
"indices/u_indices_priv.h",
"indices/u_primconvert.c",
"indices/u_primconvert.h",
"nir/nir_draw_helpers.c",
"nir/nir_draw_helpers.h",
"nir/nir_helpers.c",
"nir/nir_helpers.h",
"nir/nir_to_tgsi.c",
"nir/nir_to_tgsi.h",
"nir/tgsi_to_nir.c",
"nir/tgsi_to_nir.h",
"os/os_mman.h",
"os/os_process.c",
"os/os_process.h",
"os/os_thread.h",
"pipebuffer/pb_buffer.h",
"pipebuffer/pb_buffer_fenced.c",
"pipebuffer/pb_buffer_fenced.h",
"pipebuffer/pb_bufmgr.h",
"pipebuffer/pb_bufmgr_cache.c",
"pipebuffer/pb_bufmgr_debug.c",
"pipebuffer/pb_bufmgr_mm.c",
"pipebuffer/pb_bufmgr_slab.c",
"pipebuffer/pb_cache.c",
"pipebuffer/pb_cache.h",
"pipebuffer/pb_slab.c",
"pipebuffer/pb_slab.h",
"pipebuffer/pb_validate.c",
"pipebuffer/pb_validate.h",
"postprocess/filters.h",
"postprocess/postprocess.h",
"postprocess/pp_celshade.c",
"postprocess/pp_celshade.h",
"postprocess/pp_colors.c",
"postprocess/pp_colors.h",
"postprocess/pp_filters.h",
"postprocess/pp_init.c",
"postprocess/pp_mlaa.c",
"postprocess/pp_mlaa.h",
"postprocess/pp_mlaa_areamap.h",
"postprocess/pp_private.h",
"postprocess/pp_program.c",
"postprocess/pp_run.c",
"rtasm/rtasm_execmem.c",
"rtasm/rtasm_execmem.h",
"rtasm/rtasm_x86sse.c",
"rtasm/rtasm_x86sse.h",
"tgsi/tgsi_aa_point.c",
"tgsi/tgsi_aa_point.h",
"tgsi/tgsi_build.c",
"tgsi/tgsi_build.h",
"tgsi/tgsi_dump.c",
"tgsi/tgsi_dump.h",
"tgsi/tgsi_dynamic_indexing.c",
"tgsi/tgsi_exec.c",
"tgsi/tgsi_exec.h",
"tgsi/tgsi_from_mesa.c",
"tgsi/tgsi_from_mesa.h",
"tgsi/tgsi_info.c",
"tgsi/tgsi_info.h",
"tgsi/tgsi_info_opcodes.h",
"tgsi/tgsi_iterate.c",
"tgsi/tgsi_iterate.h",
"tgsi/tgsi_lowering.c",
"tgsi/tgsi_lowering.h",
"tgsi/tgsi_opcode_tmp.h",
"tgsi/tgsi_parse.c",
"tgsi/tgsi_parse.h",
"tgsi/tgsi_point_sprite.c",
"tgsi/tgsi_point_sprite.h",
"tgsi/tgsi_sanity.c",
"tgsi/tgsi_sanity.h",
"tgsi/tgsi_scan.c",
"tgsi/tgsi_scan.h",
"tgsi/tgsi_strings.c",
"tgsi/tgsi_strings.h",
"tgsi/tgsi_text.c",
"tgsi/tgsi_text.h",
"tgsi/tgsi_transform.c",
"tgsi/tgsi_transform.h",
"tgsi/tgsi_two_side.c",
"tgsi/tgsi_two_side.h",
"tgsi/tgsi_ureg.c",
"tgsi/tgsi_ureg.h",
"tgsi/tgsi_util.c",
"tgsi/tgsi_util.h",
"tgsi/tgsi_vpos.c",
"translate/translate.c",
"translate/translate.h",
"translate/translate_cache.c",
"translate/translate_cache.h",
"translate/translate_generic.c",
"translate/translate_sse.c",
"util/dbghelp.h",
"util/u_async_debug.c",
"util/u_async_debug.h",
"util/u_bitcast.h",
"util/u_bitmask.c",
"util/u_bitmask.h",
"util/u_blend.h",
"util/u_blitter.c",
"util/u_blitter.h",
"util/u_box.h",
"util/u_cache.c",
"util/u_cache.h",
"util/u_compute.c",
"util/u_compute.h",
"util/u_debug_cb.h",
"util/u_debug_flush.c",
"util/u_debug_flush.h",
"util/u_debug_image.c",
"util/u_debug_image.h",
"util/u_dirty_flags.h",
"util/u_dirty_surfaces.h",
"util/u_draw.c",
"util/u_draw.h",
"util/u_draw_quad.c",
"util/u_draw_quad.h",
"util/u_driconf.c",
"util/u_driconf.h",
"util/u_dual_blend.h",
"util/u_dump.h",
"util/u_dump_defines.c",
"util/u_dump_state.c",
"util/u_framebuffer.c",
"util/u_framebuffer.h",
"util/u_gen_mipmap.c",
"util/u_gen_mipmap.h",
"util/u_handle_table.c",
"util/u_handle_table.h",
"util/u_helpers.c",
"util/u_helpers.h",
"util/u_index_modify.c",
"util/u_index_modify.h",
"util/u_inlines.h",
"util/u_linear.c",
"util/u_linear.h",
"util/u_live_shader_cache.c",
"util/u_live_shader_cache.h",
"util/u_log.c",
"util/u_log.h",
"util/u_pack_color.h",
"util/u_prim.c",
"util/u_prim.h",
"util/u_prim_restart.c",
"util/u_prim_restart.h",
"util/u_pstipple.c",
"util/u_pstipple.h",
"util/u_pwr8.h",
"util/u_range.h",
"util/u_rect.h",
"util/u_resource.c",
"util/u_resource.h",
"util/u_sampler.c",
"util/u_sampler.h",
"util/u_screen.c",
"util/u_screen.h",
"util/u_simple_shaders.c",
"util/u_simple_shaders.h",
"util/u_split_draw.c",
"util/u_split_draw.h",
"util/u_split_prim.h",
"util/u_sse.h",
"util/u_suballoc.c",
"util/u_suballoc.h",
"util/u_surface.c",
"util/u_surface.h",
"util/u_tests.c",
"util/u_tests.h",
"util/u_texture.c",
"util/u_texture.h",
"util/u_threaded_context.c",
"util/u_threaded_context.h",
"util/u_threaded_context_calls.h",
"util/u_tile.c",
"util/u_tile.h",
"util/u_trace_gallium.c",
"util/u_trace_gallium.h",
"util/u_transfer.c",
"util/u_transfer.h",
"util/u_transfer_helper.c",
"util/u_transfer_helper.h",
"util/u_upload_mgr.c",
"util/u_upload_mgr.h",
"util/u_vbuf.c",
"util/u_vbuf.h",
"util/u_vertex_state_cache.c",
"util/u_vertex_state_cache.h",
"util/u_video.h",
"util/u_viewport.h",
]
configs = [
":build_config",
"//build/config:Wno-strict-prototypes",
"$mesa_build_root:build_config",
]
}
config("build_config") {
include_dirs = [
"$mesa_build_root/include/",
"$mesa_build_root/src/compiler/nir/",
"$mesa_build_root/src/gallium/auxiliary/",
"$mesa_build_root/src/gallium/include/",
"$mesa_build_root/src/util/",
"$mesa_build_root/src/",
"$target_gen_dir",
]
configs = [ "//third_party/mesa:LLVMHeader_config" ]
}
mesa_python_action("tr_util_gen") {
h_file = "$target_gen_dir/driver_trace/tr_util.h"
c_file = "$target_gen_dir/driver_trace/tr_util.c"
outputs = [
h_file,
c_file,
]
script = "driver_trace/enums2names.py"
inputs = [ "$mesa_build_root/src/gallium/include/pipe/p_defines.h" ]
args = [
rebase_path("$mesa_build_root", root_build_dir) +
"/src/gallium/include/pipe/p_defines.h",
"-C",
rebase_path(c_file, root_build_dir),
"-H",
rebase_path(h_file, root_build_dir),
"-I",
"tr_util.h",
]
}
mesa_python_action("u_indices_gen") {
output_path = "$target_gen_dir/indices/u_indices_gen.c"
outputs = [ output_path ]
script = "indices/u_indices_gen.py"
args = [ rebase_path(output_path, root_build_dir) ]
}
mesa_python_action("u_tracepoints_gen") {
output_path = "$target_gen_dir/u_tracepoints.h"
script = "util/u_tracepoints.py"
outputs = [ output_path ]
inputs = [ "$mesa_build_root/src/util/perf/u_trace.py" ]
args = [
"-p",
rebase_path("$mesa_build_root/src/util/perf", root_build_dir),
"-H",
rebase_path(output_path, root_build_dir),
]
}
mesa_python_action("u_unfilled_gen") {
output_path = "$target_gen_dir/indices/u_unfilled_gen.c"
outputs = [ output_path ]
script = "indices/u_unfilled_gen.py"
args = [ rebase_path(output_path, root_build_dir) ]
}
config("gen_public_config") {
include_dirs = [
target_gen_dir,
"$mesa_build_root/include/",
"$mesa_build_root/src/",
"$mesa_build_root/src/gallium/auxiliary/",
"$mesa_build_root/src/gallium/auxiliary/driver_trace/",
"$mesa_build_root/src/gallium/include/",
"$mesa_build_root/src/util/",
"$target_gen_dir/driver_trace/",
]
}
mesa_source_set("gen") {
public_configs = [ ":gen_public_config" ]
deps = [
":u_indices_gen",
":u_tracepoints_gen",
":u_unfilled_gen",
":tr_util_gen",
]
sources = [
"$target_gen_dir/driver_trace/tr_util.c",
"$target_gen_dir/driver_trace/tr_util.h",
"$target_gen_dir/indices/u_indices_gen.c",
"$target_gen_dir/indices/u_unfilled_gen.c",
"$target_gen_dir/u_tracepoints.h",
]
}