Hans-Kristian Arntzen
513ba86fc8
Merge pull request #373 from billhollings/master
...
CompilerMSL enhancements PLUS refactoring of MSL tests to avoid optimization crashes
2018-01-08 09:04:03 +01:00
Bill Hollings
5ee6b46087
Fixes from review of PR #373 .
...
Code fixes from review.
Refactor MSL tests back to using the SPIRV-Tools
and glslang loaded by checkout_glslang_spirv_tools.sh.
2018-01-05 23:22:36 -05:00
Bill Hollings
d8d2da9d8d
CompilerMSL allow swizzle of packed_float3 vectors by unpacking to float3.
...
Pass packed indicator back through OpAccessChain and OpLoad.
Unpack packed vector before applying swizzle.
Add packed swizzle test.
2018-01-05 17:46:56 -05:00
Bill Hollings
8890578d2a
CompilerMSL support conversion of non-square row-major matrices.
2018-01-04 16:33:45 -05:00
Hans-Kristian Arntzen
9bdfd7025e
Fix tessellation control shaders from HLSL.
...
Need to take into account that gl_Position[i] needs to be rewritten as
gl_out[i].gl_Position instead.
2018-01-04 16:22:44 +01:00
Hans-Kristian Arntzen
8412b10550
Merge pull request #380 from KhronosGroup/fix-368
...
Add support for gl_ViewportIndex.
2018-01-04 14:09:36 +01:00
Hans-Kristian Arntzen
4590c63b40
Fix swizzling of integers.
...
Add scalar swizzling to constant composites as well.
2018-01-04 13:16:56 +01:00
Hans-Kristian Arntzen
f825bd90ef
Support ViewportIndex builtin.
2018-01-04 12:41:25 +01:00
Bill Hollings
1845f31397
Add option to control use of temp vars for OpVectorShuffle.
2017-12-31 18:55:04 -05:00
Hans-Kristian Arntzen
ffad50b3c2
Remove duplicate swizzles in remap_swizzle.
...
Makes HLSL image-load-store look much nicer.
2017-12-12 13:01:10 +01:00
Hans-Kristian Arntzen
1c7980a778
Swizzle scalars when splatting in HLSL.
2017-12-12 12:52:45 +01:00
Hans-Kristian Arntzen
950732512e
Fix compatibility with FXC.
2017-12-12 12:35:22 +01:00
Hans-Kristian Arntzen
2e68675ef7
Support mediump in desktop Vulkan GLSL.
2017-12-06 10:25:58 +01:00
Hans-Kristian Arntzen
b737d2bc07
Lift variable accesses in continue blocks out to loop header.
2017-12-05 17:40:23 +01:00
Hans-Kristian Arntzen
4a9d3cebd0
Merge pull request #355 from KhronosGroup/fix-345
...
Improve handling of block name declaration in GLSL.
2017-12-02 13:01:32 +01:00
Hans-Kristian Arntzen
3c52771aee
Make sure image integer coords are int, not uint.
...
HLSL can emit uint here.
2017-12-01 15:02:50 +01:00
Hans-Kristian Arntzen
2c90ea3acc
Improve handling of block name declaration in GLSL.
...
HLSL UAVs are a bit annoying because they can share block types,
so reflection becomes rather awkward. Sometimes we will need to make
some nasty fallbacks, so add a reflection interface which lets you query
post-shader compile which names was actually declared in the shader.
2017-12-01 14:30:10 +01:00
Hans-Kristian Arntzen
7238e57933
Enforce stable order for dominated phi variables.
2017-11-23 09:59:25 +01:00
Hans-Kristian Arntzen
3fac289dea
Do not allow base expressions for arrays either.
2017-11-23 09:50:11 +01:00
Hans-Kristian Arntzen
473787ec0b
Check forwarding in OpImageRead.
2017-11-23 09:50:11 +01:00
Hans-Kristian Arntzen
a8df0802db
Clear member name cache in emit_flattened_io_block.
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
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
Hans-Kristian Arntzen
89a29becd4
Add support for coherent SSBO qualifiers.
2017-08-28 08:59:54 +02:00
Hans-Kristian Arntzen
d7f38ab4bf
Add support for SPV_KHR_multiview.
2017-08-15 13:28:16 +02:00
Hans-Kristian Arntzen
7d7f4b3b50
Emit flattened loads and stores.
2017-08-15 09:15:23 +02:00
Hans-Kristian Arntzen
3cbdbec712
Begin implementing ByteAddressBuffer flattening for HLSL.
2017-08-15 09:15:23 +02:00
Bill Hollings
1e84a379ff
Fix issue #245 : assignment of flattened input struct.
...
Emit input struct assignment by assigning member by member from stage_in struct.
Map qualified member name from pointer type, not base type.
Add Comiler::expression_type_id() function, similar to expression_type().
2017-08-12 00:21:13 -04:00
Hans-Kristian Arntzen
6cda7f120b
Merge pull request #246 from KhronosGroup/fix-241
...
Unify vertex clip-coord fixups.
2017-08-11 12:42:10 +02:00
Bill Hollings
730257cf67
Merge upstream
2017-08-10 17:27:01 -04:00
Hans-Kristian Arntzen
48ccde3779
Support OpConstantNull.
2017-08-03 14:32:29 +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
56e71c1dad
Do not emit layout(location) qualifiers for older GLSL targets.
...
ESSL 300 and GLSL <410 do not support this along with legacy targets.
2017-07-31 11:17:02 +02:00
Hans-Kristian Arntzen
cbcaca5a39
Fix textureProj with shadow on GLSL.
2017-07-31 10:05:32 +02:00
Hans-Kristian Arntzen
1c6df1b7b4
Use _m* for member names without OpMemberName.
...
Member names could conflict with type names in stripped modules with
very large structs.
2017-07-29 21:44:20 +02:00
Hans-Kristian Arntzen
0d14448b4d
Minor optimization of enclose_expression.
2017-07-25 18:25:03 +02:00
Hans-Kristian Arntzen
6ff9007311
Fix unary enclosures.
2017-07-24 10:17:19 +02:00
Hans-Kristian Arntzen
c8d60914c4
Add support for SampleId/SampleMask/SamplePosition builtins.
2017-07-24 10:07:31 +02:00
Hans-Kristian Arntzen
df6aa0e609
Support SampleCmpLevelZero on cubes as well.
2017-07-24 09:28:24 +02:00
Bill Hollings
5f42746389
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
2017-06-30 19:11:46 -04:00
Bill Hollings
f591bc0d4a
CompilerMSL enhancements.
...
Support BuiltInFragDepth.
Emit interface block for StorageClassUniformConstant.
Throw exception when output or fragment input structs contain matrix or array.
Dynamically created interface structs sorted by location number instead of alphabetically.
Add Compiler::is_array() function.
2017-06-30 19:10:46 -04:00
David Srbecky
edec5ea137
Add "texture" to the keyword list.
...
I have encountered several shaders where people use "texture" as
local variable (old shaders from times when it was not build-in).
2017-06-27 15:35:47 +01:00
Hans-Kristian Arntzen
0aac31bda1
Remove remnants of old OpCompositeInsert hack.
2017-06-26 22:58:41 +02:00
David Srbecky
77b5b4446b
Always make a copy when handling OpCompositeInsert
...
The modified object might not be mutable (e.g. shader input).
Added a test for the case when this happens.
2017-06-26 18:32:53 +01:00
Hans-Kristian Arntzen
d38b1b086a
Fix typo.
2017-06-23 09:50:01 +02:00
Hans-Kristian Arntzen
7bb749142c
Run format_all.sh.
2017-06-23 09:46:15 +02:00
Hans-Kristian Arntzen
ad2b7c05e7
Implement workaround for textureLod on 2D array shadow.
...
This does not exist in GLSL, but it exists in HLSL if LOD == 0.0.
2017-06-23 09:45:42 +02:00
Hans-Kristian Arntzen
b0f7deedec
Run format_all.sh.
2017-06-17 10:56:24 +02:00
Hans-Kristian Arntzen
978901f9e4
Avoid ugly workaround for separate shadow samplers in GLSL/HLSL.
2017-06-17 10:54:59 +02:00
rob
fb1820e2f5
Geometry shader core since GLSL 150
2017-06-17 10:06:46 +09:00
Bill Hollings
6f3381a5d3
Fixes from review of PR #190 .
2017-06-01 16:29:39 -04: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
326a7ffdf0
Check multidimensional extension in type_to_glsl_constructor.
2017-05-31 10:00:52 +02: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
Hans-Kristian Arntzen
842eff9647
Merge pull request #188 from KhronosGroup/sso
...
Add support for Separate Shader Objects
2017-05-31 09:55:34 +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
Bill Hollings
c1b8154f2c
CompilerMSL fix variables used in interface blocks aren't resolved correctly ( #179 ).
2017-05-22 21:41:19 -04:00
Bill Hollings
542e8c37ad
Edits resulting from review of PR #186 .
2017-05-22 13:38:23 -04:00
Hans-Kristian Arntzen
167fffd4af
Enforce the standard builtin array names.
2017-05-22 15:55:42 +02: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
Bill Hollings
d677e63860
Merge with upstream
2017-05-19 19:36:24 -04:00
Bill Hollings
8f6df770ce
CompilerMSL map many GLSL functions to MSL functions.
...
Add bool members is_read and is_written to SPIRType::Image.
Output correct texture read/write access by marking whether textures
are read from and written to by the shader.
Override bitcast_glsl_op() to use Metal as_type<type> functions.
Add implementations of SPIR-V functions inverse(), degrees() & radians().
Map inverseSqrt() to rsqrt().
Map roundEven() to rint().
GLSL functions imageSize() and textureSize() map to equivalent
expression using MSL get_width() & get_height() functions.
Map several SPIR-V integer bitfield functions to MSL equivalents.
Map SPIR-V atomic functions to MSL equivalents.
Map texture packing and unpacking functions to MSL equivalents.
Refactor existing, and add new, image query functions.
Reorganize header lines into includes and pragmas.
Simplify type_to_glsl() logic.
Add MSL test case vert/functions.vert for added function implementations.
Add MSL test case comp/atomic.comp for added function implementations.
test_shaders.py use macOS compilation for MSL shader compilation validations.
2017-05-19 18:14:08 -04:00
Hans-Kristian Arntzen
07ee7d09cb
Fix deep call hierarchies in CombinedImageSamplerUsageHandler.
2017-05-06 13:53:06 +02:00
Hans-Kristian Arntzen
3eb8a34173
Declare variables and parameters with samplerShadow if necessary.
2017-05-06 13:35:02 +02:00
Hans-Kristian Arntzen
f4d7268565
GLSL will also need shadow state analysis.
...
Refactor stuff out to top-level.
Fix some bugs with combined shadow samplers in regular GLSL.
2017-05-06 13:21:35 +02:00
Hans-Kristian Arntzen
100e9d34b8
HLSL: Basic support for separate image/samplers.
2017-05-06 12:39:04 +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
543e380d90
Fix case where samplerBuffer is emitted without combined sampler.
2017-04-02 11:03:07 +02:00
Hans-Kristian Arntzen
6801af4dce
Fix bitfield functions.
2017-03-25 15:38:20 +01: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
cb637db5d6
Handle GL_ARB_derivative_control
2017-03-24 15:58:54 +01:00
Robert Konrad
f3a82778f9
Fix OpLogicalNot in HLSL
2017-03-24 15:00:48 +01:00
Robert Konrad
9ec9dd0647
Add dFd(x/y)(Fine/Coarse) to GLSL
2017-03-24 13:59:19 +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
099f307123
Add traversal for active builtin variables.
...
Refactor some ugly type-copying for access chains.
2017-03-21 13:48:28 +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
65cd7eb670
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
2017-03-09 13:18:48 -05:00
Henrik Rydgård
bfae041e21
Fix a few minor warnings. (i was used as a uint32_t in multiple places, like type_member_for_offset, so changed its type)
2017-03-07 10:19:08 +01: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
Hans-Kristian Arntzen
7f2e17969b
Add built-in cull distance.
2017-03-05 12:47:03 +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
eb5e09fa64
Run format_all.sh.
2017-02-23 19:33:14 +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
0e7c33ff81
Update glslang to latest on Travis.
...
Fix a lingering bug with OpSelect and boolean mix().
2017-02-11 10:52:34 +01:00
Hans-Kristian Arntzen
9cb8616c31
Do not use write/read counters for "global" parameters.
...
Fixes device const & SSBO issues.
2017-02-05 10:50:14 +01:00
Hans-Kristian Arntzen
ab21dfb25b
Fix execution order for for-loop emission.
...
In some cases, the compiler decided to emit continue block first,
which invalidated the expressions used by the condition.
Parameters to functions can be evaluated in any order which caused
"random" behavior.
2017-02-04 10:07:20 +01:00
Hans-Kristian Arntzen
18c37bcdab
Update license headers for 2017.
2017-01-28 09:00:40 +01:00
Robert Konrad
c53646a670
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross into hlsl
2017-01-25 17:03:57 +01:00
Arseny Kapoulkine
32a561a6c3
Remove redundant constructor calls for scalar types
2017-01-24 08:09:58 -08:00