glthread: compile marshal_generated.c faster by breaking it up into 8 files
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4270>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4270>
diff --git a/src/mesa/Android.gen.mk b/src/mesa/Android.gen.mk
index ff4f5e4..7fbbaa9 100644
--- a/src/mesa/Android.gen.mk
+++ b/src/mesa/Android.gen.mk
@@ -87,10 +87,52 @@
$(intermediates)/main/api_exec.c: $(dispatch_deps)
$(call es-gen)
-$(intermediates)/main/marshal_generated.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(glapi)/gl_marshal.py
-$(intermediates)/main/marshal_generated.c: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml
+$(intermediates)/main/marshal_generated0.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(glapi)/gl_marshal.py
+$(intermediates)/main/marshal_generated0.c: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml -i 0 -n 8
-$(intermediates)/main/marshal_generated.c: $(dispatch_deps)
+$(intermediates)/main/marshal_generated0.c: $(dispatch_deps)
+ $(call es-gen)
+
+$(intermediates)/main/marshal_generated1.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(glapi)/gl_marshal.py
+$(intermediates)/main/marshal_generated1.c: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml -i 1 -n 8
+
+$(intermediates)/main/marshal_generated1.c: $(dispatch_deps)
+ $(call es-gen)
+
+$(intermediates)/main/marshal_generated2.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(glapi)/gl_marshal.py
+$(intermediates)/main/marshal_generated2.c: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml -i 2 -n 8
+
+$(intermediates)/main/marshal_generated2.c: $(dispatch_deps)
+ $(call es-gen)
+
+$(intermediates)/main/marshal_generated3.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(glapi)/gl_marshal.py
+$(intermediates)/main/marshal_generated3.c: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml -i 3 -n 8
+
+$(intermediates)/main/marshal_generated3.c: $(dispatch_deps)
+ $(call es-gen)
+
+$(intermediates)/main/marshal_generated4.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(glapi)/gl_marshal.py
+$(intermediates)/main/marshal_generated4.c: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml -i 4 -n 8
+
+$(intermediates)/main/marshal_generated4.c: $(dispatch_deps)
+ $(call es-gen)
+
+$(intermediates)/main/marshal_generated5.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(glapi)/gl_marshal.py
+$(intermediates)/main/marshal_generated5.c: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml -i 5 -n 8
+
+$(intermediates)/main/marshal_generated5.c: $(dispatch_deps)
+ $(call es-gen)
+
+$(intermediates)/main/marshal_generated6.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(glapi)/gl_marshal.py
+$(intermediates)/main/marshal_generated6.c: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml -i 6 -n 8
+
+$(intermediates)/main/marshal_generated6.c: $(dispatch_deps)
+ $(call es-gen)
+
+$(intermediates)/main/marshal_generated7.c: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(glapi)/gl_marshal.py
+$(intermediates)/main/marshal_generated7.c: PRIVATE_XML := -f $(glapi)/gl_and_es_API.xml -i 7 -n 8
+
+$(intermediates)/main/marshal_generated7.c: $(dispatch_deps)
$(call es-gen)
$(intermediates)/main/marshal_generated.h: PRIVATE_SCRIPT := $(MESA_PYTHON2) $(glapi)/gl_marshal_h.py
diff --git a/src/mesa/Makefile.sources b/src/mesa/Makefile.sources
index 6faf5d9..cb4aab1 100644
--- a/src/mesa/Makefile.sources
+++ b/src/mesa/Makefile.sources
@@ -145,7 +145,14 @@
main/lines.c \
main/lines.h \
main/macros.h \
- main/marshal_generated.c \
+ main/marshal_generated0.c \
+ main/marshal_generated1.c \
+ main/marshal_generated2.c \
+ main/marshal_generated3.c \
+ main/marshal_generated4.c \
+ main/marshal_generated5.c \
+ main/marshal_generated6.c \
+ main/marshal_generated7.c \
main/marshal_generated.h \
main/matrix.c \
main/matrix.h \
diff --git a/src/mesa/SConscript b/src/mesa/SConscript
index da00374..dafe6c4 100644
--- a/src/mesa/SConscript
+++ b/src/mesa/SConscript
@@ -104,12 +104,13 @@
pass
# The marshal_generated.c file is generated from the GL/ES API.xml file
-env.CodeGenerate(
- target = 'main/marshal_generated.c',
- script = GLAPI + 'gen/gl_marshal.py',
- source = [GLAPI + 'gen/gl_and_es_API.xml'] + env.Glob(GLAPI + 'gen/*.xml'),
- command = python_cmd + ' $SCRIPT -f $SOURCE > $TARGET'
- )
+for i in range(8):
+ env.CodeGenerate(
+ target = 'main/marshal_generated{0}.c'.format(i),
+ script = GLAPI + 'gen/gl_marshal.py',
+ source = [GLAPI + 'gen/gl_and_es_API.xml'] + env.Glob(GLAPI + 'gen/*.xml'),
+ command = python_cmd + ' $SCRIPT -f $SOURCE -i {0} -n 8 > $TARGET'.format(i)
+ )
# The marshal_generated.h file is generated from the GL/ES API.xml file
env.CodeGenerate(
diff --git a/src/mesa/meson.build b/src/mesa/meson.build
index 5f90656..11c1766 100644
--- a/src/mesa/meson.build
+++ b/src/mesa/meson.build
@@ -692,13 +692,12 @@
main_enums_c,
format_fallback_c,
get_hash_h,
- main_marshal_generated_c,
main_marshal_generated_h,
main_dispatch_h,
ir_expression_operation_h,
main_remap_helper_h,
sha1_h,
-]
+] + main_marshal_generated_c
files_libmesa_gallium += [
ir_expression_operation_h,
sha1_h,