Граф коммитов

2525 Коммитов

Автор SHA1 Сообщение Дата
John Kessenich ab46a2e5e9
Merge pull request #1221 from dneto0/update-spirv
Update known-good spirv-tools.
2018-01-17 02:02:35 -07:00
David Neto 0e58bbd5aa Update known-good spirv-tools.
Optimizations used in HLSL legalization now sweep away unused types.
2018-01-12 12:52:04 -05:00
John Kessenich e22e347395 HLSL: Fix #1208: accept both int and uint in asuint() and asint(). 2018-01-11 13:26:09 -07:00
John Kessenich 63400477f6 HLSL: Protect against 'continue' outside of loops. 2018-01-10 03:50:42 -07:00
John Kessenich 9b5668c8ef HLSL: Fix #1214: check for nesting in loop/switch of break statements. 2018-01-09 22:32:42 -07:00
John Kessenich 7420a761a3 HLSL: Fix #1215: propagate error on seeing a type name instead of a variable. 2018-01-09 21:35:44 -07:00
John Kessenich eb2c0c72bf GLSL: XFB: more support for built-in block redeclarations with XFB.
- correct inheritence (or not) of the right XFB buffer
- compute implicit stride (fixes #1212)
- semantic check block-member redeclarations
- inherit stride from a member
2018-01-09 18:00:33 -07:00
John Kessenich 9c6f8cc29b Scanner: Many int16 and float16 fixes, including performance.
- fixes #1209, addresses most of #1187
- only query feature availability on seeing the feature
  (was doing it for every single token)
- correct case-sensitive checks for multi-character suffixes
2018-01-08 15:59:29 -07:00
John Kessenich c043aadd25 Scanner: Many int64 fixes, including performance.
- partially addresses #1209 and #1187
- only query 64-bit extension on seeing use of a 64-bit literal
  (was doing it for every single token)
- correct HLSL acceptance of 64-bit literal syntax (still an int though)
- error on overflow of 32-bit literal type
2018-01-08 11:52:23 -07:00
John Kessenich adc33b23cc Non-functional: Fix HLSL error message, and code formatting. 2018-01-08 11:47:08 -07:00
John Kessenich 99892d5a9a
Merge pull request #1211 from greg-lunarg/kg7
Update known good spirv-tools. Fixes issue #1205.
2018-01-05 12:01:03 -07:00
GregF ead4bb190f Update known good spirv-tools. Fixes issue #1205. 2018-01-05 11:17:34 -07:00
John Kessenich 798d005ccd Build: Tickle bots to try again... seems like a process hang; all tests passed. 2018-01-02 13:07:14 -07:00
John Kessenich 132cf53737 HLSL: Fix #1203: Declare anonymous members for cbuffer with no ';'
The grammar for no semicolon and no object name for cbuffer/tbuffer
was correct, but the production still skipped the anonymous declarations
if an identifier followed.
2018-01-02 11:27:54 -07:00
John Kessenich fd1e8a78a8 HLSL: Fix 1201: Accept 'layout' as an identifier. 2017-12-29 20:59:13 -07:00
John Kessenich 046bae0bab HLSL: Attributes: Add [[vk::constant_id()]] and [[vk::push_constant]] 2017-12-23 17:29:45 -07:00
John Kessenich e08ed0ccf4
Merge pull request #1190 from jfmarquis/hlsl-store-type-propagation
HLSL: Fix possibly incorrect type conversion in Store2-3-4
2017-12-21 14:59:34 -07:00
John Kessenich 848a0ccbfd Merge branch 'greg-lunarg-flatten1' 2017-12-21 12:26:27 -07:00
John Kessenich 8a3f7a12d4 Merge branch 'flatten1' of https://github.com/greg-lunarg/glslang into greg-lunarg-flatten1 2017-12-21 12:25:52 -07:00
John Kessenich b3cff2f297 HLSL Tests: Remove optimization from tests that don't need it.
This is to create more stable test results.
2017-12-21 12:17:25 -07:00
GregF e0639287df HLSL Legalization: Add scalar replacement
This allow for propagation through structs with dynamically indexed
arrays. This supports recent removal of non-io struct flattening.
2017-12-21 11:30:13 -07:00
Jean-François Marquis 3f0aff8ee5 HLSL: Fix possibly incorrect type conversion in StoreN and LoadN
Set type to r-value resulting from indexing vector, to prevent
float->uint conversion when source is already uint. Resulting
OpConvertFToU would otherwise fail validation because source is
already uint.
For LoadN, incorrect uint->float->uint can be avoided; fixing
potential truncation of big integer values.
2017-12-21 12:11:40 -05:00
John Kessenich 3b2dc1a756
Merge pull request #1195 from LoopDawg/gcc-bug-workaround
compile error fix for g++ 5.4.0
2017-12-20 15:37:22 -07:00
LoopDawg c074f2bc24 g++ 5.4.0 suspected defect workaround
Fix compilation error under g++ 5.4.0.
2017-12-20 11:21:05 -07:00
John Kessenich 3f0d4bcd6a SPV: Document history of the generator version number. 2017-12-16 23:46:37 -07:00
John Kessenich e1ff231235 GLSL: Fix #1193: no 'location' on uniform/buffer block. 2017-12-16 10:07:22 -07:00
John Kessenich a0d60f2bea gcc: potentially a compiler-bug work around 2017-12-16 02:58:10 -07:00
John Kessenich 2505057af8 SPV: Memory model: Reduce set of memory-semantic bits requested for "all". 2017-12-16 00:34:08 -07:00
John Kessenich 838d7afc61 SPV: HLSL: Move to correct HLSL barrier semantics, per Khronos recommendation. 2017-12-16 00:34:08 -07:00
John Kessenich c72e5937dd SPV: Bump the generator number to account for barrier changes. 2017-12-16 00:34:08 -07:00
John Kessenich 8297936dd6 SPV: Change barrier emission to conform to Khronos decisions.
The memory model group agreed to these definitions for how
to map GLSL barrier, memoryBarrier, etc. With HLSL following suit.
2017-12-16 00:30:10 -07:00
John Kessenich 070aaeafcd HLSL: Fix #1192: when bool operands are converted to ints, convert result type. 2017-12-15 21:46:09 -07:00
John Kessenich 35682b5926
Merge pull request #1191 from greg-lunarg/kg6
Update spirv-tools known-good.
2017-12-15 19:25:35 -07:00
GregF 72deeb25fe Update spirv-tools known-good. 2017-12-15 11:29:43 -07:00
John Kessenich 788fbeb36f HLSL: Make attributes for built-in override semantics.
Fixes #1188.
2017-12-15 08:15:26 -07:00
John Kessenich a67d0706da
Merge pull request #1189 from KhronosGroup/spv-xfb
SPV: Implement XFB
2017-12-15 07:19:05 -07:00
John Kessenich edaf556778 SPV: Plumb through XFB buffer and stride information.
Also, only emit this XFB information where the SPIR-V spec says
it should be emitted: essentially, on objects.

This and the previous commit together fix #1185.
2017-12-15 06:25:14 -07:00
John Kessenich be3842f6ae GLSL: Implement XFB for redeclared built-in blocks. 2017-12-15 04:43:59 -07:00
John Kessenich 04f4566f28
Merge pull request #1184 from KhronosGroup/SPV_EXT_fragment_fully_covered
Add implementation of SPV_EXT_fragment_fully_covered
2017-12-14 21:29:46 -07:00
Piers Daniell 1c5443c693 Add implementation of SPV_EXT_fragment_fully_covered
This implementation uses the GLSL extension
GL_NV_conservative_raster_underestimation to generate the new SPIR-V
FullyCoveredEXT built in.
2017-12-14 07:42:23 -07:00
John Kessenich e9e0cb60ec Update to latest public headers. 2017-12-14 03:00:44 -07:00
John Kessenich 396de16cfb
Merge pull request #1183 from LoopDawg/builtin-output-array-indirect
HLSL: for split output structs, propagate indirection to builtins.
2017-12-14 01:39:25 -07:00
John Kessenich 69feabc913
Merge pull request #1186 from zeux/master
HLSL: Implement support for RT/Viewport output from VS
2017-12-14 00:39:41 -07:00
Arseny Kapoulkine c92860e288 HLSL: Implement support for RT/Viewport output from VS
In DX10/DX11 you can only output RT/Viewport indices from GS; however,
DX11.4/DX12 add support for outputting these from VS as well.

This is supported by Vulkan if the relevant extension is available, and
by MSL and by MSL (which you can cross-compile to via SPIRV-Cross).
2017-12-13 16:08:20 -08:00
LoopDawg 0cff51004d HLSL: for split output structs, propagate indirection to builtin.
Some stage (e.g, hull shaders) have arrayed builtin outputs (e.g, position).
When copying from the internal structure to the split form, it is necessary
to propagate that indirection to the actual arrayed outputs.  This was not
happening.

Addresses #1181
2017-12-12 16:22:48 -07:00
John Kessenich e078059d06
Merge pull request #1174 from LoopDawg/y-flip
HLSL: add optional position.Y inversion
2017-12-12 09:16:01 -07:00
John Kessenich 8116cfc9bf HLSL: Give error on unsupported buffer initializer. 2017-12-09 04:42:42 -07:00
John Kessenich 87982be1a0 HLSL: Remove unintended/untested functionality PrimitiveID.
This was listed as outputs for tessellation stages, but they
are input only.
2017-12-08 19:41:05 -07:00
John Kessenich 67fca7c4ce
Merge pull request #1178 from LoopDawg/primitiveid-hs-input
HLSL: Allow primitive id on hull shader input
2017-12-08 19:35:17 -07:00
John Kessenich 1cfc0f9e8b
Merge pull request #1175 from KhronosGroup/no-flatten-local-opaque
HLSL: Stop flattening non-IO structs containing opaques.
2017-12-08 18:46:34 -07:00