Lionel Landwerlin
da1e39faa4
util/glsl2spirv: add ability to pass defines
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Tested-by: Felix DeGrood <felix.j.degrood@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25361 >
2023-10-20 13:07:53 +00:00
Lionel Landwerlin
234505f013
util/glsl2spirv: add support for include directive
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Ivan Briano <ivan.briano@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497 >
2023-03-03 11:30:54 +00:00
Chad Versace
bca22a6578
util/glsl2spirv: Fix build with Python 3.6
...
ChromeOS still uses Python 3.6, but the glsl2spirv script uses module
'__future__.annotations', introduced in Python 3.7. Fix the build by
removing module, but otherwise preserve the type annotations.
Fixes: 949c3b55db ("util/glsl2spirv: add type annotations")
Acked-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20237 >
2023-01-25 21:21:17 +00:00
Lionel Landwerlin
5ebf72c44c
util/glsl2spirv: don't store preprocessed files in source tree
...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Reviewed-by: Dylan Baker <dylan.c.baker@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19893 >
2022-11-22 12:25:12 +00:00
Dylan Baker
41a929d94c
util/glsl2spirv: pass path to glslangValidator into the script
...
This allows users to override the location of glslang using normal meson
mechanisms.
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
9a85d2ed98
util/glsl2spirv: cleanup list extension
...
- consistently use list.extend instead of list +=, which has gotchas
- condense list extension calls when possible
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
9a165945a9
util/glsl2spirv: use f-strings
...
Which are both faster and easier to read
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
7c88c3a05b
util/glsl2spirv: use if x in str instead of str.find
...
The latter is only idiomatically used when a start and/or stop position
is required.
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
5488fa80dd
util/glsl2spirv: simplify subprocess handling
...
Since we're not doing anything fancy, we can just use `subprocess.run`.
I've also removed the custom error class, we're not going to catch it,
so just printing and exiting is fine.
v2:
- Print stdout as well as stderr in case of a glslang failure
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
87c83c041a
util/glsl2spirv: close resources as soon as possible
...
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
949c3b55db
util/glsl2spirv: add type annotations
...
Which are all clean
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
c01cd8cad1
util/glsl2spirv: add some error handling for unexpected code paths
...
We expect that convert_to_static_variable and override_version will find
and replace something, so let's fail loudly if they don't.
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
6a5863df82
util/glsl2spriv: make --vn required
...
I'm not 100% sure whether it's right to make --vn required, or to avoid
the static conversion, but this seems correct. Mypy (type checking
coming soon) points out that if --vn is None then the
convert_to_static_variable function will fail. Our one use of this sets
--vn, so there is no change there. Making --vn required
ensures that it will never be None, avoiding the problem.
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
4ffa8a9ac0
util/glsl2spirv: fix appending extra flags
...
The variable is called `extra`, but what's written is `extra - flags`,
and `flags` is undefined, so if the variable was ever passed there would
be an uncaught exception.
fixes: 9786d9ef2a
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
041d9ac3dc
util/glsl2spirv: let argparse actually enforce the restrictions we've set
...
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
f9df046436
util/glsl2spirv: drop inconsistent use of io.open
...
In Python 3 (the only python we support) `io.open` is an alias of the
builtin `open` function, so it's not getting us anything, and we're not
using it consistently.
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Dylan Baker
76e3b482be
util/glsl2spirv: fix type error in argument handling
...
args.Olib is set to `store_true`, which means it will always be `True`
or `False`, this means that the we always, unconditionally, add
`--keep-uncalled` to the command line.
fixes: 9786d9ef2a
Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449 >
2022-11-10 21:14:17 +00:00
Mauro Rossi
db946364df
util: glsl2spirv.py: ensure '#endif' is printed in new line
...
Fixes the following building errors:
In file included from ../src/intel/vulkan/anv_pipeline_cache.c:34:
src/intel/vulkan/float64_spv.h:3316:3: error: expected identifier or '('
};#endif // FLOAT64_SPV_H
^
src/intel/vulkan/float64_spv.h:1:2: error: unterminated conditional directive
^
../src/intel/vulkan/anv_pipeline_cache.c:59:17: error: use of undeclared identifier 'anv_shader_bin_serialize'; did you mean 'anv_shader_bin_deserialize'?
.serialize = anv_shader_bin_serialize,
^~~~~~~~~~~~~~~~~~~~~~~~
anv_shader_bin_deserialize
../src/intel/vulkan/anv_pipeline_cache.c:41:1: note: 'anv_shader_bin_deserialize' declared here
anv_shader_bin_deserialize(struct vk_device *device,
^
../src/intel/vulkan/anv_pipeline_cache.c:59:17: error: incompatible pointer types initializing 'bool (*)(struct vk_pipeline_cache_object *, struct blob *)' with an expression of type 'struct vk_pipeline_cache_object *(struct vk_device *, const void *, size_t, struct blob_reader *)' (aka 'struct vk_pipeline_cache_object *(struct vk_device *, const void *, unsigned long, struct blob_reader *)') [-Werror,-Wincompatible-pointer-types]
.serialize = anv_shader_bin_serialize,
^~~~~~~~~~~~~~~~~~~~~~~~
4 errors generated.
Fixes: 9786d9e ("util: Add glsl2spirv.py script")
Reviewed-by: Mykhailo Skorokhodov <mykhailo.skorokhodov@globallogic.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19394 >
2022-10-30 14:14:21 +01:00
Mykhailo Skorokhodov
9786d9ef2a
util: Add glsl2spirv.py script
...
Signed-off-by: Mykhailo Skorokhodov <mykhailo.skorokhodov@globallogic.com >
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18854 >
2022-10-28 10:08:50 +00:00