From e6ef8eb0584d777d236eed9811bf08e23e5a2da3 Mon Sep 17 00:00:00 2001 From: Christopher Milan Date: Sat, 22 Nov 2025 18:31:30 -0800 Subject: [PATCH 01/10] tinylvp depends on tinymesa --- .github/actions/compile/action.yml | 4 ++-- meson.build | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/actions/compile/action.yml b/.github/actions/compile/action.yml index 75fa3a7..84a1863 100644 --- a/.github/actions/compile/action.yml +++ b/.github/actions/compile/action.yml @@ -133,10 +133,10 @@ runs: export CLANG_PATH=$(which clang-20) meson setup build/ -Db_staticpic=true -Dgallium-drivers=llvmpipe -Dplatforms="[]" -Dglx=disabled -Dvulkan-drivers=swrast,nouveau,freedreno -Dopengl=false -Degl=disabled -Dgbm=disabled -Dvideo-codecs="[]" EXT=$([[ "${{ runner.os }}" == "macOS" ]] && echo ".dylib" || echo ".so") - ninja -C build src/tinymesa/libtinymesa$EXT src/tinymesa/libtinymesa_cpu$EXT + ninja -C build src/tinymesa/libtinymesa$EXT src/tinymesa/libtinylvp$EXT - name: Test loading with ctypes shell: bash run: | cd ${{ github.workspace }}/mesa/build/src/tinymesa EXT=$([[ "${{ runner.os }}" == "macOS" ]] && echo ".dylib" || echo ".so") - python3 -c "from ctypes import CDLL; CDLL('./libtinymesa$EXT'), CDLL('./libtinymesa_cpu$EXT')" + python3 -c "from ctypes import CDLL; CDLL('./libtinymesa$EXT'), CDLL('./libtinylvp$EXT')" diff --git a/meson.build b/meson.build index 5e182ec..9190599 100644 --- a/meson.build +++ b/meson.build @@ -52,6 +52,6 @@ foreach sym : ir3_symbols ir3_link_args += '-Wl,-u,' + symbol_prefix + sym endforeach -shared_library('tinymesa', link_whole : [ _libnir ], link_args : nak_link_args+ir3_link_args, link_with : [ libfreedreno_ir3, libfreedreno_common ], dependencies : [ idep_nak ]) -shared_library('tinymesa_cpu', link_whole : [ _libnir ], link_args : lvp_link_args+nak_link_args+ir3_link_args, link_with : [ libfreedreno_ir3, libfreedreno_common, libgallium ], dependencies : [ idep_nak ]) +tm = shared_library('tinymesa', link_whole : [ _libnir ], link_args : nak_link_args+ir3_link_args, link_with : [ libfreedreno_ir3, libfreedreno_common ], dependencies : [ idep_nak ]) +shared_library('tinylvp', link_args : lvp_link_args, link_with : [ libgallium ], dependencies : [ tm ]) From b3fdafed225aff283dd1116ccd9d3189799d93f0 Mon Sep 17 00:00:00 2001 From: Christopher Milan Date: Sat, 22 Nov 2025 18:35:21 -0800 Subject: [PATCH 02/10] tm goes in link_with --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 9190599..8f11449 100644 --- a/meson.build +++ b/meson.build @@ -53,5 +53,5 @@ foreach sym : ir3_symbols endforeach tm = shared_library('tinymesa', link_whole : [ _libnir ], link_args : nak_link_args+ir3_link_args, link_with : [ libfreedreno_ir3, libfreedreno_common ], dependencies : [ idep_nak ]) -shared_library('tinylvp', link_args : lvp_link_args, link_with : [ libgallium ], dependencies : [ tm ]) +shared_library('tinylvp', link_args : lvp_link_args, link_with : [ libgallium, tm ]) From f21eba23ef6fe48ac1486df43a4de0416e87bafc Mon Sep 17 00:00:00 2001 From: Christopher Milan Date: Sat, 22 Nov 2025 18:59:12 -0800 Subject: [PATCH 03/10] dumbgallium --- meson.build | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index 8f11449..5b847c1 100644 --- a/meson.build +++ b/meson.build @@ -1,3 +1,11 @@ +# meson is too smart by half, and wants to pull in all of libgallium for tinylvp +gallium_lib = libgallium +dumbgallium = custom_target('dumbgallium', + input : gallium_lib, + output : 'dumbgallium.a', + command : ['cp', '@INPUT@', '@OUTPUT@'] +] + lvp_symbols = [ 'gallivm_create', 'gallivm_destroy', @@ -53,5 +61,4 @@ foreach sym : ir3_symbols endforeach tm = shared_library('tinymesa', link_whole : [ _libnir ], link_args : nak_link_args+ir3_link_args, link_with : [ libfreedreno_ir3, libfreedreno_common ], dependencies : [ idep_nak ]) -shared_library('tinylvp', link_args : lvp_link_args, link_with : [ libgallium, tm ]) - +shared_library('tinylvp', link_args : lvp_link_args, link_with : tm, link_depends : dumbgallium, objects : dumbgallium) From 9786bd6551476debdb5fbf6d114d73846d936cd2 Mon Sep 17 00:00:00 2001 From: Christopher Milan Date: Sat, 22 Nov 2025 19:01:44 -0800 Subject: [PATCH 04/10] typo --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 5b847c1..bc7ae53 100644 --- a/meson.build +++ b/meson.build @@ -4,7 +4,7 @@ dumbgallium = custom_target('dumbgallium', input : gallium_lib, output : 'dumbgallium.a', command : ['cp', '@INPUT@', '@OUTPUT@'] -] +) lvp_symbols = [ 'gallivm_create', From a7326732c509471cd0b562157775b47c500bb8b6 Mon Sep 17 00:00:00 2001 From: Christopher Milan Date: Sat, 22 Nov 2025 19:06:11 -0800 Subject: [PATCH 05/10] not an object --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index bc7ae53..ee4da33 100644 --- a/meson.build +++ b/meson.build @@ -61,4 +61,4 @@ foreach sym : ir3_symbols endforeach tm = shared_library('tinymesa', link_whole : [ _libnir ], link_args : nak_link_args+ir3_link_args, link_with : [ libfreedreno_ir3, libfreedreno_common ], dependencies : [ idep_nak ]) -shared_library('tinylvp', link_args : lvp_link_args, link_with : tm, link_depends : dumbgallium, objects : dumbgallium) +shared_library('tinylvp', link_args + [meson.current_build_dir() / 'dumbgallium.a']: lvp_link_args, link_with : tm, link_depends : dumbgallium) From ccc0713573348de0bb33de689b71901c77d598dd Mon Sep 17 00:00:00 2001 From: Christopher Milan Date: Sat, 22 Nov 2025 19:08:53 -0800 Subject: [PATCH 06/10] typo --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index ee4da33..552eca8 100644 --- a/meson.build +++ b/meson.build @@ -61,4 +61,4 @@ foreach sym : ir3_symbols endforeach tm = shared_library('tinymesa', link_whole : [ _libnir ], link_args : nak_link_args+ir3_link_args, link_with : [ libfreedreno_ir3, libfreedreno_common ], dependencies : [ idep_nak ]) -shared_library('tinylvp', link_args + [meson.current_build_dir() / 'dumbgallium.a']: lvp_link_args, link_with : tm, link_depends : dumbgallium) +shared_library('tinylvp', link_args : lvp_link_args + [meson.current_build_dir() / 'dumbgallium.a'], link_with : tm, link_depends : dumbgallium) From 470cdeaef7521dd591ecb26ebf772aa4b86ecb97 Mon Sep 17 00:00:00 2001 From: Christopher Milan Date: Sat, 22 Nov 2025 19:15:24 -0800 Subject: [PATCH 07/10] another try --- meson.build | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/meson.build b/meson.build index 552eca8..395b8e2 100644 --- a/meson.build +++ b/meson.build @@ -1,11 +1,3 @@ -# meson is too smart by half, and wants to pull in all of libgallium for tinylvp -gallium_lib = libgallium -dumbgallium = custom_target('dumbgallium', - input : gallium_lib, - output : 'dumbgallium.a', - command : ['cp', '@INPUT@', '@OUTPUT@'] -) - lvp_symbols = [ 'gallivm_create', 'gallivm_destroy', @@ -61,4 +53,4 @@ foreach sym : ir3_symbols endforeach tm = shared_library('tinymesa', link_whole : [ _libnir ], link_args : nak_link_args+ir3_link_args, link_with : [ libfreedreno_ir3, libfreedreno_common ], dependencies : [ idep_nak ]) -shared_library('tinylvp', link_args : lvp_link_args + [meson.current_build_dir() / 'dumbgallium.a'], link_with : tm, link_depends : dumbgallium) +shared_library('tinylvp', link_args : lvp_link_args + [ libgallium.full_path() ], link_with : tm, link_depends : dumbgallium) From 133c9d0133b2cab177d252361b080490c079aa99 Mon Sep 17 00:00:00 2001 From: Christopher Milan Date: Mon, 24 Nov 2025 10:34:48 -0500 Subject: [PATCH 08/10] depends --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 395b8e2..4ca80d0 100644 --- a/meson.build +++ b/meson.build @@ -53,4 +53,4 @@ foreach sym : ir3_symbols endforeach tm = shared_library('tinymesa', link_whole : [ _libnir ], link_args : nak_link_args+ir3_link_args, link_with : [ libfreedreno_ir3, libfreedreno_common ], dependencies : [ idep_nak ]) -shared_library('tinylvp', link_args : lvp_link_args + [ libgallium.full_path() ], link_with : tm, link_depends : dumbgallium) +shared_library('tinylvp', link_args : lvp_link_args + [ libgallium.full_path() ], link_with : tm, link_depends : libgallium) From cd946c0c5e45c809f5fed57396f45f464645c9a7 Mon Sep 17 00:00:00 2001 From: Christopher Milan Date: Mon, 24 Nov 2025 10:46:51 -0500 Subject: [PATCH 09/10] dep: llvm --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 4ca80d0..e058b47 100644 --- a/meson.build +++ b/meson.build @@ -53,4 +53,4 @@ foreach sym : ir3_symbols endforeach tm = shared_library('tinymesa', link_whole : [ _libnir ], link_args : nak_link_args+ir3_link_args, link_with : [ libfreedreno_ir3, libfreedreno_common ], dependencies : [ idep_nak ]) -shared_library('tinylvp', link_args : lvp_link_args + [ libgallium.full_path() ], link_with : tm, link_depends : libgallium) +shared_library('tinylvp', link_args : lvp_link_args + [ libgallium.full_path() ], link_with : tm, link_depends : libgallium, dependencies : [ dep_llvm ]) From e2ffd75ac3793f759a61b27fd7787131db11a914 Mon Sep 17 00:00:00 2001 From: Christopher Milan Date: Mon, 24 Nov 2025 11:54:23 -0500 Subject: [PATCH 10/10] link with libmesa_util --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index e058b47..51ac652 100644 --- a/meson.build +++ b/meson.build @@ -53,4 +53,4 @@ foreach sym : ir3_symbols endforeach tm = shared_library('tinymesa', link_whole : [ _libnir ], link_args : nak_link_args+ir3_link_args, link_with : [ libfreedreno_ir3, libfreedreno_common ], dependencies : [ idep_nak ]) -shared_library('tinylvp', link_args : lvp_link_args + [ libgallium.full_path() ], link_with : tm, link_depends : libgallium, dependencies : [ dep_llvm ]) +shared_library('tinylvp', link_args : lvp_link_args + [ libgallium.full_path() ], link_with : [ tm, _libmesa_util ], link_depends : libgallium, dependencies : [ dep_llvm ])