Hans-Kristian Arntzen
646e04294a
Fix some warnings when building in MoltenVK.
2019-07-23 16:39:13 +02:00
Hans-Kristian Arntzen
ebe109d91d
Deal correctly with non-forwarded packed loads.
...
Need to unpack the expression if we're not forwarding.
2019-07-23 16:25:19 +02:00
Hans-Kristian Arntzen
79f533b662
Test CompositeInsert/Extract/VectorShuffle on packed vectors.
2019-07-23 15:44:35 +02:00
Hans-Kristian Arntzen
5582145549
Add test for array of scalar struct.
2019-07-23 15:30:03 +02:00
Hans-Kristian Arntzen
5c1cb7accf
Recursively pack struct types when we find scalar packed structs.
2019-07-23 15:24:53 +02:00
Hans-Kristian Arntzen
3fa2b14634
Run format_all.sh.
2019-07-23 12:23:41 +02:00
Hans-Kristian Arntzen
ef1fa71bba
Unpack vector expression in Matrix-Vector multiplies.
2019-07-23 12:22:40 +02:00
Hans-Kristian Arntzen
0f10601f27
Test matrix multiplies in more complex scenarios.
2019-07-23 12:12:24 +02:00
Hans-Kristian Arntzen
978253c804
Test implicit packing of struct members.
2019-07-23 12:04:15 +02:00
Hans-Kristian Arntzen
46e757b278
GLSL/HLSL: Verify member alignment for explicit offset as well.
2019-07-23 11:53:33 +02:00
Hans-Kristian Arntzen
fc741596d4
Add tests for struct padding and self-alignment.
2019-07-23 11:46:34 +02:00
Hans-Kristian Arntzen
7277c7ac46
Use to_unpacked_row_major_expression to unify row-major in MSL/GLSL.
2019-07-23 11:36:54 +02:00
Hans-Kristian Arntzen
47a18b9f1b
Simplify row-major matrix/vector multiplies.
2019-07-23 10:56:57 +02:00
Hans-Kristian Arntzen
d584d833fa
Test array of std140 vectors.
2019-07-23 10:38:32 +02:00
Hans-Kristian Arntzen
6224199c76
Add struct size padding tests.
2019-07-23 10:30:37 +02:00
Hans-Kristian Arntzen
82c819ee6c
Add test for CompositeExtract from row-major loaded vector.
2019-07-22 16:32:22 +02:00
Hans-Kristian Arntzen
d7a5303cf2
Add test for split access chain into row-major matrix.
2019-07-22 16:28:05 +02:00
Hans-Kristian Arntzen
2172b19be2
Remove obsolete matrix workaround code.
2019-07-22 16:27:47 +02:00
Hans-Kristian Arntzen
609d087f8f
Only transpose unpacked expressions.
2019-07-22 16:06:09 +02:00
Hans-Kristian Arntzen
6057ffcbb1
Deal correctly with complete stores to row_major matrices.
2019-07-22 15:49:17 +02:00
Hans-Kristian Arntzen
19f5cd3e90
Declare correct matrix type when unpacking.
2019-07-22 13:25:45 +02:00
Hans-Kristian Arntzen
f2d6a77c95
Don't forget to register a write to LHS expression in certain case.
2019-07-22 13:06:30 +02:00
Hans-Kristian Arntzen
745a2f7b0e
Deal with swizzled stores to std140 matrices.
2019-07-22 13:05:23 +02:00
Hans-Kristian Arntzen
180a6b38c5
Fix some row-major column store cases.
2019-07-22 12:56:14 +02:00
Hans-Kristian Arntzen
4ab2829cf6
Fix more stray parens.
2019-07-22 12:13:07 +02:00
Hans-Kristian Arntzen
d6004bfc97
Fixup stray parent in output.
2019-07-22 12:08:56 +02:00
Hans-Kristian Arntzen
14afb968dd
Correctly unpack row-major matrices when storing to LHS.
2019-07-22 12:03:12 +02:00
Hans-Kristian Arntzen
172185016f
MSL: Add std140 and scalar matrix layouts.
2019-07-22 11:30:03 +02:00
Hans-Kristian Arntzen
6471236652
MSL: Add std430 matrix access test.
2019-07-22 11:23:06 +02:00
Hans-Kristian Arntzen
249f8e5180
MSL: Support storing to row-major column.
...
Defer transposes to actual Load or Store.
2019-07-22 11:13:44 +02:00
Hans-Kristian Arntzen
be2fccd837
Tests run clean.
2019-07-22 10:23:39 +02:00
Hans-Kristian Arntzen
6c1f97b4a9
Fix unpacking of packed but not remapped types on load.
2019-07-19 14:50:35 +02:00
Hans-Kristian Arntzen
b66a53a979
Traverse correct types when checking scalar layout.
2019-07-19 14:43:42 +02:00
Hans-Kristian Arntzen
e90d816cdd
Deal with scalar layout of entire structs.
...
Mark all candidate struct types.
2019-07-19 14:18:14 +02:00
Hans-Kristian Arntzen
12c5020854
Pass down row-major state to unpacking functions.
2019-07-19 13:03:08 +02:00
Hans-Kristian Arntzen
27b75c2c5a
Deal with all forms of matrix writes ...
2019-07-19 12:53:10 +02:00
Hans-Kristian Arntzen
f6251e4699
Can deal with std140 matrices now.
...
Refactor is coming together.
2019-07-19 11:21:02 +02:00
Hans-Kristian Arntzen
dd7ebaf9f7
Start considering how to emit physical type ID.
2019-07-19 10:06:19 +02:00
Hans-Kristian Arntzen
b09b8d3fa9
Deal more cleanly with matrices and row-major.
2019-07-19 10:06:19 +02:00
Hans-Kristian Arntzen
c160d5227f
Reintroduce struct_member_* MSL queries.
...
Need to remap to physical type + packed qualifier, and this is handy to
do in a helper function.
2019-07-19 10:06:19 +02:00
Hans-Kristian Arntzen
a86308bce1
MSL: Begin rewrite of buffer packing logic.
2019-07-19 10:06:19 +02:00
Hans-Kristian Arntzen
98d8bcd64b
Merge pull request #1087 from cdavis5e/demote-to-helper
...
Support the SPV_EXT_demote_to_helper_invocation extension.
2019-07-19 10:05:53 +02:00
Chip Davis
12a8654784
Don't forward uses of an OpIsHelperInvocationEXT op.
...
If this is computed *before* a `demote`, but used *after*, forwarding it
will produce the wrong value. This does make for uglier shaders, but
it's necessary right now to ensure correctness.
I needed to use an assembly shader to produce the test for this.
`spirv-opt` is not smart enough (or too smart?) to eliminate the
variable that would be used in GLSL to express this.
2019-07-18 17:32:35 -05:00
Chip Davis
50dce10c5d
Support the SPV_EXT_demote_to_helper_invocation extension.
...
This extension provides a new operation which causes a fragment to be
discarded without terminating the fragment shader invocation. The
invocation for the discarded fragment becomes a helper invocation, so
that derivatives will remain defined. The old `HelperInvocation` builtin
becomes undefined when this occurs, so a second new instruction queries
the current helper invocation status.
This is only fully supported for GLSL. HLSL doesn't support the
`IsHelperInvocation` operation and MSL doesn't support the
`DemoteToHelperInvocation` op.
Fixes #1052 .
2019-07-17 09:12:22 -05:00
Hans-Kristian Arntzen
fb71a337a2
Merge pull request #1086 from KhronosGroup/fix-1085
...
Test glsl.std450 more exhaustively.
2019-07-17 14:00:34 +02:00
Hans-Kristian Arntzen
c7eda1bce9
Test glsl.std450 more exhaustively.
...
Make sure to test everything with scalar as well to catch any weird edge
cases.
Not all opcodes are covered here, just the arithmetic ones. FP64 packing
is also ignored.
2019-07-17 11:53:05 +02:00
Hans-Kristian Arntzen
3319a3bfd1
Merge pull request #1084 from cdavis5e/msl-intel-integer-funcs
...
MSL: Support the SPV_INTEL_shader_integer_functions2 extension.
2019-07-17 09:48:55 +02:00
Chip Davis
bc646574a6
MSL: Support the SPV_INTEL_shader_integer_functions2 extension.
...
This provides a few functions normally available in OpenCL to the SPIR-V
shader environment. These functions happen to be available in Metal as
well.
No GLSL, unfortunately. Intel has yet to publish a
`GL_INTEL_shader_integer_functions2` spec.
2019-07-15 09:42:36 -05:00
Hans-Kristian Arntzen
33d2bbcf69
Merge branch 'msl-amd-trinary-functions' of git://github.com/cdavis5e/SPIRV-Cross
2019-07-15 09:46:31 +02:00
Hans-Kristian Arntzen
4d7aae1050
Merge branch 'device-group' of git://github.com/cdavis5e/SPIRV-Cross
2019-07-15 09:46:16 +02:00