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
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
851e584338
Do not allow base expressions when extracting struct members.
2017-11-20 21:32:13 +01:00
Hans-Kristian Arntzen
ce18d4ce74
Run format_all.sh.
2017-11-17 13:38:29 +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
4427cb993d
Add support for renaming entry points.
2017-11-13 13:50:37 +01:00
Hans-Kristian Arntzen
f486142e36
Run format_all.sh.
2017-11-13 09:52:35 +01:00
Bill Hollings
bac657d873
Fixes from review of PR 321.
2017-11-07 15:38:13 -05: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
551424ce43
Support loading col/row-major matrices from ByteAddressBuffer.
2017-10-26 16:35:18 +02:00
Hans-Kristian Arntzen
ab3f114120
Use remap_swizzle for image load-store more actively.
2017-10-24 09:55:25 +02:00
Hans-Kristian Arntzen
f4f497dc85
Run format_all.sh.
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
f4d23cd779
Also check IO location for blocks.
2017-10-19 14:17:18 +02:00
Hans-Kristian Arntzen
b5938e0538
Do not emit layout(location) for fragment output pre-330.
2017-10-19 10:31:48 +02:00
Hans-Kristian Arntzen
712084b5b2
Only emit layout() on vertex inputs in version 330/300 es.
2017-10-18 09:56:13 +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
6feff98295
Update HLSL cbuffer tests.
2017-10-10 15:37:53 +02:00
Hans-Kristian Arntzen
b9814a09bc
Add more robust HLSL packing support.
2017-10-10 15:23:07 +02:00
Hans-Kristian Arntzen
f0200bb18d
Use packoffset in HLSL.
...
Rewrite how cbuffers are emitted.
2017-10-10 13:15:49 +02:00
Hans-Kristian Arntzen
a8e991dec6
Run format_all.sh.
2017-10-10 11:31:05 +02:00
Hans-Kristian Arntzen
4d11220aa8
Add a test for enhanced layouts.
2017-10-10 11:30:29 +02:00
Hans-Kristian Arntzen
5a89606f26
Add support for GL_ARB_enhanced_layouts.
2017-10-10 11:05:46 +02:00
Hans-Kristian Arntzen
1079e7930b
Run format_all.sh.
2017-10-10 10:22:40 +02:00
Hans-Kristian Arntzen
6a7b95d2d6
Validate that std140 packing can actually be used.
2017-10-10 10:12:27 +02:00
Ben Clayton
e9621827c5
Require GL_ARB_shader_image_load_store extension.
...
The early_fragment_tests layout qualifier requires either OpenGL 4.2 or use of the GL_ARB_shader_image_load_store extension.
2017-10-09 10:37:11 +01: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
aab3107a3f
Add WorkGroupID/NumWorkGroups to MSL. Fix block name alias.
2017-09-29 12:16:53 +02:00
Hans-Kristian Arntzen
6583de8de7
ConstantID can be 0 for spec constants.
2017-09-29 10:33:28 +02:00
Hans-Kristian Arntzen
153fed031d
Add basic support for StorageClassStorageBuffer.
...
Needs more testing, but seems to work.
2017-09-28 13:29:57 +02:00
Hans-Kristian Arntzen
fae64f032d
Correctly resolve constant expressions for WorkGroupSize.
2017-09-28 12:34:48 +02:00
Hans-Kristian Arntzen
0e4ed4102b
Only declare with specialization constant when in Vulkan semantics.
2017-09-28 12:24:04 +02:00
Hans-Kristian Arntzen
86eb874568
Implement specialization constants for work group sizes.
2017-09-28 11:33:30 +02:00
Hans-Kristian Arntzen
ceefae5584
Support mixed constant composites.
2017-09-27 16:10:29 +02:00
Hans-Kristian Arntzen
9175363839
Fix typo.
2017-09-25 10:16:45 +02:00
Hans-Kristian Arntzen
3339fd4e87
Fix case when Phi variable is a loop variable.
...
Need to flush variable to static expression rather than a variable.
2017-09-25 10:15:17 +02:00
Hans-Kristian Arntzen
1bc5b70752
Add exhaustive image query to HLSL.
...
Need to strip this down somehow ...
2017-09-20 10:00:13 +02:00
Hans-Kristian Arntzen
7c58f15928
Run format_all.sh.
2017-09-19 16:09:19 +02:00
Hans-Kristian Arntzen
7064c54820
Various fixes to texture/image query in GLSL.
2017-09-19 16:08:25 +02:00
Hans-Kristian Arntzen
6599a41aad
Add option to disable use of 420pack extension.
2017-09-08 09:56:06 +02:00
Hans-Kristian Arntzen
03db5c4847
Run format_all.sh.
2017-09-06 09:15:27 +02:00
David Srbecky
e596d40cad
Fix assignment optimization for logical and/or.
...
"x = x && y" was converted to "x &= y", which is invalid.
2017-09-05 16:07:41 +01:00
Hans-Kristian Arntzen
9091eadb0d
Support FrexpStruct/ModfStruct.
2017-09-04 10:27:08 +02:00
Hans-Kristian Arntzen
11dfcb6531
Add restrict qualifier for images.
2017-08-29 15:54:22 +02:00
Hans-Kristian Arntzen
d55898ec74
Fix declaration of coherent images.
2017-08-29 15:52:59 +02:00
Hans-Kristian Arntzen
713bd7c2b5
Run format_all.sh.
2017-08-28 09:01:03 +02:00