File sprirv-remap.patch of Package vkquake
From 85ddf2386f15944c26317a763d4044077fc8731f Mon Sep 17 00:00:00 2001
From: vsonnier <vsonnier@users.noreply.github.com>
Date: Sat, 27 Sep 2025 14:01:57 +0200
Subject: [PATCH] Fix #807 : Meson test existence of sprirv-remap to manage its
suppression with glslang >= 16.0
---
meson.build | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/meson.build b/meson.build
index 114b1540..9dc6b0d7 100644
--- a/meson.build
+++ b/meson.build
@@ -48,14 +48,23 @@ shaders = [
glslang = find_program('glslangValidator')
spirv_opt = find_program('spirv-opt')
-spirv_remap = find_program('spirv-remap')
+spirv_remap_command = []
+spirv_opt_command = []
+run_test_canonicalize_ids_spirv_opt = run_command(spirv_opt, '-h', check : false)
+has_canonicalize_ids_spirv_opt = (run_test_canonicalize_ids_spirv_opt.stdout().strip().contains('--canonicalize-ids'))
bintoc = executable('bintoc', ['Shaders/bintoc.c'], native: true)
if (build_machine.system() == 'darwin') or get_option('buildtype').startswith('debug')
spirv_opt_command = [] # MoltenVK spirv-cross has a bug that breaks optimized shaders
-else
+elif has_canonicalize_ids_spirv_opt
+ message('Info: spirv-opt has --canonicalize-ids (glslang >= 16.0).')
+ spirv_opt_command = [spirv_opt, '-Os', '--canonicalize-ids', '--strip-debug', '@PLAINNAME@.spv', '-o', '@PLAINNAME@.spv', '&&']
+else
spirv_opt_command = [spirv_opt, '-Os', '@PLAINNAME@.spv', '-o', '@PLAINNAME@.spv', '&&']
+ message('Info: spirv-opt has NOT --canonicalize-ids (glslang < 16.0) so use spirv-remap instead.')
+ spirv_remap = find_program('spirv-remap')
+ spirv_remap_command = [spirv_remap, '-s', '-o', '.', '-i', '@PLAINNAME@.spv', '&&']
endif
-spirv_remap_command = get_option('buildtype').startswith('debug') ? [] : [spirv_remap, '-s', '-o', '.', '-i', '@PLAINNAME@.spv', '&&']
+
bintoc_command = [bintoc, '@PLAINNAME@.spv', '@PLAINNAME@_spv', '@OUTPUT@']
shaders_c = []