Neil Henning [Mon, 26 Nov 2018 10:17:33 +0000 (10:17 +0000)]
Add conversion folding when the source is a constant.
This change adds unary conversion folding when the source is a constant.
This fixes an ISV issue whereby:
```
const float16_t f = float16_t(42.0);
```
Wouldn't compile because the conversion operator would always produce an
EvqTemporary when it could have produced an EvqConst.
I've also added a test case that proves out that all basic-type to
basic-type conversions work.
John Kessenich [Sun, 25 Nov 2018 06:13:25 +0000 (23:13 -0700)]
Merge pull request #1592 from KhronosGroup/subgroupBroadcast-const-id
GLSL: Fix #1591: Require the id in subgroupBroadcast to be constant.
John Kessenich [Wed, 21 Nov 2018 21:43:18 +0000 (14:43 -0700)]
GLSL: Fix #1591: Require the id in subgroupBroadcast to be constant.
John Kessenich [Fri, 16 Nov 2018 21:41:13 +0000 (14:41 -0700)]
Merge pull request #1587 from dneto0/update-known-good
Update to newer SPIRV-Tools, including VK_EXT_scalar_block_layout
David Neto [Fri, 16 Nov 2018 21:04:23 +0000 (16:04 -0500)]
Update to newer SPIRV-Tools, including VK_EXT_scalar_block_layout
Validator has more refined messages about what kind of block layout
rules have been applied.
John Kessenich [Fri, 16 Nov 2018 17:02:18 +0000 (10:02 -0700)]
Bump minor version.
John Kessenich [Fri, 16 Nov 2018 16:57:59 +0000 (09:57 -0700)]
Merge branch 'jeffbolznv-scalar_block_layout'
John Kessenich [Fri, 16 Nov 2018 16:57:33 +0000 (09:57 -0700)]
Merge branch 'scalar_block_layout' of https://github.com/jeffbolznv/glslang into jeffbolznv-scalar_block_layout
John Kessenich [Fri, 16 Nov 2018 06:43:35 +0000 (23:43 -0700)]
Move to next SPIRV-Tools known good.
John Kessenich [Thu, 15 Nov 2018 22:07:28 +0000 (15:07 -0700)]
GLSL: Increase supported sizes of XBF strides and offsets.
John Kessenich [Thu, 15 Nov 2018 18:29:12 +0000 (11:29 -0700)]
Merge pull request #1583 from TiemoJung/fix_dot_int
[HLSL/Spir-V] fix for incorrect spir-v on int dot(int, int)
John Kessenich [Thu, 15 Nov 2018 17:37:21 +0000 (10:37 -0700)]
Bump revision.
John Kessenich [Thu, 15 Nov 2018 16:57:43 +0000 (09:57 -0700)]
Update to latest SPIR-V Tools.
t.jung [Thu, 15 Nov 2018 09:21:36 +0000 (10:21 +0100)]
[HLSL/Spir-V] fix for incorrect spir-v on int dot(int, int)
Decomposes OpDot into corresponding multiplies and additions.
John Kessenich [Wed, 14 Nov 2018 18:40:45 +0000 (11:40 -0700)]
Merge pull request #1579 from TiemoJung/handle_c_register
HLSL: implemented c register handling
John Kessenich [Wed, 14 Nov 2018 18:39:22 +0000 (11:39 -0700)]
Merge pull request #1580 from TiemoJung/float1_times_scalar_fix
HLSL: fix invalid spir-v vector * scalar for float1
John Kessenich [Wed, 14 Nov 2018 18:35:22 +0000 (11:35 -0700)]
Merge pull request #1577 from TiemoJung/fix_broken_type_system
Updated type conversion rules for HLSL frontend
Jeff Bolz [Wed, 14 Nov 2018 15:30:53 +0000 (09:30 -0600)]
Implement GL_EXT_scalar_block_layout
t.jung [Wed, 14 Nov 2018 12:04:39 +0000 (13:04 +0100)]
HLSL: fix invalid spir-v vector * scalar for float1
Missing check for float results in always emitting OpIMul even for float types
t.jung [Wed, 14 Nov 2018 11:59:18 +0000 (12:59 +0100)]
HLSL: implemented c register handling
Adjusted a test not to use c register for
a structured buffer, they are supposed to
use t registers
Added comments with hints for what are the
register types are used for.
t.jung [Tue, 13 Nov 2018 16:11:03 +0000 (17:11 +0100)]
Updated type conversion rules for HLSL frontend
John Kessenich [Tue, 13 Nov 2018 15:36:43 +0000 (08:36 -0700)]
Merge pull request #1571 from dj2/result
Handle potentially uninitialized result
Dan Sinclair [Tue, 13 Nov 2018 14:17:44 +0000 (09:17 -0500)]
Review feedback
John Kessenich [Mon, 12 Nov 2018 23:13:40 +0000 (16:13 -0700)]
Merge pull request #1573 from dneto0/fix-pch
PCH filename depends on current binary dir
David Neto [Mon, 12 Nov 2018 22:09:07 +0000 (17:09 -0500)]
PCH filename depends on current binary dir
Fixes #1572
Dan Sinclair [Mon, 12 Nov 2018 18:56:52 +0000 (13:56 -0500)]
Handle potentially uninitialized result
John Kessenich [Mon, 12 Nov 2018 16:01:35 +0000 (09:01 -0700)]
Merge pull request #1569 from amdrexu/bugfix
Fix parser issue: redeclare gl_FragStencilRefARB is not supported
Rex Xu [Mon, 12 Nov 2018 07:15:57 +0000 (15:15 +0800)]
Fix parser issue: redeclare gl_FragStencilRefARB is not supported
John Kessenich [Fri, 9 Nov 2018 19:27:39 +0000 (12:27 -0700)]
Merge pull request #1547 from Igalia/apinheiro/xfb-struct-assignment
Apinheiro/xfb struct assignment
John Kessenich [Fri, 9 Nov 2018 04:08:54 +0000 (21:08 -0700)]
Merge pull request #1565 from greg-lunarg/kg25
Add DeadBranchElim before MergeReturn in legalization.
GregF [Thu, 8 Nov 2018 17:35:45 +0000 (10:35 -0700)]
Add DeadBranchElim before MergeReturn in legalization.
MergeReturn now requires this or could throw an error.
John Kessenich [Thu, 8 Nov 2018 01:25:56 +0000 (18:25 -0700)]
Fix #1563: Corrupt token when an object macro miscalls a function macro
John Kessenich [Thu, 8 Nov 2018 00:14:46 +0000 (17:14 -0700)]
PP: More clearly distinguish funtion-like and object-like macros
John Kessenich [Wed, 7 Nov 2018 17:01:25 +0000 (10:01 -0700)]
Merge pull request #1564 from jeffbolznv/spirv-pch
Rename PCH macro to glslang_pch (to avoid name collision) and update to latest spirv-tools
Jeff Bolz [Wed, 7 Nov 2018 15:35:20 +0000 (09:35 -0600)]
Rename PCH macro to glslang_pch (to avoid name collision) and update to latest spirv-tools
John Kessenich [Tue, 6 Nov 2018 21:51:27 +0000 (14:51 -0700)]
Tests: Add test for ways of calling no-argument macro with ().
John Kessenich [Fri, 2 Nov 2018 16:24:48 +0000 (10:24 -0600)]
Merge pull request #1559 from jeffbolznv/glslang_pch
Use precompiled headers for some glslang projects (MSVC-only)
John Kessenich [Fri, 2 Nov 2018 16:23:22 +0000 (10:23 -0600)]
Merge pull request #1557 from nicebyte/spec-const-decorations
Add names for composite spec constants in SPIR-V
Grigory Dzhavadyan [Tue, 30 Oct 2018 05:56:44 +0000 (22:56 -0700)]
Add names for composite constants in SPIR-V
Consider the following code:
layout(constant_id=0) const int Y = 1;
layout(constant_id=1) const int Z = 2;
layout(constant_id=3) const int X = Y + Z;
Previously, it would produce SPIR-V decorations like this:
Decorate 21(Y) SpecId 1
Decorate 22 SpecId 3
Decorate 33(Z) SpecId 0
This seems inaccurate, since the spec constant `X` that is dependent on
the two others did not get a name in the SPIR-V decorations. This behavior
may potentially negatively affect shader introspection capabilities.
This change alters the behavior to always add a name, which results in the code
above producing the following decorations:
Decorate 21(Y) SpecId 1
Decorate 22(X) SpecId 3
Decorate 33(Z) SpecId 0
Jeff Bolz [Wed, 31 Oct 2018 20:38:08 +0000 (15:38 -0500)]
Use precompiled headers for some glslang projects
John Kessenich [Wed, 31 Oct 2018 18:00:36 +0000 (12:00 -0600)]
Merge pull request #1543 from alelenv/nv-raytracing-final
Add support for nv_ray_tracing final
Ashwin Lele [Mon, 22 Oct 2018 23:41:44 +0000 (16:41 -0700)]
Multiple features and misc fixes for final raytracing non experimental version.
Alejandro Piñeiro [Fri, 26 Oct 2018 10:35:54 +0000 (12:35 +0200)]
ParseHelper: assign xfb_offset for struct members too
If the out variable is a struct type, with a xfb_offset explicitly
assigned, the members need to get their xfb_offset assigned. This is
specially relevant, as we cannot use layout qualifiers on struct
members.
John Kessenich [Tue, 30 Oct 2018 23:17:11 +0000 (17:17 -0600)]
Merge pull request #1558 from Kangz/fix_build_gn
BUILD.gn: remove reference to non-existent header
Corentin Wallez [Tue, 30 Oct 2018 15:11:46 +0000 (16:11 +0100)]
BUILD.gn: remove reference to non-existent header
John Kessenich [Mon, 29 Oct 2018 22:16:46 +0000 (16:16 -0600)]
Merge pull request #1556 from Kangz/msvc
Fix MSVC warning C4065: 'default' but no 'case' labels
Corentin Wallez [Mon, 29 Oct 2018 15:24:00 +0000 (16:24 +0100)]
Fix MSVC warning C4065: 'default' but no 'case' labels
This would happen in SpvPostProcess when we don't enable AMD extensions.
John Kessenich [Fri, 26 Oct 2018 17:28:37 +0000 (11:28 -0600)]
Build: Pin googletest to a version that works with visual studio 2013.
John Kessenich [Fri, 26 Oct 2018 16:27:46 +0000 (10:27 -0600)]
Merge pull request #1542 from sheredom/fix_8bit_storagebuffer
Fix 8-bit storage nearly always using the UniformAndStorageBuffer8BitAccess capability.
John Kessenich [Fri, 26 Oct 2018 16:12:32 +0000 (10:12 -0600)]
SPV/Standalone: Support specifying arbitrary versions of SPIR-V.
John Kessenich [Fri, 26 Oct 2018 15:25:38 +0000 (09:25 -0600)]
Merge pull request #1549 from sparmarNV/fix-SPV_NV_mesh_shader
Allow GL_NV_mesh_shader in fragment shaders for perprimitiveNV
Neil Henning [Tue, 23 Oct 2018 14:02:29 +0000 (15:02 +0100)]
Fix 8-bit storage nearly always using the
UniformAndStorageBuffer8BitAccess capability.
When using the 8-bit storage extension it basically always used the
`UniformAndStorageBuffer8BitAccess` capability, even in cases where it
wasn't required. For instance if we are targeting Vulkan 1.1 (SPIR-V 1.3
or higher), and we are only using 8-bit types in an SSBO, we only need
the `StorageBuffer8BitAccess` capability.
I fixed this by enabling storage buffer use in Vulkan 1.1 / SPIR-V 1.3
or higher, and then changing the logic to match.
I also added some tests that will output different capabilities when run
on Vulkan 1.0 and 1.1, thus they are added twice to the test list (one
for each version).
Fixes #1539
Sahil Parmar [Fri, 26 Oct 2018 06:50:59 +0000 (23:50 -0700)]
Allow GL_NV_mesh_shader in fragment shaders for perprimitiveNV
- Emit relevant capability/extension for use of perprimitiveNV in fragment shader
- Remove redundant checks for mesh shader qualifiers in glslang.y
- Add profile version check for use of extension GL_NV_mesh_shader
- Add a new gtest for use of perprimitiveNV in fragment shader
John Kessenich [Thu, 25 Oct 2018 19:44:40 +0000 (13:44 -0600)]
Merge pull request #1545 from dj2/warnings
Fixup unused parameter warnings
John Kessenich [Thu, 25 Oct 2018 18:43:02 +0000 (12:43 -0600)]
PP: Fix #155: Don't give error on HLSL PP-only parsing.
Dan Sinclair [Wed, 24 Oct 2018 13:54:45 +0000 (09:54 -0400)]
Fixup unused parameter warnings
This CL removes the current parameters which are unused in order to
fixup the issued clang warnings.
John Kessenich [Mon, 22 Oct 2018 14:33:55 +0000 (08:33 -0600)]
Merge pull request #1534 from Kangz/no_static_lib
BUILD.gn: remove the static_library target.
John Kessenich [Sun, 21 Oct 2018 00:30:57 +0000 (18:30 -0600)]
Build: Fix #1490, unused variables.
John Kessenich [Sat, 20 Oct 2018 23:36:13 +0000 (17:36 -0600)]
Fix #1536: use string instead of TString for uniform-location override.
Corentin Wallez [Wed, 17 Oct 2018 10:22:28 +0000 (12:22 +0200)]
BUILD.gn: remove the static_library target.
This had no sources and depended on a source_set which is an invalid use
of GN because the source_set gets propagated to dependents of the
static_library instead.
John Kessenich [Wed, 17 Oct 2018 07:01:00 +0000 (01:01 -0600)]
Merge pull request #1533 from amdrexu/bugfix
Fix a parse issue of imageAtomicCompSwap()
Rex Xu [Wed, 17 Oct 2018 05:55:11 +0000 (13:55 +0800)]
Fix a parse issue of imageAtomicCompSwap()
The max count of arguments is 5 when image2DMS/image2DMSArray is
specified.
John Kessenich [Tue, 16 Oct 2018 18:37:01 +0000 (12:37 -0600)]
Merge pull request #1531 from jeffbolznv/workgroup_nonprivate
Fix flags.nonprivate to be true for workgroup memory, which is implicitly workgroupcoherent/nonprivate
Jeff Bolz [Tue, 16 Oct 2018 03:46:48 +0000 (22:46 -0500)]
Fix flags.nonprivate to be true for workgroup memory, which is implicitly workgroupcoherent/nonprivate
Khronos Group Webmaster [Wed, 10 Oct 2018 19:48:43 +0000 (15:48 -0400)]
Create CODE_OF_CONDUCT.md
John Kessenich [Fri, 5 Oct 2018 05:46:21 +0000 (23:46 -0600)]
Merge pull request #1523 from sparmarNV/fix-SPV_NV_mesh_shader
Allow redeclaration of builtin interface blocks in mesh shader
John Kessenich [Fri, 5 Oct 2018 05:41:24 +0000 (23:41 -0600)]
Merge pull request #1524 from chaoc/master
Fix inferred output primitive for GL_NV_geometry_shader_passthrough
Chao Chen [Fri, 5 Oct 2018 01:39:27 +0000 (18:39 -0700)]
For GL_NV_geometry_shader_passthrough extension, the Inferred output primitive for ElgTriangles should be ElgTriangleStrip.
Also removed unnecessary relax for GL_NV_geometry_shader_passthrough in link validate
John Kessenich [Fri, 5 Oct 2018 00:56:39 +0000 (18:56 -0600)]
Merge pull request #1515 from Igalia/more-location-command-line-options
Enhancement: add extra command line options that modifies aml
Sahil Parmar [Thu, 4 Oct 2018 23:39:18 +0000 (16:39 -0700)]
Allow redeclaration of builtin interface blocks in mesh shader
Apart from allowing redeclaration of gl_MeshPerVertexNV and gl_MeshPerPrimitiveNV blocks, this change also -
- Resize clip/cull perview distances based on static index use
- Error out use of both single-view and per-view builtins
- Add new gtests with redeclared blocks and edit existing test output
- Fix couple of typos
John Kessenich [Wed, 3 Oct 2018 18:25:12 +0000 (12:25 -0600)]
Merge pull request #1518 from Kangz/fix_dawn
BUILD.gn: glslang_sources need the public config too
Corentin Wallez [Wed, 3 Oct 2018 17:15:23 +0000 (13:15 -0400)]
BUILD.gn: glslang_sources need the public config too
John Kessenich [Tue, 2 Oct 2018 14:47:33 +0000 (08:47 -0600)]
Merge pull request #1517 from Kangz/mac_complete_lib
BUILD.gn: only use complete_static_lib on mac
Corentin Wallez [Tue, 2 Oct 2018 13:23:08 +0000 (09:23 -0400)]
BUILD.gn: only use complete_static_lib on mac
Neil Roberts [Tue, 20 Mar 2018 16:41:05 +0000 (17:41 +0100)]
Add an option to set the base uniform location
This will be used to generate uniform locations with --aml
Neil Roberts [Tue, 20 Mar 2018 16:30:53 +0000 (17:30 +0100)]
Add a command-line option to override uniform locations
John Kessenich [Fri, 28 Sep 2018 12:24:02 +0000 (06:24 -0600)]
Merge pull request #1507 from sparmarNV/fix-SPV_NV_mesh_shader
Add ES 320 support and additional error checks for SPV_NV_mesh_shader
Sahil Parmar [Thu, 27 Sep 2018 18:08:13 +0000 (11:08 -0700)]
Based on feedback rename checkShaderStageForNVExtensions to checkExtensionStage
Also continue error checking post requireStage() check
Sahil Parmar [Wed, 26 Sep 2018 23:12:51 +0000 (16:12 -0700)]
Call checkShaderStageForNVExtensions() from function updateExtensionBehavior()
John Kessenich [Wed, 26 Sep 2018 22:24:10 +0000 (16:24 -0600)]
Merge pull request #1510 from Kangz/complete_lib
BUILD.gn: make the static_lib complete to fix the build on OSX
Corentin Wallez [Wed, 26 Sep 2018 21:51:19 +0000 (14:51 -0700)]
BUILD.gn: make the static_lib complete to fix the build on OSX
Sahil Parmar [Wed, 26 Sep 2018 20:38:25 +0000 (13:38 -0700)]
changes based on feedback
John Kessenich [Wed, 26 Sep 2018 15:14:30 +0000 (09:14 -0600)]
Interfaces: Remove NV_EXTENSIONS from two more headers.
This also fixes some cpp files that uncover issues when building
with the flags turned off.
John Kessenich [Wed, 26 Sep 2018 14:55:20 +0000 (08:55 -0600)]
Merge pull request #1508 from jeffbolznv/remove_ifdefs_shaderlang
Remove NV_EXTENSION ifdefs from ShaderLang.h
Jeff Bolz [Wed, 26 Sep 2018 14:03:57 +0000 (09:03 -0500)]
Remove NV_EXTENSION ifdefs from ShaderLang.h
John Kessenich [Wed, 26 Sep 2018 09:00:37 +0000 (03:00 -0600)]
Interface: remove NV_EXTENSIONS from the resources header.
This allows library consumers to work without have to set
NV_EXTENSIONS.
John Kessenich [Tue, 25 Sep 2018 22:30:14 +0000 (16:30 -0600)]
Merge pull request #1506 from alelenv/master
Fix missing case label for miss stage.
John Kessenich [Tue, 25 Sep 2018 22:29:22 +0000 (16:29 -0600)]
Merge pull request #1505 from dj2/gn_build
Add BUILD.gn configuration.
Sahil Parmar [Tue, 25 Sep 2018 20:45:32 +0000 (13:45 -0700)]
Add ES 320 support and additional error checks for SPV_NV_mesh_shader
- Add ES 320 support
- Error out use of perprimitiveNV for non mesh/fragment shaders
- Error out use of mesh/task shaders w/o use of NV_mesh_shader
- Error out use of NV_mesh_shader for non task/mesh shaders
- Error out use of perviewNV for non mesh shaders
- Error out use of taskNV for non mesh/task shaders
- Add test case for mesh shader with ES 320 profile
Dan Sinclair [Tue, 25 Sep 2018 20:32:06 +0000 (16:32 -0400)]
Use unsigned int instead of uint32_t
Ashwin Lele [Tue, 25 Sep 2018 20:19:34 +0000 (13:19 -0700)]
Fix missing case label for miss stage.
Dan Sinclair [Mon, 24 Sep 2018 22:40:38 +0000 (18:40 -0400)]
Review feedback
Dan Sinclair [Mon, 24 Sep 2018 20:35:44 +0000 (16:35 -0400)]
Add BUILD.gn configuration.
This CL adds the necessary configuration to build glslang inside a
Chromium checkout. Two build warnings were fixed in the process to
make things compile.
John Kessenich [Thu, 20 Sep 2018 20:36:42 +0000 (14:36 -0600)]
SPIRV-Tools: Move to more recent (higher quality) version.
John Kessenich [Thu, 20 Sep 2018 08:04:42 +0000 (02:04 -0600)]
Bump revision.
John Kessenich [Thu, 20 Sep 2018 07:59:52 +0000 (01:59 -0600)]
Merge pull request #1500 from KhronosGroup/turing-known-good
Update known-good to tools/headers for the Nvidia Turing extensions.
John Kessenich [Thu, 20 Sep 2018 07:34:14 +0000 (01:34 -0600)]
Update known-good to tools/headers for the Nvidia Turing extensions.
John Kessenich [Wed, 19 Sep 2018 22:50:05 +0000 (16:50 -0600)]
Bump minor version.
John Kessenich [Wed, 19 Sep 2018 22:44:26 +0000 (16:44 -0600)]
Merge pull request #1499 from chaoc/nvidia_turing
Add support for multiple Nvidia extensions
Chao Chen [Wed, 19 Sep 2018 21:06:36 +0000 (14:06 -0700)]
update glslang test results for temporary validation fail