Hans-Kristian Arntzen
de365f2e21
Merge branch 'master' of git://github.com/lifpan/SPIRV-Cross
2018-09-18 10:52:26 +02:00
Hans-Kristian Arntzen
3b5968bb26
Deal with switch cases which break out of a loop.
...
Need some pretty hideous ladder variable system, but high level
languages do not support breaking out of a loop. break in switch blocks
and break in loops alias each other.
2018-09-18 10:50:48 +02:00
lifpan
e4d8ef2044
Propagate loop dominator to switch-default block
...
This is necessary if OpSwitch is inside a loop.
2018-09-18 15:53:02 +08:00
Hans-Kristian Arntzen
737715214e
Implement atomic increment/decrement in GLSL and HLSL.
2018-09-17 15:54:21 +02:00
Hans-Kristian Arntzen
340957a3ab
Make fixup_hooks more flexible.
...
No reason why it needs to return a string.
Callbacks can just do one or more statements themselves.
2018-09-17 14:06:44 +02:00
Hans-Kristian Arntzen
d310060f92
MSL: Support global I/O block and struct Input/Output usage.
...
Implement this by flattening outputs and unflattening inputs explicitly.
This allows us to pass down a single struct instead of dealing with the
insanity that would be passing down each flattened member separately.
Remove stage_uniforms_var_id.
Seems to be dead code. Naked uniforms do not exist in SPIR-V for Vulkan,
which this seems to have been intended for. It was also unused elsewhere.
2018-09-13 16:04:24 +02:00
Hans-Kristian Arntzen
89e3b8ff0d
Run format_all.sh.
2018-09-12 10:53:50 +02:00
Hans-Kristian Arntzen
2f65a1583e
MSL: Support array-of-arrays composite construction.
2018-09-12 10:25:51 +02:00
Hans-Kristian Arntzen
32a0d05e05
Bitcast loads from builtin compute variables.
2018-09-11 09:43:28 +02:00
Hans-Kristian Arntzen
63f6466065
Support Component decoration in GLSL.
2018-09-10 12:13:26 +02:00
Hans-Kristian Arntzen
57a15dfb0c
Run format_all.sh.
2018-09-10 10:08:02 +02:00
Hans-Kristian Arntzen
b114889102
Only declare typed initializer list for non-array types.
...
Also, cleanup now redundant constant_expression virtualization for MSL.
2018-09-10 10:04:17 +02:00
Chip Davis
3dc23615dd
Fix formatting.
2018-08-29 10:08:33 -05:00
Chip Davis
fcad019e11
Support the shader_draw_parameters extension.
2018-08-29 10:07:21 -05:00
Hans-Kristian Arntzen
87de951105
MSL: Fix naming issue of aliased global variables.
...
When the name of an alias global variable collides with a global
declaration, MSL would emit inconsistent names, sometimes with the
naming fix, sometimes without, because names were being tracked in two
separate meta blocks. Fix this by always redirecting parameter naming to
the original base variable as necessary.
2018-08-27 09:59:55 +02:00
Hans-Kristian Arntzen
ae859934ca
Use GL_NV_gpu_shader5 as a fallback for AMD_gpu_shader_half_float.
2018-08-23 15:37:09 +02:00
Hans-Kristian Arntzen
20c8e6787c
Get fallback name for block if name is empty.
2018-08-21 12:17:40 +02:00
Hans-Kristian Arntzen
f6ec83e5d4
GLSL: Allow blocks to have their own namespace.
2018-08-21 11:29:08 +02:00
Hans-Kristian Arntzen
3a268796e2
Deal with loop variable initializers for non-for loops.
2018-08-06 12:52:22 +02:00
Hans-Kristian Arntzen
cc7679ee45
Workaround NOMINMAX issues on Windows.
...
::max() can be overridden if you forget NOMINMAX on Windows.
Hardcode literals instead. UINT32_MAX also requires weird macros in C++.
2018-07-17 00:10:12 +02:00
Hans-Kristian Arntzen
18b82caf83
Properly track read dependencies for UAV access chain.
2018-07-09 14:02:50 +02:00
Hans-Kristian Arntzen
e1367e609a
Fix a lot of redundant code when loading flattened composites.
2018-07-06 10:57:23 +02:00
Hans-Kristian Arntzen
2bf57d6dff
Deal with composite constants in variable initializer.
2018-07-05 15:29:49 +02:00
Hans-Kristian Arntzen
8c314112b4
Run format_all.sh.
2018-07-05 14:18:34 +02:00
Hans-Kristian Arntzen
5143695080
Don't need to enclose expression for arrays.
2018-07-05 14:09:25 +02:00
Hans-Kristian Arntzen
d29f48ef06
Deduce constant LUTs from read-write variables.
2018-07-05 13:25:57 +02:00
Hans-Kristian Arntzen
b5ed706860
Hoist out variable scope analysis.
2018-07-05 10:42:05 +02:00
Hans-Kristian Arntzen
c26c41b26b
Make the CFGs for all active functions available.
...
Will make writing other CFG-depended stuff easier.
2018-07-04 17:26:53 +02:00
Hans-Kristian Arntzen
e044732896
Support OpTypeImage with depth == 2 (unknown) properly.
...
Track which OpSampledImages are ever used with Dref opcodes.
2018-07-04 14:26:23 +02:00
Hans-Kristian Arntzen
af2d3abd03
Fail more gracefully with some unsupported opcodes.
2018-07-02 13:22:21 +02:00
Hans-Kristian Arntzen
9ddbd5aff6
Run format_all.sh.
2018-06-28 23:00:26 +02:00
Hans-Kristian Arntzen
f1752e58e1
Add basic namespace to internal macros.
...
Some projects build SPIRV-Cross as a single translation unit
and this causes a lot of warnings because the same macro is redeclared
multiple times in the different backends. This make sure that each
backend has its own namespace for internal macros.
2018-06-28 22:57:52 +02:00
Bill Hollings
f66507a701
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
2018-06-25 10:52:15 -04:00
Hans-Kristian Arntzen
0ea5e0549e
Merge pull request #615 from JustSid/master
...
Added support for shadowXY() sample instructions in legacy GLSL
2018-06-25 11:52:45 +02:00
Sidney Just
5ac55ee735
Fixed emission of some legacy texture ops without requiring the appropriate extensions
2018-06-25 02:11:46 -07:00
Sidney Just
ceec708b89
Added better fallbacks for legacy textureProjLod() and textureProjLodOffset() generation
2018-06-25 02:06:45 -07:00
Hans-Kristian Arntzen
994f789465
Merge pull request #624 from KhronosGroup/fix-619
...
Support branch/loop hints in HLSL.
2018-06-25 10:53:52 +02:00
Hans-Kristian Arntzen
33c61d2abe
Support branch/loop hints in HLSL.
2018-06-25 10:33:13 +02:00
Hans-Kristian Arntzen
ffa9133d77
Support ternary expressions in OpSpecConstantOp.
2018-06-25 09:49:13 +02:00
Bill Hollings
e091031613
CompilerMSL pass builtin struct members into functions.
...
Add and use Compiler::get_non_pointer_type() convenience functions.
2018-06-24 15:06:12 -04:00
Hans-Kristian Arntzen
d94d20f4f3
Deal with some builtins being declared with wrong signedness.
2018-06-22 11:30:56 +02:00
Sidney Just
0f62b5dc1e
Moved check for depth texture and shadowXY emission completely to legacy_tex_op()
2018-06-22 01:57:25 -07:00
Sidney Just
447a253ce7
Simplified check for depth texture
2018-06-22 01:57:19 -07:00
Hans-Kristian Arntzen
b29629fd46
Add support to remove SPIRV_Cross_BaseInstance uniform.
2018-06-22 10:01:38 +02:00
Hans-Kristian Arntzen
040204d65c
Fix warnings and run format_all.sh.
2018-06-22 09:41:43 +02:00
Sidney Just
f6dad78c99
Added support for shadowXY() sample instructions in legacy GLSL
2018-06-22 00:28:40 -07:00
Brad Davis
762040084d
More feedback
2018-06-20 10:25:38 -07:00
Brad Davis
d0a67ba6a7
Code consolidation, const correctness, faster regression testing
2018-06-20 09:20:45 -07:00
Brad Davis
3a825349bc
More cleanup
2018-06-20 09:20:45 -07:00
Brad Davis
6c88b0048b
PR feedback
2018-06-20 09:20:45 -07:00