John Kessenich [Wed, 9 Jan 2019 13:01:21 +0000 (06:01 -0700)]
Merge pull request #1646 from dneto0/parens-warning
Parenthesize to avoid GCC warning
David Neto [Tue, 8 Jan 2019 23:57:03 +0000 (18:57 -0500)]
Parenthesize to avoid GCC warning
John Kessenich [Tue, 8 Jan 2019 02:39:32 +0000 (09:39 +0700)]
Merge pull request #1645 from KhronosGroup/dupe-accelstruct
Don't output duplicate OpTypeAccelerationStructureNV declarations
John Kessenich [Tue, 8 Jan 2019 01:25:35 +0000 (08:25 +0700)]
Merge pull request #1644 from jeffbolznv/buffer_reference
GL_EXT_buffer_reference
Piers Daniell [Mon, 7 Jan 2019 21:17:44 +0000 (14:17 -0700)]
Don't output duplicate TypeAccelerationStructureNV declarations
Jeff Bolz [Sun, 6 Jan 2019 23:58:04 +0000 (17:58 -0600)]
GL_EXT_buffer_reference
John Kessenich [Mon, 7 Jan 2019 16:48:11 +0000 (23:48 +0700)]
SPV: Move to the latest header.
dan sinclair [Mon, 7 Jan 2019 16:47:37 +0000 (11:47 -0500)]
Make sure source strings are terminated (#1641)
* Make sure source strings are terminated
The source strings may or may not have a null terminator. We need to
make sure we add one before outputting the source strings as we iterate
over the c-str looking for the null terminator.
* Review feedback
John Kessenich [Fri, 4 Jan 2019 00:11:46 +0000 (07:11 +0700)]
Merge pull request #1643 from dneto0/update-issue-1642
Mark spv.int16.amd.frag.out as failing validation
David Neto [Thu, 3 Jan 2019 19:29:44 +0000 (14:29 -0500)]
Mark spv.int16.amd.frag.out as failing validation
See #1642
Also updates SPIRV-Tools and SPIRV-Headers known_good.
John Kessenich [Sun, 30 Dec 2018 00:44:50 +0000 (17:44 -0700)]
Merge pull request #1634 from greg-lunarg/lines10
Create separate OpSource for each included file when compiling -g
Greg Fischer [Thu, 6 Dec 2018 18:13:15 +0000 (11:13 -0700)]
Create separate OpSource for each included file
John Kessenich [Tue, 18 Dec 2018 17:38:32 +0000 (10:38 -0700)]
Merge pull request #1627 from greg-lunarg/lines8
Add passes to spirv-opt passes to preserve source line info when compiling -g.
John Kessenich [Tue, 18 Dec 2018 17:33:39 +0000 (10:33 -0700)]
Merge pull request #1633 from akien-mga/cmake-2.8-pthread
CMake: Fix linking pthread of CMake < 3.1
Rémi Verschelde [Tue, 18 Dec 2018 10:43:09 +0000 (11:43 +0100)]
CMake: Fix linking pthread of CMake < 3.1
As reported in #1624, Ubuntu 14.04 LTS still uses CMake 2.8.12 which
does not support the Threads::Threads target (added in CMake 3.1).
This could be reverted once the required CMake version is bumped to 3.1+.
John Kessenich [Tue, 18 Dec 2018 00:49:05 +0000 (17:49 -0700)]
Merge pull request #1632 from alan-baker/mem-model-1610
Move memory model scope tests to Vulkan 1.1 batch
Alan Baker [Mon, 17 Dec 2018 22:07:55 +0000 (17:07 -0500)]
Move memory model scope tests to Vulkan 1.1 batch
Fixes #1610
* Updated expected result due to version change
John Kessenich [Mon, 17 Dec 2018 21:00:43 +0000 (14:00 -0700)]
Build: Make calling argument types match declared parameter types.
Fixes #1630 and fixes #1631.
Greg Fischer [Wed, 28 Nov 2018 18:10:27 +0000 (11:10 -0700)]
Add passes to legalization to preserve source line info when generated.
John Kessenich [Sat, 15 Dec 2018 03:30:39 +0000 (20:30 -0700)]
Merge pull request #1628 from jeffbolznv/storagebuffer_sbt
Fix bug where shaderRecordNV buffers were using StorageBuffer storage class
Jeff Bolz [Sat, 15 Dec 2018 02:59:53 +0000 (20:59 -0600)]
Fix bug where shaderRecordNV buffers were using StorageBuffer storage class
John Kessenich [Fri, 14 Dec 2018 17:47:35 +0000 (10:47 -0700)]
Licensing. Fixes #958. Add licenes file and update copyrights.
John Kessenich [Fri, 14 Dec 2018 01:43:02 +0000 (18:43 -0700)]
Build: Reduce warnings.
John Kessenich [Thu, 13 Dec 2018 19:06:12 +0000 (12:06 -0700)]
GLSL/SPV: XFB: No streams on types, but support them on built-in blocks.
From internal Khronos discussions, work, and testing.
John Kessenich [Thu, 13 Dec 2018 01:18:25 +0000 (18:18 -0700)]
Merge pull request #1625 from jeffbolznv/update_spirv_tools
Update to newest SPIRV-Tools, emit default Binding decoration.
Jeff Bolz [Wed, 12 Dec 2018 02:53:59 +0000 (20:53 -0600)]
Update to newest SPIRV-Tools. It checks the Vulkan rule that all resources must have a set and binding decoration, which many tests fail. So add code to set a default value of zero. Also disable PCH for Ninja builds.
John Kessenich [Mon, 10 Dec 2018 23:47:05 +0000 (16:47 -0700)]
Infrastructure: Fix .gitattributes typo eof -> eol. Also update README
Add to README: git config --global core.fileMode false
John Kessenich [Mon, 10 Dec 2018 22:37:21 +0000 (15:37 -0700)]
Merge pull request #1620 from akien-mga/unix-executable-bit
Remove Unix executable permission from text files
John Kessenich [Mon, 10 Dec 2018 15:46:53 +0000 (08:46 -0700)]
Merge pull request #1624 from akien-mga/osdependent-link-threads
CMake: Link OSDependent with Threads::Threads
Rémi Verschelde [Mon, 10 Dec 2018 13:26:54 +0000 (14:26 +0100)]
CMake: Link OSDependent with Threads::Threads
Would typically be pthreads.
Without this, '-Wl,--no-undefined' would output these errors:
/usr/bin/ld: OSDependent/Unix/libOSDependent.a(ossource.cpp.o): in function `glslang::OS_CleanupThreadData()':
/home/akien/Mageia/Sandbox/_rpm/BUILD/glslang-7.10.2984/glslang/OSDependent/Unix/ossource.cpp:83: undefined reference to `__pthread_register_cancel'
/usr/bin/ld: /home/akien/Mageia/Sandbox/_rpm/BUILD/glslang-7.10.2984/glslang/OSDependent/Unix/ossource.cpp:93: undefined reference to `__pthread_unregister_cancel'
/usr/bin/ld: OSDependent/Unix/libOSDependent.a(ossource.cpp.o): in function `glslang::OS_AllocTLSIndex()':
/home/akien/Mageia/Sandbox/_rpm/BUILD/glslang-7.10.2984/glslang/OSDependent/Unix/ossource.cpp:122: undefined reference to `pthread_key_create'
/usr/bin/ld: OSDependent/Unix/libOSDependent.a(ossource.cpp.o): in function `glslang::OS_SetTLSValue(void*, void*)':
/home/akien/Mageia/Sandbox/_rpm/BUILD/glslang-7.10.2984/glslang/OSDependent/Unix/ossource.cpp:137: undefined reference to `pthread_setspecific'
/usr/bin/ld: OSDependent/Unix/libOSDependent.a(ossource.cpp.o): in function `glslang::OS_FreeTLSIndex(void*)':
/home/akien/Mageia/Sandbox/_rpm/BUILD/glslang-7.10.2984/glslang/OSDependent/Unix/ossource.cpp:162: undefined reference to `pthread_key_delete'
/usr/bin/ld: OSDependent/Unix/libOSDependent.a(ossource.cpp.o): in function `glslang::InitGlobalLock()':
/home/akien/Mageia/Sandbox/_rpm/BUILD/glslang-7.10.2984/glslang/OSDependent/Unix/ossource.cpp:175: undefined reference to `pthread_mutexattr_init'
/usr/bin/ld: /home/akien/Mageia/Sandbox/_rpm/BUILD/glslang-7.10.2984/glslang/OSDependent/Unix/ossource.cpp:176: undefined reference to `pthread_mutexattr_settype'
/usr/bin/ld: OSDependent/Unix/libOSDependent.a(ossource.cpp.o): in function `glslang::OS_GetTLSValue(void*)':
/home/akien/Mageia/Sandbox/_rpm/BUILD/glslang-7.10.2984/glslang/OSDependent/Unix/ossource.cpp:149: undefined reference to `pthread_getspecific'
Rémi Verschelde [Mon, 10 Dec 2018 09:48:55 +0000 (10:48 +0100)]
Remove Unix executable permission from text files
John Kessenich [Sat, 8 Dec 2018 01:40:14 +0000 (18:40 -0700)]
Merge branch 'ClemensRognerSD-dx9-sampler'
John Kessenich [Sat, 8 Dec 2018 01:38:26 +0000 (18:38 -0700)]
Manually merge ClemensRognerSD-dx9-sampler and resolve conflicts.
greg-lunarg [Sat, 8 Dec 2018 00:36:33 +0000 (17:36 -0700)]
SPV: Fix #1575, fix #1593: Support HLSL #line
SPIR-V OpLines now contain filenames from HLSL-style #lines.
John Kessenich [Fri, 7 Dec 2018 21:10:06 +0000 (14:10 -0700)]
Merge pull request #1614 from alan-baker/test-updates
Update test infrastructure
Alan Baker [Tue, 4 Dec 2018 15:43:23 +0000 (10:43 -0500)]
Modify testing to only record validation pass/fail
* Changed unit tests to only record known the validation pass/fail
status
* errors are output as part of the failure message if the result is
unexpected
* can turn off validation for each test individually
* Moved some SPV_KHR_vulkan_memory_model tests to be compiled for Vulkan
1.1
John Kessenich [Tue, 4 Dec 2018 06:21:15 +0000 (23:21 -0700)]
Merge pull request #1613 from alegal-arm/types
Rename GL_KHX_shader_explicit_arithmetic_types to GL_EXT_shader_expli…
Alexander Galazin [Mon, 3 Dec 2018 12:16:59 +0000 (13:16 +0100)]
Rename GL_KHX_shader_explicit_arithmetic_types to GL_EXT_shader_explicit_arithmetic_types
John Kessenich [Thu, 29 Nov 2018 17:43:25 +0000 (10:43 -0700)]
Merge pull request #1602 from Igalia/apinheiro/prevent-xfbstride-twice
GlslangToSpv: prevent add XfbStride twice
Alejandro Piñeiro [Thu, 25 Oct 2018 10:49:33 +0000 (12:49 +0200)]
GlslangToSpv: prevent add XfbStride twice
Without this commit, if the XfbStride was explicitly set, the
decoration was added twice on the shader.
v2 (changes after Jonh Kessenich first review)
* Simplified by just removing the firs assignment
* Removed assert
John Kessenich [Thu, 29 Nov 2018 09:32:46 +0000 (02:32 -0700)]
Merge pull request #1603 from KhronosGroup/uint-array-length
SPV: Generate OpArrayLength with no signedness.
John Kessenich [Thu, 29 Nov 2018 07:37:16 +0000 (00:37 -0700)]
Bump version.
John Kessenich [Wed, 28 Nov 2018 14:01:37 +0000 (07:01 -0700)]
SPV: For GLSL only, bitcast OpArrayLength result back to int.
This makes the rest of the AST consuming the result match GLSL
semantics and hence get complete type matching.
John Kessenich [Wed, 28 Nov 2018 02:42:19 +0000 (19:42 -0700)]
Merge pull request #1606 from dj2/ndk_build
Add NDK build files
John Kessenich [Tue, 27 Nov 2018 16:19:10 +0000 (09:19 -0700)]
SPV: Generate OpArrayLength with no signedness.
dan sinclair [Mon, 26 Nov 2018 21:27:55 +0000 (16:27 -0500)]
Add NDK build files
John Kessenich [Tue, 27 Nov 2018 14:45:52 +0000 (07:45 -0700)]
Build: Fix build warnings introduced by 2173c6.
Also bump version for recent changes.
John Kessenich [Tue, 27 Nov 2018 14:17:10 +0000 (07:17 -0700)]
Merge pull request #1567 from Igalia/apinheiro/xfb-1535
ParseHelper: assign global XfbBuffer to a block missing it
John Kessenich [Tue, 27 Nov 2018 13:41:36 +0000 (06:41 -0700)]
Merge pull request #1595 from dgkoch/EXT_fragment_invocation_density
Implement GL_EXT_fragment_invocation_density
John Kessenich [Tue, 27 Nov 2018 10:53:28 +0000 (03:53 -0700)]
Merge pull request #1597 from sheredom/add_conversion_folding
Add conversion folding when the source is a constant.
John Kessenich [Mon, 26 Nov 2018 17:53:24 +0000 (10:53 -0700)]
Merge pull request #1598 from alan-baker/geo-xfb-caps
Update known good SPIRV tools and headers
Alan Baker [Mon, 26 Nov 2018 16:24:22 +0000 (11:24 -0500)]
Update known good SPIRV tools and headers
* Fixes use of optimizer
* Updated test outputs
* GeometryStreams and TransformFeedback no longer fail validation
Daniel Koch [Mon, 26 Nov 2018 15:01:58 +0000 (10:01 -0500)]
Implement GL_EXT_fragment_invocation_density
including SPV generation using SPV_EXT_fragment_invocation_density.
This is an alias of the functionality in SPV_NV_shading_rate, and thus in some
cases we can only have one set of the tokens present (switch statements), so
we have picked the EXT version. This required updating the expected test
results for SPV_NV_shading_rate.
Also updated the known-good for spirv-headers so that the validator in
spirv-tools knows about the new extension.
John Kessenich [Mon, 26 Nov 2018 13:34:38 +0000 (06:34 -0700)]
SPV: non-functional: update to latest headers.
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
Alejandro Piñeiro [Tue, 23 Oct 2018 12:54:26 +0000 (14:54 +0200)]
ParseHelper: assign global XfbBuffer to a block missing it
If a block has assigned a XfbOffset it is assumed that it would
inherit the current global XfbBuffer. This commit fixes two use cases:
1) Getting the members of a Block with a XfbOffset to be assigned an
offset, as explained on GLSL 4.60 spec, section "4.4.2 Output
Layout Qualifiers", subsection "Transform Feedback Layout
Qualifiers".
2) Compute properly an error on overlapping ranges if a block is
assigned a XfbOffset and one of it members is assigned a explicit
one. This gets working because when the members of a block get
assigned a Offset/Buffer at fixBlockXfbOffsets, then the block is
deassigned the Offsets, so ranges are computed only with the block
members.
BTW, this is already done when redeclaring block builtins.
Fixes #1535
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