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
Bill Hollings
e83e2b2217
CompilerMSL support and tests for OpUndef.
2017-11-15 22:44:42 -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
ab3f114120
Use remap_swizzle for image load-store more actively.
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
6feff98295
Update HLSL cbuffer tests.
2017-10-10 15:37:53 +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
6a7b95d2d6
Validate that std140 packing can actually be used.
2017-10-10 10:12:27 +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
713bd7c2b5
Run format_all.sh.
2017-08-28 09:01:03 +02:00
Hans-Kristian Arntzen
3cbdbec712
Begin implementing ByteAddressBuffer flattening for HLSL.
2017-08-15 09:15:23 +02:00
Hans-Kristian Arntzen
bdfa97a1cf
Unify vertex clip-coord fixups.
...
The different options were scattered around in different backends and
didn't really work right with CLI at all.
2017-08-03 13:02:59 +02:00
Hans-Kristian Arntzen
2abdc135c3
Declare undefined values up front.
...
They might potentially be used as part of OpStore in the SPIRV-Tools
inliner in some cases.
Implement these as declared variables but without any initializer.
2017-08-02 10:33:03 +02:00
Hans-Kristian Arntzen
c8d60914c4
Add support for SampleId/SampleMask/SamplePosition builtins.
2017-07-24 10:07:31 +02:00
Hans-Kristian Arntzen
978901f9e4
Avoid ugly workaround for separate shadow samplers in GLSL/HLSL.
2017-06-17 10:54:59 +02:00
Bill Hollings
ba245697f1
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
2017-06-01 10:20:00 -04:00
Hans-Kristian Arntzen
470ae7a7f6
Add multidimensional array flattening test.
2017-05-31 10:00:52 +02:00
Hans-Kristian Arntzen
f0044b91a3
Add support for flattening multidimensional arrays.
2017-05-31 09:59:00 +02:00
Bill Hollings
b41e1482c8
Support emitting SPIR-V type declarations tuned for specified SPIR-V objects.
...
CompilerGLSL type_to_glsl() and image_type_glsl() functions support optional object ID.
Add SPIRType::Image::access member to support SPIR-V OpTypeImage access qualifier.
Remove SPIRType::Image::is_read and ::is_written members.
Use DecorationNonReadable and DecorationNonWritable to mark read/write access for image variables.
CompilerMSL emit access qualifiers per image variable, instead of per image type.
CompilerGLSL and CompilerHLSL behaviour is unchanged.
2017-05-29 20:45:05 -04:00
Hans-Kristian Arntzen
36650c890c
Add separate shader object support.
...
Allow redeclaring gl_PerVertex for stage compatibility.
2017-05-22 15:53:21 +02:00
Hans-Kristian Arntzen
f081fe1125
Fix separate sampler images in MSL.
2017-05-07 12:36:14 +02:00
Hans-Kristian Arntzen
851acf3712
Avoid boolean mix in HLSL.
...
Update glslang travis checkout as boolean mix support was broken on that commit.
2017-05-04 10:28:30 +02:00
Hans-Kristian Arntzen
9bad477f16
Add vector-less IR construction to subclasses as well.
2017-04-01 16:08:19 +02:00
Hans-Kristian Arntzen
f4749df09a
Merge pull request #151 from Kode/fix
...
Transform more functions for HLSL
2017-03-24 16:13:34 +01:00
Robert Konrad
f3a82778f9
Fix OpLogicalNot in HLSL
2017-03-24 15:00:48 +01:00
Robert Konrad
a7e2a69a6f
Add bit casting to HLSL
2017-03-24 14:13:59 +01:00
Hans-Kristian Arntzen
840a72d47a
Workaround empty struct declaration and empty IO variables.
2017-03-24 10:03:11 +01:00
Robert Konrad
ec39647d92
Check for legal lod id
...
And avoid passing superfluous has_lod parameter.
2017-03-24 09:26:02 +01:00
Robert Konrad
9760f1544c
Throw when an lod value is used but not supported
...
Plus requested changes.
2017-03-23 14:43:54 +01:00
Robert Konrad
edfc297179
Put check for lod legality in its own function
...
Also add requested code style changes.
2017-03-23 13:25:24 +01:00
Robert Konrad
3f74503aca
Prefer plain texture2D in legacy es vertex shaders
...
WebGL supports lod texture funcs only in fragment
shaders but SPIR-V supports only lod texture funcs
in vertex shaders. This reverts calls which were
forced (infered from using a 0 constant) to use
an lod to plain calls in vertex shaders when
using legacy es.
2017-03-23 10:11:45 +01:00
Hans-Kristian Arntzen
b8bda45802
Add test case for interpolation qualifiers in HLSL.
2017-03-21 13:48:50 +01:00
Hans-Kristian Arntzen
439fa9f4a2
Handle I/O blocks separately from regular inputs and outputs.
2017-03-21 13:48:50 +01:00
Hans-Kristian Arntzen
75391f9a68
Handle vector variants of OpLogicalAnd/Or/Not.
2017-03-20 22:45:40 +01:00
Bill Hollings
dc69427402
Updates to MSL functionality to support PR review feedback.
2017-03-11 12:17:22 -05:00
Bill Hollings
826de0e777
Merge with upstream and resolve conflicts.
2017-03-06 12:15:42 -05:00
Hans-Kristian Arntzen
c5de1cfa90
Add support for flattening I/O blocks.
...
Fix issue where layout() qualifiers are emitted for members in legacy
targets.
2017-03-06 14:01:51 +01:00
Bill Hollings
b332bae3c3
spirv_msl unpack packed MSL uniform struct members.
...
spirv_glsl add member_is_packed_type() and unpack_expression_type() functions.
2017-03-01 13:07:40 -05:00
Bill Hollings
484931d8b2
spirv_msl auto-alignment of members of MSL uniform structs.
...
spirv_msl optionally add padding and packing to allow MSL
struct members to align with SPIR-V struct alignments.
spirv_cross add convenience methods for testing Decorations.
spirv_glsl replace member_decl() function with new emit_stuct_member().
Allow struct member types to be marked as packed via DecorationCPacked decoration.
2017-02-28 21:44:36 -05:00
Hans-Kristian Arntzen
bcf2303ba0
Do not emit storage qualifiers for local variables.
...
Metal backend uses local variables to implement global variables.
Do not emit storage qualifiers for any variable which is declared inside
a function.
2017-02-24 11:15:34 +01:00
Hans-Kristian Arntzen
036b9b73f5
Emit storage qualifier in the correct place.
...
Need to emit qualifiers in a specific order for legacy GLSL.
<interpolation> <storage> <precision> <type>.
2017-02-24 09:56:17 +01:00
Hans-Kristian Arntzen
fc80cd8cbf
Add support for loading flattened structs.
2017-02-23 19:31:56 +01:00
Hans-Kristian Arntzen
97350d32fd
Fix cases for flattened struct write.
...
Handle writing the entire struct as well as writing the elements
individually.
2017-02-23 19:05:11 +01:00
Hans-Kristian Arntzen
3c58bbbcbe
Flatten varying structs outputs in legacy targets.
2017-02-22 20:17:58 +01:00
Hans-Kristian Arntzen
18c37bcdab
Update license headers for 2017.
2017-01-28 09:00:40 +01:00