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

2751 Коммитов

Автор SHA1 Сообщение Дата
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
LoopDawg 280c75ca51 HLSL: Allow primitive id on hull shader inputs
Fixes #979
2017-12-08 12:01:16 -07:00
John Kessenich dc005fb083 HLSL: Stop flattening non-IO structs containing opaques.
This makes struct returns from functions work, but breaks
structs containing arrays, due to limitations in subsequent
transforms in spirv-opt. This is expected to be fixed soon.
2017-12-08 04:30:29 -07:00
LoopDawg b22c069f7a HLSL: add optional position.Y inversion
Adds command line options:

   --invert-y
   --iy

(synonyms) which invert position.Y on vertex shader output.  Handles these cases:

* Direct single variable return
* Member of direct returned struct
* Single variable output parameter
* Member of struct output parameter

API:

    // Enables position.Y output negation in vertex shader
    void TShader::setInvertY(bool invert);

Fixes #1173
2017-12-07 10:48:14 -07:00
John Kessenich 471bfed062 HLSL: Fix #606: make layout() override register. 2017-12-06 08:17:21 -07:00
John Kessenich cc951f8183 HLSL: Fix #1154: Support PointSize, as an attribute. 2017-12-06 07:33:36 -07:00
John Kessenich b0159f8565
Merge pull request #1151 from cgmb/update-readme
Improve build instructions
2017-12-05 04:26:04 -07:00
Cory Bloor 384b20705c Improve build instructions
- Mention that the instructions are written for Bash.
- Quote the CMAKE_INSTALL_PREFIX to handle spaces in $(pwd).
- Remove SSH clone instructions. Instructions on how to clone are for
  those unfamiliar with GitHub, so fewer options are better and SSH
  requires additional configuration to make work.
- Replace ninja with make, because more people are familiar with it and
  we probably don't need to explain how to install it. Fixes #956.
- Remove the section mentioning cygwin, as it's unclear and doesn't
  seem necessary.
- Mention minimum language version in the Dependencies section.
- Move `cd $BUILD_DIR` out of the Linux configuration section because
  it's needed on both platforms. Add a line about creating the build
  directory, too.
2017-12-05 00:28:32 -07:00
John Kessenich 6a14f78061 HLSL: Fix #1163: treat buffers as references when calling functions.
This continues to prevent writing output buffers (out from a function),
but fixes the problem where the copy-in/out was not getting done.

Making everything work will require knowing both in/out-ness and bufferness,
but these are currently mutually exclusive, because both are storage
qualifiers.
2017-12-04 02:48:10 -07:00
John Kessenich 1f89992423
Merge pull request #1171 from greg-lunarg/kg5
Update spirv-tools known-good
2017-12-01 22:16:03 -07:00
John Kessenich 531898a48c
Merge pull request #1170 from LoopDawg/matsize-warnings
HLSL: minor: add warning for mat() matrix size truncation
2017-12-01 01:27:33 -07:00
GregF 3e72d2658d Update spirv-tools known-good
This fixes spirv-tools issue 989 where if-break can be incorrectly
deleted from a loop.
2017-11-30 19:36:16 -07:00
LoopDawg 8c49f9b4e6 HLSL: minor: add warning for mat() matrix size truncation
Minor change to add a compilation warning on implicit matrix size
truncations.
2017-11-30 10:26:21 -07:00
John Kessenich 7199a6d1a9 Add initialization in case it is causing the Apple Clang release failure. 2017-11-29 16:42:42 -07:00
John Kessenich ffc31cdc5c Tests: Trigger more texture tests, and hopefully see build failure go away.
(This is motivated by wanting to retickle the tests.)
2017-11-28 23:47:08 -07:00
John Kessenich 1ce94b2d68
Merge pull request #1166 from tafuri/#1165-invalid_Store
#1165 invalid store
2017-11-28 19:41:52 -07:00
John Kessenich b2abe2f0a5
Merge pull request #1169 from LoopDawg/cbuffer-identifier
HLSL: allow keyword-identifiers as cbuffer/struct names.
2017-11-28 16:51:42 -07:00
John Kessenich c4372e43a1
Merge pull request #1167 from LoopDawg/matmul-truncate-mxm
HLSL: add implicit mat*mat truncations
2017-11-28 11:06:05 -07:00
John Kessenich 72cddd0178
Merge pull request #1168 from greg-lunarg/kg4
Update spirv-tools known-good
2017-11-28 11:04:31 -07:00
LoopDawg 7ee29ba730 HLSL: allow keyword-identifiers as cbuffer/struct names.
Issue #791 was partially fixed by PR #1161 (the mat mul implicit
truncations were its main point), but it still wouldn't compile due to
the use of ConstantBuffer as an identifier.  Apparently those fall into
the same class as "float float", where float is both a type and an
identifier.

This allows struct definitions with such keyword-identifiers,
and adds ConstantBuffer to the set.  'cbuffer int' is legal in HLSL,
and 'struct int' appears to only be rejected due to the redefinition
of the 'int' type.

Fixes #791
2017-11-28 10:17:19 -07:00
GregF 30d92db011 Update spirv-tools known-good
This includes an enhancement to propagate through nested structs.
2017-11-27 14:41:55 -07:00
LoopDawg cee29b04d6 HLSL: add implicit mat*mat truncations
Goes with PR #1161, and completes the space for mul() implicit truncations.

Note that the v*v and scalar cases are already handled by existing code.
2017-11-27 09:42:53 -07:00
Sebastian Tafuri 66b319d30b Added new test to gtests and updated test data 2017-11-27 17:13:22 +01:00
Sebastian Tafuri 59677daef7 Respect the array type in Store operation 2017-11-27 17:13:21 +01:00
John Kessenich 792a94809b
Merge pull request #1161 from LoopDawg/matmul-truncate
WIP: HLSL: matrix and vector truncations for m*v, v*m, m*m
2017-11-24 19:17:10 -07:00