John Kessenich [Thu, 22 Aug 2019 12:58:26 +0000 (06:58 -0600)]
GLSL: Inherit memory qualifiers, both declaratively and in execution.
Fixes #1870, probably others.
John Kessenich [Thu, 22 Aug 2019 14:52:15 +0000 (08:52 -0600)]
Merge pull request #1875 from jonahryandavis/extra-tokens
Fix conformance with -Wextra-tokens
Jonah Ryan-Davis [Thu, 22 Aug 2019 14:36:12 +0000 (10:36 -0400)]
Fix conformance with -Wextra-tokens
John Kessenich [Wed, 21 Aug 2019 17:08:27 +0000 (11:08 -0600)]
Bump version.
John Kessenich [Wed, 21 Aug 2019 17:07:01 +0000 (11:07 -0600)]
Merge pull request #1855 from KhronosGroup/web
Web: Create a very small-footprint glslang for web use.
John Kessenich [Wed, 21 Aug 2019 09:38:02 +0000 (03:38 -0600)]
web: Fix accidental additon of refract() prototypes and update README.
John Kessenich [Tue, 13 Aug 2019 14:00:30 +0000 (08:00 -0600)]
Web: Turn off includes, independent preprocessing path, fine tune all.
Saved about 21K, size down to 380K of MSVC x86 code.
Fixed one bug that needs to be looked at on the master branch:
The test for needing a Vulkan binding has a bug in it, "!layoutAttachment"
which does not mean "no layoutAttachment", because that is non-zero.
This is why some test and test results changed.
John Kessenich [Sun, 11 Aug 2019 13:41:45 +0000 (07:41 -0600)]
Web: Make switched methods all be non-virtual, more web-dependent code,
added a few more HLSL flag tests. This was mostly focused on the SPV generator.
Saves about 17K.
John Kessenich [Sat, 10 Aug 2019 16:41:15 +0000 (10:41 -0600)]
Web: Optional error management and error tightening.
Saves about 6.5K
John Kessenich [Fri, 9 Aug 2019 09:49:15 +0000 (03:49 -0600)]
Web: Use isEsProfile() instead of run-time testing; remove more atomics
Saves 2.5K, and design is better.
John Kessenich [Fri, 9 Aug 2019 05:29:20 +0000 (23:29 -0600)]
Web: Remove unused stage functionality, SPIR-V logger, and hex_utils
Saves another 20K.
John Kessenich [Thu, 8 Aug 2019 16:35:51 +0000 (10:35 -0600)]
Web: Remove unnecessary GLSL numeric types, and some collateral.
This saves another 40K of x86 binary, which is about 13% of the target size.
John Kessenich [Thu, 8 Aug 2019 07:15:24 +0000 (01:15 -0600)]
Web: Tighten up sampling code and interfaces.
Saves about 9K.
John Kessenich [Wed, 7 Aug 2019 07:52:20 +0000 (01:52 -0600)]
Web: Complete the removal of vendor-specific #ifdef's, including CMake.
John Kessenich [Wed, 7 Aug 2019 05:16:35 +0000 (23:16 -0600)]
Web: Prune grammar and lexor down to needed subset.
About 60K smaller (20% the target size is these units of 300K).
Over 300 fewer #ifdef.
This adds a new glslang.m4 file that needs to be processed by m4 to get
the glslang.y file needed by bison. See comment in glslang.m4 for more
detail.
This updates the updateGrammar script to do the .m4 -> .y processing,
to conditionally exclude grammar not needed for the web build.
John Kessenich [Tue, 6 Aug 2019 13:00:58 +0000 (07:00 -0600)]
Web: Generalize _EXTENSIONS* in SPIR-V back-end.
About 50 fewer #ifdefs.
About 14K smaller.
Note, the base size is ill-defined due to optimizer settings (size vs. performance),
compression, and target architecture. Some recent %'s are accidentally reported as
3X the real savings. Early %'s were accurate. What matters though is that each
step got worthwhile gains, and what the final size ends up being.
John Kessenich [Tue, 6 Aug 2019 08:20:45 +0000 (02:20 -0600)]
Web: Turn off bracket-style attributes, reflection, and IO mapping.
John Kessenich [Thu, 1 Aug 2019 09:28:08 +0000 (03:28 -0600)]
Web: Remove/rationalize a set of *_EXTENSIONS, using GLSLANG_WEB.
Focus was on the front end (not SPIR-V), minus the grammar.
Reduces #ifdef count by around 320 and makes the web build 270K smaller,
which is about 90% the target size.
The grammar and scanner will be another step, as will the SPIR-V backend.
This makes heavy use of methods #ifdef'd to return false as a global way
of turning off code, relying on C++ DCE to do the rest.
John Kessenich [Wed, 31 Jul 2019 09:48:10 +0000 (03:48 -0600)]
Web: First pass of tabling the built-in function declarations.
Doing this much saved about 11.5K, including adding all the infrastructure.
John Kessenich [Sun, 28 Jul 2019 08:12:10 +0000 (02:12 -0600)]
Web: Selectively remove a few key features, using #ifndef GLSLANG_WEB
Save about 100K.
N.B.: This is done by eliminating a function call, at a high level,
not by #ifdef'ing a bunch of code.
Also, removed no longer needed *_EXTENSION #ifdef in the code not
needed by GLSLANG_WEB.
John Kessenich [Sat, 27 Jul 2019 14:18:03 +0000 (08:18 -0600)]
Web: Change a bunch of HLSL methods from dynamic to compile-time known.
This saves about 7K.
By changing just a few methods to be compile-time known, a bunch of
scattered code becomes DCE.
John Kessenich [Sat, 27 Jul 2019 11:22:30 +0000 (05:22 -0600)]
Web: Remove a few additional HLSL constructs with ENABLE_HLSL.
Saves about 3K.
John Kessenich [Fri, 26 Jul 2019 14:02:40 +0000 (08:02 -0600)]
Web: Add sanity check test suite for smaller-footprint builds.
For the smallest builds, google tests will not be present, in
addition to a large number of tests not being capable of running.
John Kessenich [Wed, 21 Aug 2019 05:06:10 +0000 (23:06 -0600)]
Merge pull request #1872 from kainino0x/js-interface
make glslang.js easy to use and work on node, and related changes
John Kessenich [Wed, 21 Aug 2019 04:42:40 +0000 (22:42 -0600)]
Bump revision.
Kai Ninomiya [Wed, 14 Aug 2019 21:33:11 +0000 (14:33 -0700)]
convert_glsl_to_spirv: fail early, reduce copies, remove input buffer allocation
Kai Ninomiya [Fri, 26 Jul 2019 04:34:15 +0000 (21:34 -0700)]
make glslang.js easy to use
Kai Ninomiya [Thu, 15 Aug 2019 00:30:14 +0000 (17:30 -0700)]
enable build for node
John Kessenich [Thu, 15 Aug 2019 03:35:57 +0000 (21:35 -0600)]
Set theme jekyll-theme-merlot
John Kessenich [Sat, 10 Aug 2019 11:24:48 +0000 (05:24 -0600)]
Merge pull request #1867 from zoddicus/addWebBuild
Add WASM build target for Web version of glslang
Ryan Harrison [Fri, 9 Aug 2019 15:19:07 +0000 (11:19 -0400)]
Make non-emscripten flags platform agnostic.
Ryan Harrison [Fri, 9 Aug 2019 14:56:51 +0000 (10:56 -0400)]
Converted ENABLE_HLSL to a dependent option, so it can be always disabled in web builds
Ryan Harrison [Fri, 9 Aug 2019 14:27:45 +0000 (10:27 -0400)]
Move build instructions to README.md
Ryan Harrison [Thu, 8 Aug 2019 17:50:13 +0000 (13:50 -0400)]
Add WASM build target for Web version of glslang
This adds build rules to support generating a WASM binary to be used
on the web. The API exposed to web applications is definated in the
new glslang.js.cpp file.
John Kessenich [Fri, 2 Aug 2019 12:34:15 +0000 (06:34 -0600)]
Bump revision and give the bots another chance to work.
John Kessenich [Fri, 2 Aug 2019 07:37:37 +0000 (01:37 -0600)]
Merge pull request #1860 from zoddicus/fixShaderCRoll
Add in header for uint32_t definition
Ryan Harrison [Thu, 1 Aug 2019 19:07:18 +0000 (15:07 -0400)]
Add in header for uint32_t definition
This is needed for stricter/newer MSVC builds of downstream users.
John Kessenich [Wed, 31 Jul 2019 02:29:09 +0000 (20:29 -0600)]
Merge pull request #1859 from zoddicus/fixNoRTTIForWindows
Convert no RTTI rule to be compiler specific
Ryan Harrison [Tue, 30 Jul 2019 15:25:19 +0000 (11:25 -0400)]
Convert no RTTI rule to be compiler specific
MSVC uses a different flag for disabling RTTI, so is currently
including RTTI information and throwing warnings.
John Kessenich [Mon, 29 Jul 2019 15:40:14 +0000 (09:40 -0600)]
Merge pull request #1857 from Roy-AMD/automapping-opengl-location
Automapping opengl location
John Kessenich [Mon, 29 Jul 2019 05:20:26 +0000 (23:20 -0600)]
Merge pull request #1813 from jeffbolznv/compositeconstruct
Handle SPIR-V type mismatch when constructing a composite
John Kessenich [Mon, 29 Jul 2019 03:33:30 +0000 (21:33 -0600)]
Merge pull request #1844 from alelenv/ast_print_fix
Fix bug in printing trailing comma when dumping AST for a structure.
Canon lee [Sun, 28 Jul 2019 12:53:08 +0000 (20:53 +0800)]
Fix Clang compiler warning.
Canon lee [Sun, 28 Jul 2019 12:13:23 +0000 (20:13 +0800)]
Fix location distribution not in order
Canon lee [Thu, 25 Jul 2019 16:47:16 +0000 (00:47 +0800)]
Merge branch 'sync' into automapping-opengl-location
Sync code from KhronosGroup/glslang.
John Kessenich [Thu, 25 Jul 2019 15:03:00 +0000 (09:03 -0600)]
Merge pull request #1853 from s-perron/per
Remove execute permission from LICENSE.txt
Steven Perron [Thu, 25 Jul 2019 13:57:06 +0000 (09:57 -0400)]
Remove execute permission from LICENSE.txt
Roy [Thu, 25 Jul 2019 02:52:10 +0000 (10:52 +0800)]
Fix memory init issue, to make sure the class members are init in order.
John Kessenich [Tue, 23 Jul 2019 10:10:36 +0000 (04:10 -0600)]
Revert "Merge pull request #1792 from Roy-AMD/automapping-opengl-location"
This reverts commit
50ada66c2717fb579979d54ac723475de2b1a5c4, reversing
changes made to
3464b6f519be1500faa60698918f13f4dd796dd0.
John Kessenich [Tue, 23 Jul 2019 08:18:18 +0000 (02:18 -0600)]
Merge pull request #1792 from Roy-AMD/automapping-opengl-location
Automapping opengl location
John Kessenich [Tue, 23 Jul 2019 05:55:54 +0000 (23:55 -0600)]
Merge pull request #1847 from alelenv/member_remap_fix
Fix missing decoration and bug in member remap
Ashwin Lele [Mon, 22 Jul 2019 19:36:38 +0000 (12:36 -0700)]
Fix bugs in missing Builtin decoration for some NV builtins for tessellation
control shaders.
Fix bug in member remapping.
John Kessenich [Mon, 22 Jul 2019 13:06:50 +0000 (07:06 -0600)]
SPV: Update to latest SPIR-V header.
John Kessenich [Mon, 22 Jul 2019 12:30:59 +0000 (06:30 -0600)]
Merge pull request #1845 from greg-lunarg/kg105
Update spirv-tools and spirv-headers known good.
Greg Fischer [Thu, 18 Jul 2019 19:53:09 +0000 (13:53 -0600)]
Update spirv-tools and spirv-headers known good.
Previous known-good contained regression per sperron at Google.
John Kessenich [Thu, 18 Jul 2019 01:15:47 +0000 (19:15 -0600)]
Build: shut up warning to add unnecessary parens.
Ashwin Lele [Wed, 17 Jul 2019 21:40:58 +0000 (14:40 -0700)]
Fix bug in printing trailing comma when dumping AST for a structure.
John Kessenich [Wed, 17 Jul 2019 09:13:44 +0000 (03:13 -0600)]
Merge pull request #1841 from jmacnak-nv/jmacnak-raytracing-descriptor-indexing-validation
Update known good SPIRV-Tools commit
Jason Macnak [Tue, 16 Jul 2019 16:39:54 +0000 (09:39 -0700)]
Update known good SPIRV-Tools commit
Update the known good SPIRV-Tools commit to eventually propagate the
commit allowing the ray tracing stages in pass instrumentation to the
vulkan validation layers (validation layers depends on glslang which
depends on spirv-tools).
John Kessenich [Tue, 16 Jul 2019 01:49:46 +0000 (19:49 -0600)]
Merge pull request #1837 from KhronosGroup/fix-NV_compute_shader_derivatives
ESSL: Fix #1823: Conditions for when derivatives are in compute shader.
John Kessenich [Tue, 16 Jul 2019 01:48:32 +0000 (19:48 -0600)]
Merge pull request #1839 from sparmarNV/fix-NV_mesh_shader
Fix #1818: Allow unsized view array dimension for non-block perviewNV attributes
Sahil Parmar [Mon, 15 Jul 2019 23:05:18 +0000 (16:05 -0700)]
Allow unsized view array dimension for non-block perviewNV attributes
John Kessenich [Mon, 15 Jul 2019 16:55:30 +0000 (10:55 -0600)]
Merge pull request #1824 from KhronosGroup/fix-spec-expr-array-check
SPV: Fix #1783: Don't do bounds checking for spec-const-expression size
John Kessenich [Mon, 15 Jul 2019 13:23:16 +0000 (07:23 -0600)]
Merge pull request #1836 from amdrexu/bugfix
OpIsHelperInvocationEXT should declare relevant SPV extension and capability
John Kessenich [Mon, 15 Jul 2019 07:20:18 +0000 (01:20 -0600)]
ESSL: Fix #1823: Conditions for when derivatives are in compute shader.
Rex Xu [Mon, 15 Jul 2019 06:57:20 +0000 (14:57 +0800)]
OpIsHelperInvocationEXT should declare relevant SPV extension and capability
John Kessenich [Sat, 13 Jul 2019 18:22:10 +0000 (12:22 -0600)]
GLSL: Fix #1833: Don't constant fold integer mix to a float.
John Kessenich [Sat, 13 Jul 2019 00:29:59 +0000 (18:29 -0600)]
Merge pull request #1835 from jmacnak-nv/jmacnak-sample-coverage-capability
spirv: Generate missing SampleMaskOverrideCoverageNV capability op
John Kessenich [Sat, 13 Jul 2019 00:29:13 +0000 (18:29 -0600)]
Merge pull request #1834 from zoddicus/addRTTIFlag
Explicitly remove RTTI in the top-level build config
Jason Macnak [Fri, 12 Jul 2019 21:33:02 +0000 (14:33 -0700)]
spirv: Generate missing SampleMaskOverrideCoverageNV capability op
The SampleMaskOverrideCoverageNV capability should be declared when
gl_SampleMask is used.
Ryan Harrison [Fri, 12 Jul 2019 18:25:18 +0000 (14:25 -0400)]
Explicitly remove RTTI in the top-level build config
Fixes #1831
John Kessenich [Thu, 11 Jul 2019 19:16:09 +0000 (13:16 -0600)]
Merge pull request #1833 from AaronHaganAMD/master
Add support for SPV_KHR_shader_clock
amhagan [Thu, 11 Jul 2019 01:14:38 +0000 (21:14 -0400)]
Add support for SPV_KHR_shader_clock
John Kessenich [Wed, 10 Jul 2019 21:10:30 +0000 (15:10 -0600)]
Merge pull request #1832 from jeffbolznv/issue1828
Avoid generating 8/16-bit constants when 8/16-bit arithmetic extensions aren't enabled
Jeff Bolz [Wed, 10 Jul 2019 18:06:15 +0000 (13:06 -0500)]
Avoid generating 8/16-bit constants when 8/16-bit arithmetic extensions aren't enabled
John Kessenich [Wed, 10 Jul 2019 17:45:48 +0000 (11:45 -0600)]
Merge pull request #1827 from alan-baker/update-spirv-tools
Update spirv tools
John Kessenich [Tue, 9 Jul 2019 06:14:27 +0000 (00:14 -0600)]
Merge pull request #1825 from amdrexu/bugfix
Change implementation of gl_SIMDGroupSizeAMD
Alan Baker [Mon, 8 Jul 2019 18:14:23 +0000 (14:14 -0400)]
Test updates
Alan Baker [Mon, 8 Jul 2019 18:14:13 +0000 (14:14 -0400)]
Update SPIRV-Tools revision
Rex Xu [Sat, 6 Jul 2019 15:40:10 +0000 (23:40 +0800)]
Change implementation of gl_SIMDGroupSizeAMD
John Kessenich [Wed, 3 Jul 2019 15:28:28 +0000 (09:28 -0600)]
SPV: Fix #1783: Don't do bounds checking for spec-const-expression size
It's okay for symbolic spec-consts, but without constant folding,
not okay when the array size is an expression.
John Kessenich [Wed, 3 Jul 2019 07:27:39 +0000 (01:27 -0600)]
HLSL: Fix #1815: Don't constant fold spec-constant array indexing.
John Kessenich [Tue, 2 Jul 2019 17:04:44 +0000 (11:04 -0600)]
Merge pull request #1819 from jeffbolznv/demote
update spirv-headers to pick up demote_to_helper_invocation
Jeff Bolz [Tue, 2 Jul 2019 15:57:48 +0000 (10:57 -0500)]
update spirv-headers to pick up demote_to_helper_invocation
John Kessenich [Tue, 2 Jul 2019 15:32:48 +0000 (09:32 -0600)]
Standalone: Fix #1814: Check that linkage was specified for reflection.
John Kessenich [Tue, 2 Jul 2019 08:20:18 +0000 (02:20 -0600)]
Merge pull request #1817 from jeffbolznv/demote
Implement GL_EXT_demote_to_helper_invocation
John Kessenich [Tue, 2 Jul 2019 07:51:50 +0000 (01:51 -0600)]
Build: Tweak PR #1808 to avoid an implicit conversion warning.
Jeff Bolz [Mon, 1 Jul 2019 14:23:23 +0000 (09:23 -0500)]
Implement GL_EXT_demote_to_helper_invocation
John Kessenich [Wed, 26 Jun 2019 06:53:18 +0000 (00:53 -0600)]
Merge pull request #1811 from ShabbyX/fix
Remove extraneous semicolons
John Kessenich [Wed, 26 Jun 2019 06:52:12 +0000 (00:52 -0600)]
Merge pull request #1812 from ShabbyX/master
Remove __DATE__ and __TIME__ usage
Jeff Bolz [Tue, 25 Jun 2019 18:31:10 +0000 (13:31 -0500)]
Handle SPIR-V type mismatch when constructing a composite
Shahbaz Youssefi [Tue, 25 Jun 2019 16:09:55 +0000 (12:09 -0400)]
Remove __DATE__ and __TIME__ usage
These macros result in a non-deterministic build. In chromium, these
macros are specifically set to empty, resulting in a compile error.
Shahbaz Youssefi [Tue, 25 Jun 2019 16:08:10 +0000 (12:08 -0400)]
Remove extraneous semicolons
They cause a warning (-Wextra-semi) that can lead to a compile error
(-Werror).
John Kessenich [Sun, 23 Jun 2019 15:10:16 +0000 (09:10 -0600)]
Merge pull request #1808 from jeffbolznv/promote_types
Handle all basic scalar types in promoteConstantUnion
Jeff Bolz [Sat, 22 Jun 2019 04:39:05 +0000 (23:39 -0500)]
Add a bunch of missing cases to promoteConstantUnion. Use macros to expand all the cases more simply.
John Kessenich [Sun, 23 Jun 2019 02:45:18 +0000 (20:45 -0600)]
Merge pull request #1807 from digit-google/fuchsia-fixes
BUILD.gn: Fix file for use with Fuchsia platform build.
Jeff Bolz [Sat, 22 Jun 2019 04:27:26 +0000 (23:27 -0500)]
Add test for constant type conversion
David 'Digit' Turner [Fri, 21 Jun 2019 12:58:30 +0000 (14:58 +0200)]
BUILD.gn: Fix file for use with Fuchsia platform build.
In order to upgrade the version of glslang used by the
Fuchsia platform source tree, BUILD.gn needs to be
slightly modified to care about the case where it is
not used with the Chromium //build configuration:
- Remove a new compiler warning to ensure proper
compilation with -Werror (which is the default).
- Add a build target for spirv-remap, which is used
by Fuchsia at build time to optimize the precompiled
shaders of some of its graphics libraries.
John Kessenich [Tue, 18 Jun 2019 08:00:46 +0000 (02:00 -0600)]
Merge pull request #1804 from KhronosGroup/fix-930-subgroup--mask-ops
AST/SPV: Fix #930: translate uvec4 <-> uint64 for SubgroupGeMask et. al.
John Kessenich [Tue, 18 Jun 2019 06:37:51 +0000 (00:37 -0600)]
Bump revision.