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

2481 Коммитов

Автор SHA1 Сообщение Дата
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
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
LoopDawg 2e62910633 HLSL: matrix and vector truncations for m*v, v*m, m*m
HLSL truncates the vector, or one of the two matrix dimensions if there is a
dimensional mismatch in m*v, v*m, or m*m.

This PR adds that ability.  Conversion constructors are added as required.
2017-11-22 12:01:45 -07:00
John Kessenich 698bf7547a Memory: Mak full explicit destructor functionality, techincally correctly.
Completes a TODO from previous commit.
2017-11-21 14:32:39 -07:00
John Kessenich 1cf2b35529 Memory: Fix #705: don't use pool object after invoking destructor. 2017-11-21 00:12:31 -07:00
John Kessenich fd1d07daf1 Memory: Put pragma tables in the pool.
Fixes #916 (the last change covered by the PR).
3rd list item in #976.
2017-11-20 17:41:39 -07:00
John Kessenich cbdf871d7f SPV: SampleMask does not depend on SampleRateShading.
Fixes #1158.
Fixes #1159.
2017-11-20 16:32:49 -07:00
John Kessenich e2c15b4f6e Memory: Reference count number of clients, to support multiple independent clients in same process.
Addresses 2nd item in #976.
2017-11-16 23:02:14 -07:00
John Kessenich b63f4a3808 Usage: clarify meaning of -s; fixes #1135. 2017-11-16 22:32:20 -07:00
John Kessenich cb421ef991 Test: Add more legalization tests; those effected by flattening. 2017-11-16 15:02:06 -07:00
John Kessenich ca4ef9f43b
Merge pull request #1156 from LoopDawg/snorm-uav
HLSL: Accept unorm and snorm on types
2017-11-15 15:30:59 -07:00
John Kessenich 6e49c76ed9
Merge pull request #1157 from LoopDawg/gs-hs-mix
HLSL: ignore geometry attributes on non-GS stages.
2017-11-15 15:30:18 -07:00
LoopDawg 7573a2ab7f HLSL: ignore geometry attributes on non-GS stages.
If a shader includes a mixture of several stages, such as HS and GS,
the non-stage output geometry should be ignored, lest it conflict
with the stage output.
2017-11-15 11:33:25 -07:00
John Kessenich 4036ef154f
Merge pull request #1147 from KhronosGroup/memory1
Memory fixes, round 1
2017-11-14 21:26:42 -07:00
John Kessenich ab9c6a8aeb
Merge pull request #1155 from antiagainst/skip-tags
Appveyor: avoid double testing on master commits
2017-11-14 15:43:24 -07:00
John Kessenich 5da8ead703 Memory: Remove redundant pool popAll(), which is potentially confusing. 2017-11-14 15:19:41 -07:00
LoopDawg fa39cffd6a HLSL: Accept unorm and snorm on types
This is currently parsed and ignored, save for some minor validation.
2017-11-14 14:55:40 -07:00
Lei Zhang 9a65c6a98e Appveyor: avoid double testing on master commits 2017-11-14 14:36:22 -05:00
LoopDawg fc3e86472a Implement OS_DumpMemoryCounters for Linux 2017-11-13 22:22:42 -07:00
John Kessenich 74bde98778 Memory: Restore unused interfaces, in case other tools called them. 2017-11-13 22:19:21 -07:00
John Kessenich c9e6740503
Merge pull request #1150 from antiagainst/readme-release
Update README about the automatic master-tot relase
2017-11-13 21:43:45 -07:00
Lei Zhang 30c60bdfa0 Update README about the automatic master-tot relase 2017-11-13 15:28:52 -05:00