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

2462 Коммитов

Автор SHA1 Сообщение Дата
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
John Kessenich a9c8cce8e7
Merge pull request #1143 from LoopDawg/texturebuffer
WIP: HLSL: implement TextureBuffer<type>
2017-11-13 11:20:34 -07:00
John Kessenich 94f28eb61a Memory: Add loop around main, to test tear-down and reuse, and monitor memory changes. 2017-11-13 01:52:26 -07:00
John Kessenich cb42541e51 Memory: Remove the need for per-thread tear down.
Make key objects using the memory pool own their own pool and delete it,
such that there is not generic per-thread pool to manage.
2017-11-13 01:52:11 -07:00
John Kessenich ff8e59f510 Memory: Do process and 1st thread tear down.
Addresses #928, #389, and 1st item in #976. Overlaps #916.

This had been dropped, when moving away from the old Win32 DLL model.

Issue: per-thread tear down for other threads.
2017-11-12 15:55:22 -07:00
John Kessenich 4ceaab166c Memory: Move to a normal model of ownership of memory pools, for new/delete.
Addresses step 4 of #976, overlaps #916.

For each pool, now, it is newed, remembered, and freed by the same entity,
rather than having a mix (thread finalize freeing current pool) that could
lead to double freeing of the same pool. It is quite rational and simple now.

This will enable reinstalling process and thread tear down.
2017-11-12 15:46:40 -07:00
John Kessenich be20905582 Memory: Non-Functional: Rationalize and improve encapsulation of TLS usage.
This will make the next (functional) commit easier to see.
2017-11-12 15:28:58 -07:00
John Kessenich a36997cb4a
Merge pull request #1142 from greg-lunarg/kg3
Update spirv-tools known good.
2017-11-10 13:52:00 -07:00
John Kessenich 4abd6b58d4
Merge pull request #1145 from antiagainst/travis-auto-deploy
Travis: auto deploy build artifacts to GitHub Releases
2017-11-09 19:19:56 -07:00
Lei Zhang fba299a25b Travis: auto deploy build artifacts to GitHub Releases
Pushing a commit to the master branch will trigger a build on
Travis. If the build is successful, the artifacts will be
collected and pushed to GitHub Releases, under the "master-tot"
release.
2017-11-09 15:12:09 -05:00
John Kessenich a0680e6137
Merge pull request #1114 from LoopDawg/validator-script
Add script to crank test shaders through spirv-val
2017-11-09 12:10:24 -07:00
John Kessenich a50a9de356
Merge pull request #1116 from LoopDawg/reverse-shift-args
Reverse order of setShiftBindingForSet parameters
2017-11-09 12:08:28 -07:00
John Kessenich 7c2f6d8558
Merge pull request #1144 from antiagainst/appveyor-auto-deploy
Appveyor: auto deploy build artifacts to GitHub Releases
2017-11-09 12:07:42 -07:00
LoopDawg e570955cdc Reverse order of setShiftBindingForSet parameters
Per feedback on PR #1111, this reverses the order of the parameters for the setShiftBinding API.

It is now:

    void TShader::setShiftBindingForSet(TResourceType res, unsigned int base, unsigned int set);
2017-11-09 09:51:15 -07:00
LoopDawg 4ec680e15f Add script to crank test shaders through spirv-val
This script will crank a supplied set of glslang test shaders through the
spirv-val tool, reporting on the results.

There are some important things to note:

* Like 'runtests', this must be invoked from the 'Test' subdirectory.

* This is mostly useful on the hlsl.* tests, although it is not strictly
limited to those.  The reason is that most of the glsl tests either contain
validation error cases, and so fail to compile, or are not using a #version
compatible with producing SPIR-V modules.

* Some tests, such as negative tests, or most of the glsl tests, have
intentional compilation errors.  This script treats that as OK.  Failures
are successfully compiling shaders which proceed to fail spirv-val.

* spirv-val is looked for in either the External directory, or if not
found there, in a sibling directory of glslang, and if not found there
either, in /usr/local/bin.

* There are a bunch of command line options.  ./validate-shaders.sh --help
will describe them.

Some examples to try:

   ./validate-shaders.sh hlsl.*   # exercise all hlsl.* tests.
   ./validate-shaders.sh --terse hlsl.*  # same, but tersely.

   # dump validator results for problems in something.frag:
   ./validate-shaders.sh --quiet --dump-val something.frag
2017-11-09 09:40:29 -07:00
Lei Zhang a7eab9b308 Appveyor: auto deploy build artifacts to GitHub Releases
Pushing a commit to the master branch will trigger a build on
Appveyor. If the build is successful, the artifacts will be
collected and pushed to GitHub Releases, under the "master-tot"
release.
2017-11-09 09:20:46 -05:00
LoopDawg e5530b92ce HLSL: implement TextureBuffer<type>
Almost equivalent to tbuffer, except members not at global scope.
So, reference is "TextureBuffer_var.member", not simply "member".
2017-11-08 19:48:11 -07:00
GregF c77da685be Update spirv-tools known good. 2017-11-08 13:56:08 -07:00
John Kessenich 2edde6665d SPV: Don't support noise*() when generating SPV. 2017-11-03 03:39:48 -06:00
John Kessenich af52799c2d Errors: Have a whole set of tool-level error messages report to stderr. 2017-11-02 22:48:15 -06:00