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
Hans-Kristian Arntzen
9d31154917
Deal with switch case labels which share a block.
2018-06-20 10:49:28 +02:00
Bill Hollings
ab2ea93e35
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
2018-06-12 11:42:56 -04:00
Bill Hollings
9b4defe202
CompilerMSL support matrices & arrays in stage-in & stage-out.
...
Support flattening StorageOutput & StorageInput matrices and arrays.
No longer move matrix & array inputs to separate buffer.
Add separate SPIRFunction::fixup_statements_in & SPIRFunction::fixup_statements_out
instead of just SPIRFunction::fixup_statements.
Emit SPIRFunction::fixup_statements at beginning of functions.
CompilerMSL track vars_needing_early_declaration.
Pass global output variables as variables to functions that access them.
Sort input structs by location, same as output structs.
Emit struct declarations in order output, input, uniforms.
Regenerate reference shaders to new formats defined by above.
2018-06-12 11:41:35 -04:00
Hans-Kristian Arntzen
58fab58e5e
Do not unpack transposed matrices.
2018-06-12 09:43:47 +02:00
Hans-Kristian Arntzen
192a882df3
Also unpack regular unary/binary operations on MSL.
...
Apparently MSL gets confused when you have packed_float3 op float3 ...
2018-06-11 16:23:09 +02:00
Hans-Kristian Arntzen
b86bd0a265
Unpack expressions when used in functions on MSL.
...
OSX 10.14 broke (?) how overload resolution works,
so overloading e.g. dot(float3, packed_float3) no longer works.
Fix this by unpacking expressions before various func ops.
This fix might need to be applied elsewhere, but do so later if needed.
2018-06-11 10:56:45 +02:00
Hans-Kristian Arntzen
6bcc890e63
Sanitize underscores in general, not just for members.
2018-06-04 10:13:57 +02:00
Hans-Kristian Arntzen
3a9b045dc3
Various maintenance fixes.
...
- Do not emit set = in GLSL, even when non-zero.
- Fix warning on tautological comparison.
- Expose get_buffer_block_flags as mentioned in reflection guide.
2018-06-03 12:00:22 +02:00
Hans-Kristian Arntzen
f65120c147
Deal with packed expressions in more scenarios.
...
Make a new "to_extract_component_expression" helper.
2018-05-25 10:57:02 +02:00
Jin Zhou
6b144cc609
handle OpSRem
2018-05-24 10:22:01 +02:00
Jin Zhou
e792cd6160
no expression type for OpSRem
...
fix issue#582
2018-05-24 10:22:01 +02:00
Hans-Kristian Arntzen
f1eacba244
Merge pull request #587 from zeux/master
...
Fix textureGrad compilation for legacy targets
2018-05-24 09:14:17 +01:00
Arseny Kapoulkine
91fd41816f
Fix textureGrad compilation for legacy targets
...
textureGrad isn't part of core GL2 or GLES2. In desktop GL, it's
provided by GL_ARB_shader_texture_lod and is called texture2DGradARB; in
ES, it's provided by GL_EXT_shader_texture_lod and is called
texture2DGradEXT.
This change rewrites textureGrad similarly to textureProj as per above.
2018-05-23 14:06:37 -07:00
Hans-Kristian Arntzen
bcaae84c76
Deal with scoping for Private variables.
2018-05-16 10:49:30 +02:00
Hans-Kristian Arntzen
26b887ec99
Fix atomic_compare_exchange_weak_explicit.
...
Need to emit a CAS loop.
Fix shared memory declaration.
Declare atomic ops with correct memory scope.
2018-05-15 16:04:21 +02:00
Hans-Kristian Arntzen
991b655c72
Declare OpSpecConstantOp up-front on relevant targets.
...
Required, since spec constants can include results from constant ops.
2018-05-15 14:20:16 +02:00
Hans-Kristian Arntzen
0617b98613
Run format_all.sh.
2018-05-15 11:16:35 +02:00
Hans-Kristian Arntzen
3951b9456f
Fix SpecConstantComposite if input is SpecConstantOp.
2018-05-15 11:16:06 +02:00
Hans-Kristian Arntzen
01080365fa
Use mediump on images in --vulkan-semantics as well.
2018-05-11 10:59:29 +02:00
Hans-Kristian Arntzen
7eba247864
Handle inout properly with split access chains.
...
Found some other issues. Had some bugs with variable writes not properly
invalidating if writes came from split access chains.
2018-05-11 10:15:42 +02:00
Hans-Kristian Arntzen
b71f5dfc0c
Fix split access chains for builtin arrays.
2018-05-08 15:34:20 +02:00
Pascal Muetschard
aced6058b4
Don't limit GLSL identifiers with HLSL keywords.
...
- The HLSL compiler now has its own list of keywords in addition to
the ones from GLSL.
- Added "buffer", "precise", and "shared" to the GLSL keywords.
2018-05-07 10:58:52 -07:00
Hans-Kristian Arntzen
85a8f066f4
Do not use RMW rewrite for matrices.
...
Does not work on MSL.
2018-05-04 10:35:56 +02:00
Hans-Kristian Arntzen
17be3c652f
Deal with fake overloads when using combined image samplers.
2018-05-02 10:36:00 +02:00
Hans-Kristian Arntzen
f3e810b8b3
Fix OpCompositeConstruct with arrays in MSL.
2018-05-02 09:38:41 +02:00
Hans-Kristian Arntzen
7e23e69f2a
Run format_all.sh.
2018-04-30 12:46:21 +02:00