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
Chao Chen [Wed, 19 Sep 2018 18:43:21 +0000 (11:43 -0700)]
Add-support-for-SPV_NV_shading_rate
Chao Chen [Wed, 19 Sep 2018 18:42:24 +0000 (11:42 -0700)]
Add-support-for-SPV_NVX_raytracing
Chao Chen [Wed, 19 Sep 2018 18:41:59 +0000 (11:41 -0700)]
Add-support-for-SPV_NV_mesh_shader
Chao Chen [Wed, 19 Sep 2018 18:41:27 +0000 (11:41 -0700)]
0003-Add-support-for-SPV_NV_shader_image_footprint
Chao Chen [Wed, 19 Sep 2018 18:40:45 +0000 (11:40 -0700)]
Add-support-for-SPV_NV_compute_shader_derivatives
Chao Chen [Wed, 19 Sep 2018 18:39:56 +0000 (11:39 -0700)]
Add-support-for-SPV_NV_fragment_shader_barycentric
John Kessenich [Wed, 19 Sep 2018 19:58:01 +0000 (13:58 -0600)]
Update to latest spirv.hpp header (which fixed a typo).
John Kessenich [Wed, 19 Sep 2018 09:54:48 +0000 (03:54 -0600)]
SPV: Move to latest SPIR-V header (latest NV extensions support).
John Kessenich [Tue, 18 Sep 2018 09:43:30 +0000 (03:43 -0600)]
Build: Fix some warnings.
John Kessenich [Thu, 13 Sep 2018 23:54:48 +0000 (17:54 -0600)]
Bump revision.
John Kessenich [Thu, 13 Sep 2018 17:52:35 +0000 (11:52 -0600)]
Merge pull request #1492 from NorbertGarnysAMD/shader_atomic_int64
Add GL_EXT_shader_atomic_int64
Norbert Garnys [Thu, 13 Sep 2018 13:34:26 +0000 (15:34 +0200)]
Add GL_EXT_shader_atomic_int64
John Kessenich [Wed, 12 Sep 2018 15:02:08 +0000 (09:02 -0600)]
Merge pull request #1491 from DennisOSRM/patch-1
Fix compiler warning emitted from GCC8
Dennis Luxen [Wed, 12 Sep 2018 08:34:54 +0000 (10:34 +0200)]
Fix compiler warning emitted from GCC8
the following warning gets emitted:
```
In file included from ./Vulkan/glslang/SPIRV/hex_float.h:39,
from ./Vulkan/glslang/SPIRV/SpvBuilder.cpp:49:
./Vulkan/glslang/SPIRV/bitutils.h: In instantiation of ‘Dest spvutils::BitwiseCast(Src) [with Dest = spvutils::Float16; Src = short unsigned int]’:
./Vulkan/glslang/SPIRV/hex_float.h:138:47: required from ‘T spvutils::FloatProxy<T>::getAsFloat() const [with T = spvutils::Float16]’
./Vulkan/glslang/SPIRV/hex_float.h:821:52: required from here
./Vulkan/glslang/SPIRV/bitutils.h:29:14: warning: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of non-trivially copyable type ‘class spvutils::Float16’; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
std::memcpy(&dest, &source, sizeof(dest));
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./Vulkan/glslang/SPIRV/SpvBuilder.cpp:49:
./Vulkan/glslang/SPIRV/hex_float.h:43:7: note: ‘class spvutils::Float16’ declared here
class Float16 {
^~~~~~~
In file included from ./Vulkan/glslang/SPIRV/hex_float.h:39,
from ./Vulkan/glslang/SPIRV/SpvBuilder.cpp:49:
./Vulkan/glslang/SPIRV/bitutils.h: In instantiation of ‘Dest spvutils::BitwiseCast(Src) [with Dest = spvutils::FloatProxy<spvutils::Float16>; Src = short unsigned int]’:
./Vulkan/glslang/SPIRV/hex_float.h:431:28: required from ‘void spvutils::HexFloat<T, Traits>::setFromSignUnbiasedExponentAndNormalizedSignificand(bool, spvutils::HexFloat<T, Traits>::int_type, spvutils::HexFloat<T, Traits>::uint_type, bool) [with T = spvutils::FloatProxy<spvutils::Float16>; Traits = spvutils::HexFloatTraits<spvutils::FloatProxy<spvutils::Float16> >; spvutils::HexFloat<T, Traits>::int_type = short int; spvutils::HexFloat<T, Traits>::uint_type = short unsigned int]’
./Vulkan/glslang/SPIRV/hex_float.h:633:5: required from ‘void spvutils::HexFloat<T, Traits>::castTo(other_T&, spvutils::round_direction) [with other_T = spvutils::HexFloat<spvutils::FloatProxy<spvutils::Float16>, spvutils::HexFloatTraits<spvutils::FloatProxy<spvutils::Float16> > >; T = spvutils::FloatProxy<float>; Traits = spvutils::HexFloatTraits<spvutils::FloatProxy<float> >]’
./Vulkan/glslang/SPIRV/hex_float.h:817:39: required from here
./Vulkan/glslang/SPIRV/bitutils.h:29:14: warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘class spvutils::FloatProxy<spvutils::Float16>’ from an array of ‘short unsigned int’ [-Wclass-memaccess]
std::memcpy(&dest, &source, sizeof(dest));
~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ./Vulkan/glslang/SPIRV/SpvBuilder.cpp:49:
./Vulkan/glslang/SPIRV/hex_float.h:115:7: note: ‘class spvutils::FloatProxy<spvutils::Float16>’ declared here
class FloatProxy {
^~~~~~~~~~
```
John Kessenich [Tue, 11 Sep 2018 00:14:21 +0000 (18:14 -0600)]
Bump revision.
John Kessenich [Tue, 11 Sep 2018 00:10:51 +0000 (18:10 -0600)]
SPV: Fix #1487: Only declare AMD int16/half_float extensions when needed.
John Kessenich [Mon, 10 Sep 2018 17:37:38 +0000 (11:37 -0600)]
Printing preprocessed shaders (not a supported path): Fix #1490: strings
Put quote marks around strings, due to a change in how tokenization works.
John Kessenich [Fri, 7 Sep 2018 15:07:03 +0000 (09:07 -0600)]
Bump version and revision.
John Kessenich [Fri, 7 Sep 2018 14:56:46 +0000 (08:56 -0600)]
Merge branch 'jeffbolznv-memory_scope_semantics'
Jeff Bolz [Wed, 5 Sep 2018 15:11:41 +0000 (10:11 -0500)]
GL_KHR_memory_scope_semantics
John Kessenich [Fri, 31 Aug 2018 15:14:47 +0000 (08:14 -0700)]
Merge pull request #1465 from otakuto/remove-execute-permissions
Remove execute permissions
John Kessenich [Fri, 31 Aug 2018 15:12:54 +0000 (08:12 -0700)]
Merge pull request #1485 from karl-lunarg/karl-lunarg-patch-1
tooling: Fix update sources script for Python 3
John Kessenich [Fri, 31 Aug 2018 15:09:54 +0000 (08:09 -0700)]
Merge pull request #1486 from mrtrizer/patch-1
Fixed a typo leading to compilation error.
Denis Zdorovtsov [Fri, 31 Aug 2018 14:36:15 +0000 (17:36 +0300)]
Update SpvTools.cpp
Fix build.
John Kessenich [Thu, 30 Aug 2018 23:43:22 +0000 (17:43 -0600)]
bump revision
John Kessenich [Thu, 30 Aug 2018 22:56:59 +0000 (16:56 -0600)]
SPV: Turn off the default validation done by the SPIRV-Tools optimizer.
Also use the glslang namespace qualifier consistently and validate after
legalization, not before. (But most tests don't legalize.)
John Kessenich [Thu, 30 Aug 2018 20:20:11 +0000 (13:20 -0700)]
Merge pull request #1482 from KhronosGroup/validate
SPV: Add SPIRV-Tools validator.
John Kessenich [Thu, 30 Aug 2018 18:22:33 +0000 (12:22 -0600)]
GLSL: Remove use of __ in the implementation of keywords having __.
John Kessenich [Thu, 30 Aug 2018 18:22:33 +0000 (12:22 -0600)]
GLSL: Remove use of __ in the implementation of keywords having __.
Karl Schultz [Mon, 27 Aug 2018 20:06:38 +0000 (14:06 -0600)]
tooling: Fix update sources script for Python 3
This one small change allows the update_glslang_sources.py script to operate correctly with Python 2 and Python 3.
Change the string literal type to "bytes" so that it matches the type returned by the subprocess calls. Otherwise, under Python 3, the search for "known-good" in the list of remotes always fails. This is OK for the first execution of update_glsang_sources, since the remote is not there on the first run. But on subsequent runs, the search still fails to match and the script stops when trying to create a remote that already exists.
John Kessenich [Thu, 23 Aug 2018 21:29:08 +0000 (15:29 -0600)]
SPV: Add option for controling when the SPIRV-Tools validator is used.
John Kessenich [Thu, 23 Aug 2018 21:17:10 +0000 (15:17 -0600)]
SPV: Isolate SPIRV-tools glue to its own file.
John Kessenich [Wed, 22 Aug 2018 23:17:07 +0000 (17:17 -0600)]
SPV: Add SPIRV-Tools validator. This needs the latest SPIR-Tools.
John Kessenich [Wed, 22 Aug 2018 23:12:46 +0000 (17:12 -0600)]
Non-functional: Rationalize some existing use of SPIRV-Tools.
John Kessenich [Mon, 20 Aug 2018 15:07:12 +0000 (08:07 -0700)]
Merge pull request #1480 from dneto0/stringify
Use our own SPIRV-Tools message stringifier
David Neto [Mon, 20 Aug 2018 14:36:27 +0000 (10:36 -0400)]
Use our own SPIRV-Tools message stringifier
Stop including an internal SPIRV-Tools header. It has been
deleted.
Fixes #1477
John Kessenich [Sat, 18 Aug 2018 00:00:04 +0000 (17:00 -0700)]
Merge pull request #1474 from KhronosGroup/pure-8-16-bit-capability
SPV: only declare the pure 8/16-bit capabilities when needed.
John Kessenich [Fri, 17 Aug 2018 19:46:32 +0000 (12:46 -0700)]
Merge pull request #1476 from greg-lunarg/kg24
Update SPIRV-Tools known good.
GregF [Thu, 16 Aug 2018 21:34:36 +0000 (15:34 -0600)]
Update SPIRV-Tools known good.
Includes:
Update OpPhi instructions after splitting block. (#1783)
Don't change decorations and names in merge return. (#1777)
Transform to combine consecutive access chains
Handle undef literal value in vector shuffle
Fix block ordering in dead branch elim
Fix finding constant with particular type. (#1724)
Fix infinite loop while folding OpVectorShuffle (#1722)
Fix size error when folding vector shuffle. (#1721)
Layout validation: Permit {vec3; float} tight packing
John Kessenich [Wed, 15 Aug 2018 19:54:09 +0000 (13:54 -0600)]
SPV: only declare the pure 8/16-bit capabilities when needed.
Only when operations stray outside the 8/16-bit storage-capabilities
are the general (pure 8/16-bit) capabilities needed.
John Kessenich [Tue, 14 Aug 2018 19:31:43 +0000 (13:31 -0600)]
SPV: More corrections of <id> versus "immediate" operands.
John Kessenich [Tue, 14 Aug 2018 03:37:59 +0000 (21:37 -0600)]
SPV: Correct SPIR-V operands for <id> versus immediate.