From 1a882fd2ee84ae28a06cf07902dc4645d8ad4a6d Mon Sep 17 00:00:00 2001 From: Emil Velikov Date: Mon, 18 Jan 2016 10:47:13 +0200 Subject: [PATCH] nir: move shader_enums.[ch] to compiler This way one can reuse it in glsl, nir or other infrastructure without pulling nir as dependency. Signed-off-by: Emil Velikov Acked-by: Matt Turner Acked-by: Jose Fonseca --- Android.mk | 1 + src/SConscript | 1 + src/compiler/Android.mk | 44 ++++++++++++++++++++++++++ src/compiler/Makefile.am | 23 +++++++++++++- src/compiler/Makefile.sources | 4 ++- src/compiler/SConscript | 22 +++++++++++++ src/{glsl/nir => compiler}/shader_enums.c | 0 src/{glsl/nir => compiler}/shader_enums.h | 0 src/gallium/auxiliary/nir/tgsi_to_nir.c | 2 +- src/gallium/drivers/freedreno/ir3/ir3_nir.h | 2 +- src/gallium/drivers/freedreno/ir3/ir3_shader.h | 2 +- src/gallium/targets/dri/SConscript | 1 + src/gallium/targets/haiku-softpipe/SConscript | 1 + src/gallium/targets/libgl-gdi/SConscript | 2 +- src/gallium/targets/libgl-xlib/SConscript | 1 + src/gallium/targets/osmesa/SConscript | 1 + src/glsl/Android.mk | 2 ++ src/glsl/Makefile.am | 8 ++++- src/glsl/Makefile.sources | 4 +-- src/glsl/SConscript | 3 +- src/glsl/nir/nir.h | 2 +- src/glsl/nir/nir_print.c | 2 +- src/mesa/drivers/x11/SConscript | 1 + src/mesa/main/mtypes.h | 2 +- 24 files changed, 116 insertions(+), 15 deletions(-) create mode 100644 src/compiler/Android.mk create mode 100644 src/compiler/SConscript rename src/{glsl/nir => compiler}/shader_enums.c (100%) rename src/{glsl/nir => compiler}/shader_enums.h (100%) diff --git a/Android.mk b/Android.mk index 1d76559..908078a 100644 --- a/Android.mk +++ b/Android.mk @@ -86,6 +86,7 @@ ifneq ($(strip $(MESA_GPU_DRIVERS)),) SUBDIRS := \ src/loader \ src/mapi \ + src/compiler \ src/glsl \ src/mesa \ src/util \ diff --git a/src/SConscript b/src/SConscript index 106b87d..8acf9b0 100644 --- a/src/SConscript +++ b/src/SConscript @@ -5,6 +5,7 @@ if env['platform'] == 'windows': SConscript('getopt/SConscript') SConscript('util/SConscript') +SConscript('compiler/SConscript') SConscript('glsl/SConscript') if env['hostonly']: diff --git a/src/compiler/Android.mk b/src/compiler/Android.mk new file mode 100644 index 0000000..8ebd497 --- /dev/null +++ b/src/compiler/Android.mk @@ -0,0 +1,44 @@ +# Mesa 3-D graphics library +# +# Copyright (C) 2015 Intel Corporation +# +# 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 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. + +LOCAL_PATH := $(call my-dir) + +include $(LOCAL_PATH)/Makefile.sources + +# --------------------------------------- +# Build libmesa_compiler +# --------------------------------------- + +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := $(LIBCOMPILER_FILES) + +LOCAL_C_INCLUDES := \ + $(MESA_TOP)/src/mapi \ + $(MESA_TOP)/src/mesa \ + $(MESA_TOP)/src/gallium/include \ + $(MESA_TOP)/src/gallium/auxiliary + +LOCAL_MODULE := libmesa_compiler + +include $(MESA_COMMON_MK) +include $(BUILD_STATIC_LIBRARY) diff --git a/src/compiler/Makefile.am b/src/compiler/Makefile.am index 8ed8205..fd1dd4b 100644 --- a/src/compiler/Makefile.am +++ b/src/compiler/Makefile.am @@ -22,4 +22,25 @@ include Makefile.sources -EXTRA_DIST = $(LIBCOMPILER_FILES) +AM_CPPFLAGS = \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/src \ + -I$(top_srcdir)/src/mapi \ + -I$(top_srcdir)/src/mesa/ \ + -I$(top_srcdir)/src/gallium/include \ + -I$(top_srcdir)/src/gallium/auxiliary \ + $(DEFINES) + +AM_CFLAGS = \ + $(VISIBILITY_CFLAGS) \ + $(MSVC2013_COMPAT_CFLAGS) + +AM_CXXFLAGS = \ + $(VISIBILITY_CXXFLAGS) \ + $(MSVC2013_COMPAT_CXXFLAGS) + +noinst_LTLIBRARIES = libcompiler.la + +libcompiler_la_SOURCES = $(LIBCOMPILER_FILES) + +EXTRA_DIST = SConscript diff --git a/src/compiler/Makefile.sources b/src/compiler/Makefile.sources index f154062..73e1771 100644 --- a/src/compiler/Makefile.sources +++ b/src/compiler/Makefile.sources @@ -1,2 +1,4 @@ LIBCOMPILER_FILES = \ - builtin_type_macros.h + builtin_type_macros.h \ + shader_enums.c \ + shader_enums.h diff --git a/src/compiler/SConscript b/src/compiler/SConscript new file mode 100644 index 0000000..412da0e --- /dev/null +++ b/src/compiler/SConscript @@ -0,0 +1,22 @@ +Import('*') + +env = env.Clone() + +env.MSVC2013Compat() + +env.Prepend(CPPPATH = [ + '#include', + '#src', + '#src/mapi', + '#src/mesa', + '#src/gallium/include', + '#src/gallium/auxiliary', +]) + +sources = env.ParseSourceList('Makefile.sources', 'LIBCOMPILER_FILES') + +compiler = env.ConvenienceLibrary( + target = 'compiler', + source = sources +) +Export('compiler') diff --git a/src/glsl/nir/shader_enums.c b/src/compiler/shader_enums.c similarity index 100% rename from src/glsl/nir/shader_enums.c rename to src/compiler/shader_enums.c diff --git a/src/glsl/nir/shader_enums.h b/src/compiler/shader_enums.h similarity index 100% rename from src/glsl/nir/shader_enums.h rename to src/compiler/shader_enums.h diff --git a/src/gallium/auxiliary/nir/tgsi_to_nir.c b/src/gallium/auxiliary/nir/tgsi_to_nir.c index dfda80f..0d6eb76 100644 --- a/src/gallium/auxiliary/nir/tgsi_to_nir.c +++ b/src/gallium/auxiliary/nir/tgsi_to_nir.c @@ -27,7 +27,7 @@ #include "glsl/nir/nir_control_flow.h" #include "glsl/nir/nir_builder.h" #include "glsl/list.h" -#include "glsl/nir/shader_enums.h" +#include "compiler/shader_enums.h" #include "nir/tgsi_to_nir.h" #include "tgsi/tgsi_parse.h" diff --git a/src/gallium/drivers/freedreno/ir3/ir3_nir.h b/src/gallium/drivers/freedreno/ir3/ir3_nir.h index 534199d..311a403 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_nir.h +++ b/src/gallium/drivers/freedreno/ir3/ir3_nir.h @@ -30,7 +30,7 @@ #define IR3_NIR_H_ #include "glsl/nir/nir.h" -#include "glsl/nir/shader_enums.h" +#include "compiler/shader_enums.h" #include "ir3_shader.h" diff --git a/src/gallium/drivers/freedreno/ir3/ir3_shader.h b/src/gallium/drivers/freedreno/ir3/ir3_shader.h index b3c28a4..03d4fa2 100644 --- a/src/gallium/drivers/freedreno/ir3/ir3_shader.h +++ b/src/gallium/drivers/freedreno/ir3/ir3_shader.h @@ -30,7 +30,7 @@ #define IR3_SHADER_H_ #include "pipe/p_state.h" -#include "glsl/nir/shader_enums.h" +#include "compiler/shader_enums.h" #include "ir3.h" #include "disasm.h" diff --git a/src/gallium/targets/dri/SConscript b/src/gallium/targets/dri/SConscript index b451659..bf3baa7 100644 --- a/src/gallium/targets/dri/SConscript +++ b/src/gallium/targets/dri/SConscript @@ -41,6 +41,7 @@ env.Prepend(LIBS = [ pipe_loader, libloader, mesautil, + compiler, mesa, glsl, gallium, diff --git a/src/gallium/targets/haiku-softpipe/SConscript b/src/gallium/targets/haiku-softpipe/SConscript index 210721c..b7c1373 100644 --- a/src/gallium/targets/haiku-softpipe/SConscript +++ b/src/gallium/targets/haiku-softpipe/SConscript @@ -6,6 +6,7 @@ env.Prepend(LIBS = [ trace, rbug, mesautil, + compiler, mesa, glsl, gallium diff --git a/src/gallium/targets/libgl-gdi/SConscript b/src/gallium/targets/libgl-gdi/SConscript index 594f34d..3a63e3e 100644 --- a/src/gallium/targets/libgl-gdi/SConscript +++ b/src/gallium/targets/libgl-gdi/SConscript @@ -50,7 +50,7 @@ if env['gles']: opengl32 = env.SharedLibrary( target ='opengl32', source = sources, - LIBS = wgl + ws_gdi + glapi + mesa + drivers + gallium + glsl + env['LIBS'], + LIBS = wgl + ws_gdi + glapi + compiler + mesa + drivers + gallium + glsl + env['LIBS'], ) env.Alias('opengl32', opengl32) diff --git a/src/gallium/targets/libgl-xlib/SConscript b/src/gallium/targets/libgl-xlib/SConscript index 687a8b9d..e1c78dd 100644 --- a/src/gallium/targets/libgl-xlib/SConscript +++ b/src/gallium/targets/libgl-xlib/SConscript @@ -29,6 +29,7 @@ env.Prepend(LIBS = [ ws_xlib, glapi, mesautil, + compiler, mesa, glsl, gallium, diff --git a/src/gallium/targets/osmesa/SConscript b/src/gallium/targets/osmesa/SConscript index 4a9115b..eeaacbc 100644 --- a/src/gallium/targets/osmesa/SConscript +++ b/src/gallium/targets/osmesa/SConscript @@ -12,6 +12,7 @@ env.Prepend(LIBS = [ st_osmesa, ws_null, glapi, + compiler, mesa, gallium, trace, diff --git a/src/glsl/Android.mk b/src/glsl/Android.mk index f63b7da..9cbb9a3 100644 --- a/src/glsl/Android.mk +++ b/src/glsl/Android.mk @@ -44,6 +44,8 @@ LOCAL_C_INCLUDES := \ $(MESA_TOP)/src/gallium/include \ $(MESA_TOP)/src/gallium/auxiliary +LOCAL_STATIC_LIBRARIES := libmesa_compiler + LOCAL_MODULE := libmesa_glsl include $(LOCAL_PATH)/Android.gen.mk diff --git a/src/glsl/Makefile.am b/src/glsl/Makefile.am index ba7af7c..07d5267 100644 --- a/src/glsl/Makefile.am +++ b/src/glsl/Makefile.am @@ -137,7 +137,10 @@ glcpp_glcpp_LDADD = \ $(top_builddir)/src/libglsl_util.la \ -lm -libglsl_la_LIBADD = libglcpp.la +libglsl_la_LIBADD = \ + $(top_builddir)/src/compiler/libcompiler.la \ + libglcpp.la + libglsl_la_SOURCES = \ glsl_lexer.cpp \ glsl_parser.cpp \ @@ -147,6 +150,9 @@ libglsl_la_SOURCES = \ $(NIR_GENERATED_FILES) \ $(GLSL_TO_NIR_FILES) +libnir_la_LIBADD = \ + $(top_builddir)/src/compiler/libcompiler.la + libnir_la_SOURCES = \ $(NIR_FILES) \ $(NIR_GENERATED_FILES) diff --git a/src/glsl/Makefile.sources b/src/glsl/Makefile.sources index 8b43eb8..5a576bc 100644 --- a/src/glsl/Makefile.sources +++ b/src/glsl/Makefile.sources @@ -81,9 +81,7 @@ NIR_FILES = \ nir/nir_vla.h \ nir/nir_worklist.c \ nir/nir_worklist.h \ - nir/nir_types.cpp \ - nir/shader_enums.h \ - nir/shader_enums.c + nir/nir_types.cpp # libglsl diff --git a/src/glsl/SConscript b/src/glsl/SConscript index a9d38c1..e89d4e0 100644 --- a/src/glsl/SConscript +++ b/src/glsl/SConscript @@ -65,7 +65,6 @@ for l in ('LIBGLCPP_FILES', 'LIBGLSL_FILES'): # XXX: Remove this once we build NIR and NIR_FILES. glsl_sources += [ 'nir/glsl_types.cpp', - 'nir/shader_enums.c', ] if env['msvc']: @@ -115,7 +114,7 @@ if env['platform'] == 'windows': 'user32', ]) -env.Prepend(LIBS = [glsl]) +env.Prepend(LIBS = [compiler, glsl]) glsl_compiler = env.Program( target = 'glsl_compiler', diff --git a/src/glsl/nir/nir.h b/src/glsl/nir/nir.h index e2bd2bf..79b35f7 100644 --- a/src/glsl/nir/nir.h +++ b/src/glsl/nir/nir.h @@ -35,7 +35,7 @@ #include "util/set.h" #include "util/bitset.h" #include "nir_types.h" -#include "shader_enums.h" +#include "compiler/shader_enums.h" #include #include "nir_opcodes.h" diff --git a/src/glsl/nir/nir_print.c b/src/glsl/nir/nir_print.c index be9ca4e..48ecb48 100644 --- a/src/glsl/nir/nir_print.c +++ b/src/glsl/nir/nir_print.c @@ -26,7 +26,7 @@ */ #include "nir.h" -#include "shader_enums.h" +#include "compiler/shader_enums.h" #include #include diff --git a/src/mesa/drivers/x11/SConscript b/src/mesa/drivers/x11/SConscript index d29f987..4541997 100644 --- a/src/mesa/drivers/x11/SConscript +++ b/src/mesa/drivers/x11/SConscript @@ -18,6 +18,7 @@ env.Prepend(LIBPATH = env['X11_LIBPATH']) env.Prepend(LIBS = [ glapi, mesautil, + compiler, glsl, mesa, ]) diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 15dd1ca..f3102dc 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -42,7 +42,7 @@ #include "main/config.h" #include "glapi/glapi.h" #include "math/m_matrix.h" /* GLmatrix */ -#include "glsl/nir/shader_enums.h" +#include "compiler/shader_enums.h" #include "main/formats.h" /* MESA_FORMAT_COUNT */ -- 2.7.4