25 Commits

Author SHA1 Message Date
Greg Fischer
f1d286fcc2
Merge pull request #2851 from chaoticbob/version-override
Added GLSL version override functionality and CLI
2022-03-24 17:51:54 -06:00
Greg Fischer
9ebd8ff6c1 Add Vulkan 1.3 support
Also update known goods to Vulkan 1.3 support
Also re-enable SPIR-V 1.6 tests with vulkan1.3 target
Also re-cache SPIRV 1.6 header which somehow regressed back to 1.5
2022-01-26 17:57:31 -07:00
Hai Nguyen
1f10dddac4 Revisions to GLSL version override
- Reverted public function interface changes for C++.
- Added override member variable to TShader.
- Added accessor TShader::setOverrideVersion.
- Reverted changes to tests.
2022-01-01 19:02:14 -05:00
Hai Nguyen
9a98d32366 Added GLSL version override interface and CLI
This change list allows a user to override the GLSL version from the
command line or through the C and C++ interfaces. This will override the
override happens in ProcessDeferred() before DeduceVersionProfile() so
the process should still error out if the version is insufficient for
the shader code.

- Added --glsl-version <version> to CLI.
- Added parameter to route glslVersion as override version to
  preprocessor and parse functions to C++ interface.
- Updated C interface with function to override GLSL version.
2022-01-01 04:31:44 -05:00
Greg Fischer
7a49192d23 Add support for spirv1.6
Add command line support which enables the following behavior:

- Remap discard

  Map discard to DemoteToHelperInvocation for HLSL shaders. Map to
  OpTerminateInvocation for GLSL shaders.

- Decorate HelperInvocation with Volatile

- Use localSizeId for execution mode

  WorkGroupSize is deprecated in spirv1.6

Also update known goods to SPIRV 1.6
2021-12-16 15:01:42 -07:00
Hai Nguyen
58fe3a02b8 Fixed copy/paste error 2021-12-01 12:32:02 -05:00
Hai Nguyen
f66fb40149 Changed Vulkan rules relaxed to use shader options
- Removed vulkan_rules_relaxed from glslang_input_s
- Added GLSLANG_SHADER_VULKAN_RULES_RELAXED to glslang_shader_options_t
- Modified glslang_shader_set_options to handle new enum value
- Corrected enum value for GLSLANG_SHADER_AUTO_MAP_LOCATIONS
2021-12-01 03:55:59 -05:00
Hai Nguyen
b8dfe1348a Vulkan rules relaxed for glslang C interface
- Added vulkan_rules_relaxed flag to glslang_input_t to turn on Vulkan
  rules relaxed during shader creation.
2021-11-30 04:55:25 -05:00
Hai Nguyen
febbeb4f83
Support for automap options and resource binding shift (#2834)
* Support for automap options

- Added glslang_shader_options_t with enums for auto map bindings and
  auto map locations.
- Added options param to glslang_shader_parse.
- Modified glslang_shader_parse to call appropriate auto map function if
  auto map bits are set.

* Refactored auto map for C interface

- Added glslang_shader_set_options to independently set options instead
  of being a param on an existing function.
- Added glslang_program_map_io to call mapIO so auto map location
  actually works.

* Added support for shifting resource bindings

- Added resource binding shift functions to match C++ interface

* Uncommented preprocessor call that was commented out for debugging
2021-11-29 14:23:01 -07:00
Lynne
5ec47530b7 Add support for targeting Vulkan 1.2 in the C API 2021-11-08 10:48:38 +01:00
Ez Diy
1fde85ab96 GLSLANG_EXPORT for C APIs.
Fixes FFI breakage introduced in #2283
2020-08-10 22:26:41 +02:00
Ben Clayton
1a6c8ecb20 C Interface: Split SPIR-V C interface to own file
This breaks a cyclic dependency between the SPIRV and glslang build targets.
2020-06-15 13:22:19 +01:00
Daniel Koch
db32b243ff Add support for GLSL_EXT_ray_tracing
and SPV_KHR_ray_tracing
2020-03-17 20:42:47 -04:00
Travis Fort
fd37e0c0f1 add c wrapper for standalone ResourceLimits and remove that dependency from glslang_c_interface 2020-03-06 10:06:47 -05:00
Travis Fort
bdcfc48466 add c interface support for TBuiltInResource and glslang::DefaultTBuiltInResource 2020-03-05 16:05:07 -05:00
Sergey Kosarevsky
a7ff36e6bd Fix for #2075: removed DefaultTBuiltInResource from glslang_c_interface.cpp 2020-02-28 02:18:37 +03:00
David Neto
4bb910cb74 Avoid enum-compare warning 2020-02-06 05:43:43 -05:00
John Kessenich
19ec0d2ff9 Build: Fix more build warnings caused by PR #2038.
Revisit fix for #2062 for consistency with this commit.
2020-01-27 10:16:25 -07:00
Sergey Kosarevsky
e33f4e7bbb CInterface: replaced tabs with spaces 2020-01-08 14:25:56 +03:00
Sergey Kosarevsky
6944b38a78 CInterface: added static asserts to compare C/C++ enums 2019-12-30 11:13:16 +03:00
Sergey Kosarevsky
b80a63a0ba CInterface: replaced SH_ prefix with GLSLANG_ 2019-12-26 21:17:37 +03:00
Sergey Kosarevsky
d7f09317f7 CInterface: added glslang_program_SPIRV_get_ptr() 2019-12-25 01:01:06 +03:00
Sergey Kosarevsky
e9ddba8fd8 CInterface: added _BIT suffix to glslang_messages_t and glslang_reflection_options_t, fixed const-correctness 2019-12-25 00:05:41 +03:00
Sergey Kosarevsky
ca593a98f9 CInterface: reformatted according to .clang-format rules 2019-12-25 00:00:23 +03:00
Sergey Kosarevsky
8cded6ccb9 Added original glslang_c_interface implementation by Viktor Latypov 2019-12-24 23:53:05 +03:00