Commit Graph

245 Commits

Author SHA1 Message Date
Hans-Kristian Arntzen
aeeb0e3dd0 Support textureQueryLod in HLSL. 2017-12-01 13:30:31 +01:00
Hans-Kristian Arntzen
975cf86892 Test textureProjLodOffset with compare in HLSL as well. 2017-11-29 12:48:06 +01:00
Hans-Kristian Arntzen
dbfa686990 Emit SampleCmpLevelZero for lod/grad variants of SampleCmp. 2017-11-29 12:38:13 +01:00
Hans-Kristian Arntzen
c65248fdce Support image load-store without format in HLSL. 2017-11-29 12:14:06 +01:00
Hans-Kristian Arntzen
48f3fa4adb Implement bitfield ops in HLSL. 2017-11-29 11:33:44 +01:00
Hans-Kristian Arntzen
656af7e3ed Implement unorm16/snorm16 packing in HLSL. 2017-11-27 15:03:40 +01:00
Hans-Kristian Arntzen
719ba63416 Add pack/unpack snorm8/unorm8. 2017-11-27 14:49:47 +01:00
Hans-Kristian Arntzen
6c7c680d01 Implement FP16 unpack/pack on HLSL. 2017-11-27 14:24:30 +01:00
Hans-Kristian Arntzen
c64c3de01f Add new optimized test shaders. 2017-11-23 09:59:25 +01:00
Hans-Kristian Arntzen
f929078f1e Disable --opt for in_block_assign for now.
Bug: OpLoad fails when loading an interface struct directly, followed by
OpCompositeExtract. This should be fixed, but not critical enough to
block this PR.
2017-11-23 09:59:25 +01:00
Hans-Kristian Arntzen
8e14eadb95 Disable opts for loop on MSL as well. 2017-11-23 09:59:25 +01:00
Hans-Kristian Arntzen
65cd417630 Do not hoist OpUndef variables. 2017-11-23 09:59:25 +01:00
Hans-Kristian Arntzen
3ce6b2a23b Make bitfield test noopt for now.
SPIRV-Tools trips assertion.
2017-11-23 09:59:25 +01:00
Hans-Kristian Arntzen
7238e57933 Enforce stable order for dominated phi variables. 2017-11-23 09:59:25 +01:00
Hans-Kristian Arntzen
c52776af78 Update to correct SPIRV-Tools revision. 2017-11-23 09:59:21 +01:00
Hans-Kristian Arntzen
b39e829fc2 Add reference output for --opt. 2017-11-23 09:50:11 +01:00
Hans-Kristian Arntzen
3440263d60 Update MSL tests. 2017-11-23 09:50:11 +01:00
Hans-Kristian Arntzen
7e02f7fd62 Check more places where we can potentially read phi variables. 2017-11-23 09:50:11 +01:00
Hans-Kristian Arntzen
0fd028147f Hoist all phi-local variables to entry block.
We don't have a mechanism to move temporaries to their appropriate
scope, and Phi behavior is weird enough that it will be a heroic effort
to not do this rather ugly codegen :(
2017-11-23 09:50:11 +01:00
Hans-Kristian Arntzen
bcdff2d2e1 Fixups for PR #338 review. 2017-11-22 20:51:26 +01:00
Lou Kramer
6671f52334 Add support for new extensions. 2017-11-22 19:05:38 +01:00
msiglreith
f4bde2b3ef HLSL: Support early fragment tests attribute 2017-11-21 14:51:03 +01:00
Hans-Kristian Arntzen
b629ca1c33 Fix complicated Phi case.
A continue block might have used a temporary which existed only in the
loop body.
2017-11-21 09:27:49 +01:00
Hans-Kristian Arntzen
3cacaf614d
Merge pull request #333 from KhronosGroup/fix-331
Do not allow base expressions when extracting struct members.
2017-11-20 23:29:30 +01:00
Hans-Kristian Arntzen
851e584338 Do not allow base expressions when extracting struct members. 2017-11-20 21:32:13 +01:00
Hans-Kristian Arntzen
5352615ce1 Update tests. 2017-11-20 21:10:00 +01:00
Hans-Kristian Arntzen
dd604fec9a Fix SSO for HLSL vertex shaders. 2017-11-17 13:37:28 +01:00
Bill Hollings
e83e2b2217 CompilerMSL support and tests for OpUndef. 2017-11-15 22:44:42 -05:00
Hans-Kristian Arntzen
4f88f9750f Cleanups for HLSL vertex attribute remap.
Add CLI support as well.
2017-11-13 09:46:45 +01:00
Bill Hollings
ba865733eb Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross 2017-11-05 22:49:08 -05:00
Bill Hollings
1c18078811 Enhancements to MSL compute and entry point naming.
Support Workgroup (threadgroup) variables.
Mark if SPIRConstant is used as an array length, since it cannot be specialized.
Resolve specialized array length constants.
Support passing an array to MSL function.
Support emitting GLSL array assignments in MSL via an array copy function.
Support for memory and control barriers.
Struct packing enhancements, including packing nested structs.
Enhancements to replacing illegal MSL variable and function names.
Add Compiler::get_entry_point_name_map() function to retrieve entry point renamings.
Remove CompilerGLSL::clean_func_name() as obsolete.
Fixes to types in bitcast MSL functions.
Add Variant::get_id() member function.
Add CompilerMSL::Options::msl_version option.
Add numerous MSL compute tests.
2017-11-05 21:34:42 -05:00
Hans-Kristian Arntzen
22e94913d4 Add test for row/col-major matrix read/write for HLSL. 2017-10-26 17:40:45 +02:00
Hans-Kristian Arntzen
2ba7ed1c09 Fix tests after rebase. 2017-10-24 09:56:08 +02:00
Hans-Kristian Arntzen
a95295cb23 Remap swizzle for HLSL and RWBuffer. 2017-10-24 09:55:25 +02:00
Hans-Kristian Arntzen
ae236e7056 Add GroupSync() in HLSL. 2017-10-24 09:55:25 +02:00
Hans-Kristian Arntzen
85eb972259 Add some HLSL tests for atomics and image load store. 2017-10-24 09:55:25 +02:00
James Ross-Gowan
1f16f0d260 Use 'static const' for spec constants in HLSL
If 'const' is used, the shader expects the variable to be backed by a
constant buffer. 'static const' is probably preferred for a value that
is initialized with a constant in the HLSL source code.

FXC also emits a warning for 'const' variables with initializers, since
'static const' was probably intended.
2017-10-21 19:19:32 +11:00
Hans-Kristian Arntzen
d48876ac41 Add test for stripped cbuffer members. 2017-10-10 17:40:37 +02:00
Hans-Kristian Arntzen
94ff355812 Fix some naming issues for stripped and flattened structs. 2017-10-10 17:32:26 +02:00
Hans-Kristian Arntzen
c68c72c5be Fix ARB_enhanced_layout test. 2017-10-10 16:25:47 +02:00
Hans-Kristian Arntzen
620d01c5d6 Generate decorations for row_major/column_major in HLSL. 2017-10-10 16:11:25 +02:00
Hans-Kristian Arntzen
6feff98295 Update HLSL cbuffer tests. 2017-10-10 15:37:53 +02:00
Hans-Kristian Arntzen
4d11220aa8 Add a test for enhanced layouts. 2017-10-10 11:30:29 +02:00
Hans-Kristian Arntzen
6a7b95d2d6 Validate that std140 packing can actually be used. 2017-10-10 10:12:27 +02:00
Hans-Kristian Arntzen
c9168cd981 Merge pull request #299 from KhronosGroup/fix-173
Stamp out all variants for mod().
2017-10-06 13:53:06 +02:00
Hans-Kristian Arntzen
d4727fe696 Stamp out all variants for mod(). 2017-10-06 13:21:42 +02:00
Hans-Kristian Arntzen
8538b4c9c0 Handle empty struct declarations with best effort.
This "feature" is a bit icky as we have no useful representation of it,
so never emit code which has anything to do with empty structs.
2017-10-06 13:05:14 +02:00
Hans-Kristian Arntzen
eb58f67727 Only unroll matrices for vertex input.
Bandaid, might have to revisit this later.
2017-10-05 16:31:52 +02:00
Hans-Kristian Arntzen
067f241bf8 Runtime arrays do not work yet in MSL, so don't try to test that yet. 2017-10-02 09:24:16 +02:00
Hans-Kristian Arntzen
ecaea50739 Add SPVASM test from clspv. 2017-09-29 12:20:57 +02:00