-
9caca7a1
by Arcady Goldmints-Orlov at 2023-05-19T11:35:18-06:00
Add decorations to structs with buffer references
The containsPhysicalStorageBufferOrArray function now handles struct
types correctly, checking their contents recursively for buffer
reference types. As a result, OpVariables containing structs that have
members that are buffer references now have the appropriate
AliasedPointer or RestrictPointer decoration as per the spec.
Fixes #3188
-
4c9cc240
by Arcady Goldmints-Orlov at 2023-05-22T12:01:20-06:00
Switch Bazel to c++17
-
e06bd35f
by Arcady Goldmints-Orlov at 2023-05-22T12:01:20-06:00
Switch Android.mk to use --std=c++17
-
a5bf6993
by Allan MacKinnon at 2023-05-22T12:04:40-06:00
[glslang] Strip trailing whitespace
There are many other files in the repo that have trailing whitespace
but this PR only cleans `glslang/SPIRV` and `glslang/Standalone`.
-
9fbc5619
by Allan MacKinnon at 2023-05-23T14:07:48-06:00
glslangValidator: Exit with an error if output file cannot be written
Propagate the error from glslang::OutputSpv[Hex|Bin] and exit with an error code if there is an error.
-
6f22e41e
by Arcady Goldmints-Orlov at 2023-05-25T14:34:34-06:00
CMake: Make glslang-default-resource-limits STATIC
-
48a467b4
by Rémi Verschelde at 2023-05-25T14:34:34-06:00
CMake: Use set_target_properties instead of set_property
This makes the cmake code a bit cleaner and more consistent.
-
b5874250
by rcombs at 2023-05-29T14:55:51-06:00
glslang_c_interface: use valid C function prototypes
Prototypes are required in C.
-
a6662c53
by David Neto at 2023-05-31T15:50:03-04:00
ndk-build: test Android API 24
Vulkan was introduced in Android API 24.
Test against that API level.
NDKs drop support for older APIs
Google-internal BUG=285134453
-
4d95e228
by Sven van Haastregt at 2023-06-12T07:52:56-07:00
Fix -Wmaybe-uninitialized warnings
Fix some potentially uninitialized uses that are reported by GCC 13
with `-O3`.
-
72713baf
by Pablo Delgado Krämer at 2023-06-12T13:06:02-07:00
Fix GL_NV_shader_invocation_reorder #define typo
-
5793fbd6
by juan-lunarg at 2023-06-16T16:12:26-04:00
cmake: Fix CMake 3.27 warnings
The FindPythonInterp and FindPythonLibs modules, which have
been deprecated since CMake 3.12, have been removed by policy
CMP0148. Port projects to FindPython3, FindPython2, or FindPython.
-
6a7ec4be
by Jason Liu at 2023-06-19T14:32:31-04:00
Fix linking error "ld: unknown option: --no-undefined" on macOS
-
9575e331
by Sven van Haastregt at 2023-06-21T16:43:18-04:00
Fix unused parameter warning in Release builds
The `function` parameter is only used by an assert currently, so mark
it as "maybe unused". Alternatively the parameter could be removed,
but avoid such API churn for now.
-
d89c0b1d
by Arcady Goldmints-Orlov at 2023-06-27T13:49:14-04:00
Force generateDebugInfo when non-semantic debug info is enabled
>From the command line, the debug options "stack", with -gVS enabling all
of generateDebugInfo, emitNonSemanticShaderDebugInfo and
emitNonSemanticShaderDebugSource, however the programmatic interface
allows setting the latter options without the former. In this case, the
string corresponding to the source filename never gets emitted and some
debuginfo instructions end up with zero ID operands, resulting in
invalid SPIR-V.
Fixes #3240
-
3ebb72cc
by Arcady Goldmints-Orlov at 2023-06-27T13:49:14-04:00
Add an assert that ID operands are non-zero
Zero is not a valid ID value and the SPIR-V emitter library should never
be emitting instructions with ID values of 0.
-
eaa70577
by Nathaniel Cesario at 2023-07-07T16:33:08-04:00
Fix C example in README
Remove the usage of C++ STL types in the C-only interface example.
Fixes #3239.
-
051f18c0
by Rex Xu at 2023-07-11T13:26:22-04:00
Spirv_intrinsics: Add support of type specifier to spirv_type
Previously, spirv_type doesn't accept type specifier as its parameter.
With this change, we can input non-array type specifier. This is because
some SPIR-V type definition intructions often need to reference other
SPIR-V types as its source operands. We add the support to facilitate
such usage.
-
4ae01c5f
by Dawid Lorenz at 2023-07-11T13:36:38-04:00
Add support for pre and post HLSL qualifier validation
The change makes it possible to define a const variable after the marked
type. Example "float const"
-
44779f50
by Dawid Lorenz at 2023-07-11T13:36:38-04:00
Add support for pre and post HLSL qualifier validation
The change makes it possible to define a const variable after the marked
type. Example "float const"
-
d9a6fb22
by Joyce at 2023-07-13T13:58:05-04:00
Create a Security Policy (#3169)
* Create SECURITY.md
Signed-off-by: Joyce <joycebrum@google.com>
-
f4702899
by Arcady Goldmints-Orlov at 2023-07-13T18:14:29-04:00
Use std::call_once in spv::Parameterize()
There was a race condition in this function as it used a static variable
to attempt to ensure global initialization was only done once, which was
not thread-safe. Instead, use std::call_once, which was added to C++11
for this exact case.
Fixes #342
-
8a6a311d
by Nathaniel Cesario at 2023-07-17T12:17:55-04:00
build: Remove bazel build support
-
6defcb24
by Malcolm Bechard at 2023-07-17T14:42:20-04:00
Rework how auto push_constant upgrading works a bit.
Ensure we traverse the entire tree and upgrade all references to the
given symbol so it can be upgraded to push_constant. Without this change
only one instance was upgraded, and others were left as uniform buffers.
-
9e41635d
by Zeqiang Li at 2023-07-17T17:11:32-06:00
Add missing initialization members for web (#3246)
-
d5f3ad6c
by Dawid-Lorenz-Mobica at 2023-07-18T09:35:36-06:00
HLSL: support binary literals
Fixes #3089
-
9afd3461
by Pedro Olsen Ferreira at 2023-07-18T12:05:43-06:00
Fix maybe-uninitialized warning
The 'set' and 'setRT' variables were warning as maybe-uninitialized even
though in practice that case would never trigger (due to how the
function flow-controls).
The code blocks where these variables are actually read do not overlap,
so merge them into the same 'set' variable.
Simplify the control flow of the function with early-returns, which
drops indentation and simplifies the function.
-
a9a26254
by Juan Ramos at 2023-07-18T13:08:33-06:00
cmake: Fix Android build for r25 NDK
Currently with the build instructions provided in README.md
the build will fail.
In the r25 NDK the CMake toolchain defaults to the legacy path,
due to a bug in the current implementation.
https://github.com/android/ndk/issues/323
-
856e2805
by Nathaniel Cesario at 2023-07-18T15:23:50-06:00
cmake: Rename glslang to glslangValidator
Rename glslangValidator to glslang and adds a glslangValidator symlink
to the build and install directories.
Closes #47.
-
2af597d1
by Jeremy Hayes at 2023-07-18T15:29:59-06:00
Update known_good.json
-
9b1a0f4d
by Jeremy Hayes at 2023-07-19T12:57:07-06:00
Update CHANGES for release 12.3.0
-
865fe739
by Nathaniel Cesario at 2023-07-19T17:16:37-06:00
cmake: Fix symlink on Windows
Copy the old glslangValidator name on Windows rather than creating a
symlink. While cmake 3.13 and above supports creating symlinks on
Windows, a security policy change is required in general to allow
the creation of symlinks for non-trusted users. See
https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/create-symbolic-links
Fixes #3268.
-
77417d5c
by David Neto at 2023-07-19T20:02:03-06:00
Support MinGW build with Clang, not just GCC
Fixes: #3270
-
45ce545a
by Nathaniel Cesario at 2023-07-20T13:59:11-06:00
web: Fix emscripten build
The web/emscripten build has been broken for an unknown amount of time
and for multiple reasons:
- Calling `cat` on Windows
- The latest version of wasm-ld does not support the `--no-undefined`
flag
- `ccall` was not being exported
Fixes #3272.
-
4f3ae4b0
by Jeremy Hayes at 2023-07-20T14:53:51-06:00
Update CHANGES for release 12.3.1
-
65397339
by Arcady Goldmints-Orlov at 2023-07-20T16:12:44-06:00
Remove obsolete files
WORKSPACE is related to Bazel, which is no longer supported
Test/makeDoc uses an option that glslang no longer supports.
-
fe827799
by Sven van Haastregt at 2023-07-24T10:54:56-06:00
Silence unused parameter warning
The parameter could be removed, but keep it for consistency with other
`makeSpirvTypeParameters` overloads.
-
c81b34fb
by scribam at 2023-07-24T15:36:54-06:00
Remove useless semicolons
-
026a9bcd
by Juan Ramos at 2023-07-24T18:42:14-06:00
ci: Test Android NDK matrix combinations
-
4aa56496
by Juan Ramos at 2023-07-24T18:43:25-06:00
git: Ignore CMakeUserPresets.json
CMakeUserPresets.json can be useful for developers and is not
meant to be checked in.
-
29b87a4e
by Juan Ramos at 2023-07-25T17:02:59-06:00
Modernize linux CI
- Test Ubuntu-22.04
- Use ccache
- Ensure backwards compatibility with Ubuntu-20.04
-
91a97b4c
by Sven van Haastregt at 2023-07-26T10:09:43-06:00
Fix typo in error message
-
808c7ed1
by Boris Zanin at 2023-07-26T16:39:17-06:00
Implement support for GL_KHR_cooperative_matrix extension
-
775864ef
by Ben Clayton at 2023-07-26T18:11:41-06:00
Simplify PoolAlloc with use of thread_local.
glslang is using C++ 11, which has first class support for variables of the `thread_local` storage class.
By dropping the use of the `OS_[GS]etTLSValue`, we can simplify the logic, and have it support a thread-local default allocator if none is provided.
Issue: #2346
-
a0010e27
by Ben Clayton at 2023-07-26T18:11:41-06:00
Deprecate InitializeDll functions
These were only used for TThreadPool, which now uses `thread_local`.
-
4420f9b3
by Arcady Goldmints-Orlov at 2023-07-26T18:11:41-06:00
Remove OSDependent TLS functions
These are no longer used now that the PoolAllocator uses the standard
c++11 thread_local storage mechanism.
-
3c98026a
by 画卦伏羲 at 2023-07-27T11:34:20-06:00
Fix [type] command file url forward slashes issue when use mingw
-
47454f50
by Juan Ramos at 2023-07-28T08:48:09-06:00
cmake: Raise minimum to 3.17.2
Build fails due to external dependency on SPIRV-Tools.
EX:
```
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
CMake Error at External/spirv-tools/CMakeLists.txt:15 (cmake_minimum_required):
CMake 3.17.2 or higher is required. You are running version 3.14.0
```
-
0f873e75
by Juan Ramos at 2023-07-28T08:48:09-06:00
ci: Test CMake minimum
-
c8c669fc
by Allan MacKinnon at 2023-07-28T10:13:55-06:00
`spirv-remap`: Support outputting each SPIR-V module to a filename
The `spirv-remap` tool now supports two output modes:
* Outputting one or more inputs to a single directory -- the previous
behavior
* One output file per input -- new behavior.
-
d291b159
by dan sinclair at 2023-07-28T11:49:10-06:00
Remove GLSLANG_WEB and GLSLANG_WEB_DEVEL
This CL removes the GLSLANG_WEB and GLSLANG_WEB_DEVEL
cmake build options and their usage in the codebase.
Issue #2958
-
6bc35749
by Arcady Goldmints-Orlov at 2023-07-28T15:14:48-06:00
Remove a stray GLSLANG_WEB ifdef
-
54726b3c
by Arcady Goldmints-Orlov at 2023-07-28T15:14:48-06:00
Remove glslang.m4
The m4 grammar build mechanism was only ever needed as a preprocessor
for bison, to be used with GLSLANG_WEB, which has now been removed.
Fixes #2958
-
171a3220
by Tim Biermann at 2023-07-31T14:04:22-06:00
respect destdir for compat symlink
-
396596ca
by Arcady Goldmints-Orlov at 2023-07-31T20:12:51-06:00
Replace GlobalLock functions with std::mutex
The usage of GetGlobalLock/ReleaseGlobalLock/InitGlobalLock is replaced
by std::lock_guard which is available as of c++11, and the functions are
removed from the OSDependent ossource.cpp files.
The standalone glslang binary now explicitly depends on OSDependent, as
nothing in in the glslang library uses those functions anymore and they
are not implicitly picked up by the linker.
-
bfd96d30
by Nathaniel Cesario at 2023-08-02T16:43:05-06:00
Add emscripten build to CI
Adds a build-only (no test) job for testing the emscripten (web) build
on github actions.
-
79a9f7f6
by Nathaniel Cesario at 2023-08-07T10:52:22-06:00
Fix continuous deployment
There should not be a '/' after $ENV{DESTDIR} in the cmake install script.
This change also:
- Uses lukka/get-cmake github action consistently across jobs
- Add the glslang binary to the continuous deployment archive
-
34d4f78f
by Arseny Kapoulkine at 2023-08-07T11:38:17-06:00
Fix interaction between GL_EXT_mesh_shader and GL_EXT_fragment_shading_rate
Before this change, using gl_MeshPrimitivesEXT in mesh shader would
unconditionally create gl_MeshPrimitivesEXT.gl_PrimitiveShadingRateEXT
field and add PrimitiveShadingRateKHR capability to the output SPIRV
file, which would subsequently trigger validation errors when creating
the shader module unless the application requested primitive shading
rate feature.
What should happen instead is that unless GL_EXT_fragment_shading_rate
extension is enabled, we should not allow using
gl_PrimitiveShadingRateEXT and should not emit the associated fields
into the output.
This change fixes this by using existing filterMember mechanism that is
already used in a few other cases like this, and adjusting the required
extension on the field member which will generate an error when
gl_PrimitiveShadingRateEXT is used without enabling the extension.
-
76b52ebf
by Nathaniel Cesario at 2023-08-08T12:49:36-06:00
Update known_good.json
SPIRV-Tools: v2023.4.rc2
-
b70669a0
by Rex Xu at 2023-08-15T09:37:26-06:00
Spirv_intrinsics: Remove early return in layoutTypeCheck
Previously, when GL_EXT_spirv_intrinsics are enabled, we disable all
checks in layoutTypeCheck. This is too coarse because we can use nothing
in GL_EXT_spirv_intrinsics in a shader while the necessary processing is
skipped, such as addUsedLocation.
In this change, we apply fine check and more might be added if we
encounter new cases in the future.
-
3805888a
by Kacper Michajłow at 2023-08-17T11:56:22-06:00
Look for external SPIR-V Tools build, if not building in-tree
This allows to build with optimizer enabled, if external SPIR-V tools
libraries are available in the system. It is quite common in *nix world
to package spirv-tools and glslang separately.
Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
-
98aa6944
by Pedro Olsen Ferreira at 2023-08-18T09:52:03-06:00
[cmake] Use CMake property for symbol visibility
CMake provides a target property to set default symbol visibility which
supports different toolchains transparently.
-
70d125b9
by Sven van Haastregt at 2023-08-18T09:52:54-06:00
cmake: Don't link SPVRemapper into glslang executable
The functionality of `libSPVRemapper` is only used by the
`spirv-remap` executable, so don't link it into the `glslang`
executable.
-
c5117b32
by Nathaniel Cesario at 2023-08-18T14:36:47-06:00
Fix CI build badge
Replaces the appveyor build (which is no longer used) with a badge
pointing to the continuous_integration.yml job status.
-
d072aa66
by Joyce at 2023-08-21T12:34:22-06:00
Create scorecard.yml
Signed-off-by: Joyce <joycebrum@google.com>
-
4e7ccd4a
by Joyce at 2023-08-21T12:34:22-06:00
Add badge to README.md
Signed-off-by: Joyce <joycebrum@google.com>
-
db8719ae
by Wooyoung Kim at 2023-08-21T18:14:52-06:00
extension: GL_QCOM_image_processing support
-
f1cb8608
by Jeremy Hayes at 2023-08-23T17:24:25-06:00
Update CHANGES for release 13.0.0