Arcady Goldmints-Orlov
dc1012140e
Convert keyword maps to static initializers
...
Rather than having a function that needs to be called from ShInitialize
to initialize some global costants, convert them to use static
initializers.
2024-09-11 14:29:10 -07:00
Arcady Goldmints-Orlov
592de6cf78
Clean up unused includes.
2024-08-20 09:09:44 -04:00
arcady-lunarg
48eaea60b8
Fix undefined behaviors caught by ubsan
...
This fixes a couple of integer overflows in parsing as well as removes
the construction of a null reference that never got dereferenced.
This also initializes the bool members in TCall
Finally, this adds a UBSAN run alongside ASAN and TSAN in CI.
2024-07-15 19:10:42 -04:00
Pavel Asyutchenko
e46c1b725c
Keep vec1.x l-value in HLSL
...
Changes in hlsl.shapeConv.frag are just renumbering,
duplicated load (80) has disappeared for whatever reason.
2024-04-22 11:50:37 -04:00
Pavel Asyutchenko
2c4348f064
Fix HLSL built-in passthrough via inout
2024-02-26 19:04:23 -05:00
Arcady Goldmints-Orlov
7ffa289495
Add extra break statements to quiet clang warnings.
...
Clang complains about code that falls through into an empty default
case, so add some breaks to placate it.
2024-02-20 19:12:06 -05:00
Arcady Goldmints-Orlov
606209e07d
Use [[fallthrough]] attribute instead of comments.
...
Now that we require C++17, the [[fallthrough]] attribute is available as
an alternative to load-bearing comments.
2024-02-20 19:12:06 -05:00
FrostyLeaves
153064f2c7
fix: Support SV_ViewID keywords for hlsl.
2023-11-22 17:04:38 -05:00
Nathaniel Cesario
4c57db1595
Add --no-link option
...
Adds the --no-link option which outputs the compiled shader binaries
without linking them. This is a first step towards allowing users to
create SPIR-v binary, non-executable libraries.
When using the --no-link option, all functions are decorated with the
Export linkage attribute.
2023-09-18 17:31:05 -04:00
Dawid Lorenz
44779f508a
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"
2023-07-11 13:36:38 -04:00
Dawid Lorenz
4ae01c5f41
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"
2023-07-11 13:36:38 -04:00
Try
4142fead74
fix crash in HLSL frontend
...
fix crash, when converting HLSL return of hull shader into spirv/glsl like arrayed output.
fix #2914
2023-04-13 09:49:00 -04:00
spencer-lunarg
9fe5223370
Improve error message of alignment offset
2023-04-10 16:21:15 -04:00
Arcady Goldmints-Orlov
fbabd37aca
Remove a redundant condition in an if statement
...
This was added erroneously in commit 12bc9aa9c .
2023-03-31 19:53:42 -06:00
Randall C. O'Reilly
ae55d83a88
change HLSL/hlslParseables.cpp to support InterlockedAdd on F=float types
2023-02-08 13:28:52 -07:00
rdb
5137ce1a95
HLSL: Add missing relaxed-precision float/int matrix expansions
2023-02-02 11:14:33 -07:00
Johannes Kauffmann
a7603c132d
Use nullptr where possible instead of NULL or 0
2022-11-30 09:33:28 -07:00
Jeremy Hayes
7a914ce926
Implement NonSemantic.Shader.DebugInfo.100
...
See https://github.com/KhronosGroup/SPIRV-Registry .
2022-08-26 16:17:54 -06:00
Gabriele Di Bari
e314891598
handleEntryPointAttributes add EatInstance case
2022-05-21 17:00:24 +02:00
Ryp
f906b895ec
Fix WavePrefixCountBits() being off by one.
...
It was counting bits up to the current lane included, whereas the
documentation says it should be excluded. This now matches dxc's behavior
as well.
Fix #2929
2022-04-22 20:59:10 +03:00
Greg Fischer
fbb39aa461
Fix --hlsl-dx-position-w to work for SV_Position embedded in struct
...
Fixes #2244
2021-12-07 15:34:52 -07:00
Greg Fischer
e9564feb55
Add --hlsl-dx-position-w option
...
This reciprocates the w component of SV_Position in HLSL fragment shaders
to provide DirectX compatibility for HLSL shaders in Vulkan.
Fixes #2244
2021-11-16 18:42:12 -07:00
Greg Fischer
10be28ac9b
Fix struct type sharing
...
Fixes #2812
2021-11-12 16:57:11 -07:00
Greg Fischer
8b87b84001
Fix SPIR-V for SampleBias
...
Fixes #2757
2021-09-17 17:22:39 -06:00
Peter Kasting
e8cffa5b7f
Fix some instances of -Wunused-but-set-variable.
...
Bug: chromium:1203071
2021-07-26 07:34:37 -07:00
tgfrerer
adfa0938a2
fix error message for hlslGrammar::acceptConstructor
...
Fix the error message for when an erroneous HLSL constructor statement
is detected.
Prior to this change, such error messages would not show correct file
path and line number information.
Additionally, update test data to account for updated error messages.
2021-05-11 09:42:11 +01:00
Jeremy Hayes
4b900778c3
Issue error when declaration rule fails
...
Fix #2514 .
2021-04-09 16:55:23 -06:00
Greg Fischer
7fbaca0d06
Fix SPIR-V for HLSL EvaluateAttribute* of interpolants in structs
...
Generate load of interpolant for first operand to GLSLstd450
InterpolateAt* SPIR-V ops. This allows the interpolants to
propagate from the input struct in the wrapper around main
into the shader during HLSL legalization. A new pass has been
added to legalization which will remove the load and replace
with the pointer of the load to create valid external
interpolate op.
Fixes #2584
2021-04-01 00:31:31 -06:00
greg-lunarg
b0f8a0c3ab
Merge pull request #2458 from ShchchowAMD/unique_id-fix
...
Fix issue for new unique id system.
2021-02-15 13:22:14 -07:00
Chow
93b400f267
Fix issue for new unique id system. Add level bits to help verifying symbols and split symbol tables.
...
For intermediates rebuilding, now need manually amending level bits for redeclaring built-ins.
2021-02-15 20:35:20 +08:00
Greg Fischer
efe4586fad
Fix cut and paste error
...
Fixes #2476
2020-12-17 22:57:50 -07:00
rdb
589aaff11c
Don't use roundEven() to implement round() in DX9 compatibility mode
2020-12-16 18:35:42 +01:00
Rex Xu
f6e0fe8600
HLSL: Add support for printf().
...
Translate printf() to what GL_EXT_debug_printf has done. HLSL could
define non-constant string variable and we don't have such features
in SPIR-V, so just support constant string variable.
2020-10-24 22:10:13 +08:00
Rémi Verschelde
69d0c1acc2
Remove executable bits from code/data files ( #2420 )
2020-10-12 10:08:47 -06:00
johnkslang
f8a5602c55
Fix #2385 : guard against constant_id on non-const.
2020-09-14 02:49:38 -06:00
Ben Clayton
31cad22758
Use CMake's builtin functionality for PCHs
...
`glslang_pch()` did manual mangling of the compiler flags to enable pre-compiled headers.
I couldn't get this approach to work with the `MachineIndependent` subdirectory, but fortunately CMake has added first-class support for precompiled headers in 3.16, which does work with subdirectories.
Moved `glslang_pch()` to the other global function declarations.
`glslang_pch()` is a no-op when using CMake earlier than `3.16`.
CMake's PCH implementation does not need the `pch.cpp` files, so just remove them.
2020-07-07 16:44:19 +01:00
John Kessenich
a70f7dea77
Merge pull request #2268 from lriki/hlsl-pack_matrix
...
HLSL: Fix #pragma pack_matrix(row_major) not work on global uniforms
2020-07-02 05:21:45 -06:00
John Kessenich
b112fac003
HLSL: Catch error cases earlier, preventing a later assert.
...
Related to https://github.com/KhronosGroup/SPIRV-Cross/issues/1414 .
The real problem is either using DX10 semantics for DX9 or missing
functionality in DX10 parsing.
2020-07-01 00:53:37 -06:00
Evgeny Proydakov
f6e3446363
Fixed GCC -Wunused-parameter in hlslParseables.cpp.
...
Warnings before fix:
[3/7] Building CXX object glslang/CMakeFiles/glslang.dir/HLSL/hlslParseables.cpp.o
../glslang/HLSL/hlslParseables.cpp: In function ‘bool {anonymous}::IsValid(const char*, char, char, char, char, int, int)’:
../glslang/HLSL/hlslParseables.cpp:334:45: warning: unused parameter ‘retOrder’ [-Wunused-parameter]
334 | inline bool IsValid(const char* cname, char retOrder, char retType, char argOrder, char argType, int dim0, int dim1)
| ~~~~~^~~~~~~~
../glslang/HLSL/hlslParseables.cpp:334:60: warning: unused parameter ‘retType’ [-Wunused-parameter]
334 | inline bool IsValid(const char* cname, char retOrder, char retType, char argOrder, char argType, int dim0, int dim1)
| ~~~~~^~~~~~~
../glslang/HLSL/hlslParseables.cpp:334:89: warning: unused parameter ‘argType’ [-Wunused-parameter]
334 | inline bool IsValid(const char* cname, char retOrder, char retType, char argOrder, char argType, int dim0, int dim1)
| ~~~~~^~~~~~~
../glslang/HLSL/hlslParseables.cpp:334:112: warning: unused parameter ‘dim1’ [-Wunused-parameter]
334 | inline bool IsValid(const char* cname, char retOrder, char retType, char argOrder, char argType, int dim0, int dim1)
| ~~~~^~~~
2020-06-29 17:07:34 +03:00
lriki
3cae3c4da8
HLSL: Fix #pragma pack_matrix(row_major) not work on global uniforms
2020-06-25 16:10:00 +09:00
Ben Clayton
f49820dd6b
Move hlsl/ source to glslang/HLSL/
...
Now that the HLSL source files are part of the `glslang` target (#2271 ), it makes sense for these to sit in the `glslang` directory.
Changed the case of the directory from `hlsl` to `HLSL` to better match the sibling directories.
2020-06-16 11:55:28 +01:00