blob: 34d149c9f4f92e8f49d285b404f181b455d7a8bb [file] [log] [blame]
# Copyright 2017 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")
config("compiler_config") {
include_dirs = [
".",
"$mesa_build_root/src/mesa", # because brw_compiler.h includes
# main/mtypes.h
"$mesa_build_root/src/gallium/auxiliary", # because main/macros.h includes
# gallium/auxiliary/util/u_math.h
"$mesa_build_root/src/gallium/include", # because u_math.h includes
# pipe/p_compiler.h
"$mesa_build_root/src/intel", # because brw_compiler.h includes
# common/gen_device_info.h
]
}
config("warnings") {
cflags = [
# ../../third_party/mesa/src/intel/compiler/brw_vec4_gs_visitor.cpp:567:4: error: array designators are a C99 extension [-Werror,-Wc99-designator]
# [GL_POINTS] =_3DPRIM_POINTLIST,
# ^~~~~~~~~~~
# 1 error generated.
"-Wno-c99-designator",
"-Wno-conversion",
"-Wno-strict-prototypes",
"-Wno-write-strings",
"-Wno-unused-but-set-variable",
]
}
mesa_source_set("compiler") {
public_configs = [ ":compiler_config" ]
public_deps = [ "$mesa_build_root/src/compiler" ]
deps = [
":gen_brw_nir_trig_workarounds",
"$mesa_build_root/include:c_compat",
"$mesa_build_root/src/compiler/glsl:ir_expression_operation",
"$mesa_build_root/src/compiler/nir",
"$mesa_build_root/src/intel:isl",
"$mesa_build_root/src/util",
]
sources = [
"$target_gen_dir/brw_nir_trig_workarounds.c",
"brw_cfg.cpp",
"brw_cfg.h",
"brw_compile_sf.c",
"brw_compiler.c",
"brw_compiler.h",
"brw_dead_control_flow.cpp",
"brw_dead_control_flow.h",
"brw_disasm.c",
"brw_disasm_info.c",
"brw_eu.cpp",
"brw_eu.h",
"brw_eu_compact.c",
"brw_eu_emit.c",
"brw_eu_util.c",
"brw_eu_validate.c",
"brw_fs.cpp",
"brw_fs.h",
"brw_fs_bank_conflicts.cpp",
"brw_fs_builder.h",
"brw_fs_cmod_propagation.cpp",
"brw_fs_combine_constants.cpp",
"brw_fs_copy_propagation.cpp",
"brw_fs_cse.cpp",
"brw_fs_dead_code_eliminate.cpp",
"brw_fs_generator.cpp",
"brw_fs_live_variables.cpp",
"brw_fs_live_variables.h",
"brw_fs_lower_pack.cpp",
"brw_fs_lower_regioning.cpp",
"brw_fs_nir.cpp",
"brw_fs_reg_allocate.cpp",
"brw_fs_register_coalesce.cpp",
"brw_fs_saturate_propagation.cpp",
"brw_fs_scoreboard.cpp",
"brw_fs_sel_peephole.cpp",
"brw_fs_validate.cpp",
"brw_fs_visitor.cpp",
"brw_inst.h",
"brw_interpolation_map.c",
"brw_ir_allocator.h",
"brw_ir_fs.h",
"brw_ir_performance.cpp",
"brw_ir_vec4.h",
"brw_nir.c",
"brw_nir.h",
"brw_nir_analyze_boolean_resolves.c",
"brw_nir_analyze_ubo_ranges.c",
"brw_nir_attribute_workarounds.c",
"brw_nir_clamp_image_1d_2d_array_sizes.c",
"brw_nir_lower_alpha_to_coverage.c",
"brw_nir_lower_conversions.c",
"brw_nir_lower_cs_intrinsics.c",
"brw_nir_lower_image_load_store.c",
"brw_nir_lower_mem_access_bit_sizes.c",
"brw_nir_lower_scoped_barriers.c",
"brw_nir_opt_peephole_ffma.c",
"brw_nir_tcs_workarounds.c",
"brw_packed_float.c",
"brw_predicated_break.cpp",
"brw_reg.h",
"brw_reg_type.c",
"brw_reg_type.h",
"brw_schedule_instructions.cpp",
"brw_shader.cpp",
"brw_shader.h",
"brw_vec4.cpp",
"brw_vec4.h",
"brw_vec4_builder.h",
"brw_vec4_cmod_propagation.cpp",
"brw_vec4_copy_propagation.cpp",
"brw_vec4_cse.cpp",
"brw_vec4_dead_code_eliminate.cpp",
"brw_vec4_generator.cpp",
"brw_vec4_gs_nir.cpp",
"brw_vec4_gs_visitor.cpp",
"brw_vec4_gs_visitor.h",
"brw_vec4_live_variables.cpp",
"brw_vec4_live_variables.h",
"brw_vec4_nir.cpp",
"brw_vec4_reg_allocate.cpp",
"brw_vec4_surface_builder.cpp",
"brw_vec4_surface_builder.h",
"brw_vec4_tcs.cpp",
"brw_vec4_tcs.h",
"brw_vec4_tes.cpp",
"brw_vec4_tes.h",
"brw_vec4_visitor.cpp",
"brw_vec4_vs_visitor.cpp",
"brw_vue_map.c",
"brw_wm_iz.cpp",
"gfx6_gs_visitor.cpp",
]
configs = [ ":warnings" ]
}
mesa_python_stdout_to_file_action("gen_brw_nir_trig_workarounds") {
output = "brw_nir_trig_workarounds.c"
script = "brw_nir_trig_workarounds.py"
sources = [
"$mesa_build_root/src/compiler/nir/nir_algebraic.py",
"$mesa_build_root/src/compiler/nir/nir_opcodes.py",
]
libraries = [ "//third_party/mako" ]
args = [
"--import-path",
"$magma_python_path:" + rebase_path("$mesa_build_root/src/compiler/nir"),
]
}