Hans-Kristian Arntzen
3c0f539590
Merge pull request #399 from KhronosGroup/cfg-fixes
...
Specialize CFG traversal for some opcodes which use literals.
2018-01-17 10:10:25 +01:00
Hans-Kristian Arntzen
377c6db480
Merge pull request #398 from KhronosGroup/fix-396
...
Do not use inline for-loop initializers with different types.
2018-01-17 10:10:01 +01:00
Hans-Kristian Arntzen
34cbe91d12
Merge pull request #395 from KhronosGroup/cfg-analysis-opt-remove
...
Remove cfg_analysis option.
2018-01-16 13:05:42 +01:00
Hans-Kristian Arntzen
150b18733f
Specialize CFG traversal for some opcodes which use literals.
2018-01-16 10:43:04 +01:00
Hans-Kristian Arntzen
b902d5400c
Do not use inline for-loop initializers with different types.
2018-01-16 10:27:58 +01:00
Hans-Kristian Arntzen
779ad0412f
Merge pull request #393 from KhronosGroup/fix-391
...
Handle OpUnreachable in code-gen.
2018-01-16 09:46:34 +01:00
Hans-Kristian Arntzen
bfe6f50b8e
Remove cfg_analysis option.
...
Not using this is broken, and won't work anymore.
2018-01-15 13:21:01 +01:00
Hans-Kristian Arntzen
168bcc7b3b
Add unreachable tests for MSL/HLSL.
2018-01-15 09:39:15 +01:00
Hans-Kristian Arntzen
0f4adaa09d
Handle OpUnreachable in code-gen.
...
Forgot to add it to emit_block_chain. It should just be a noop.
2018-01-15 09:35:09 +01:00
Hans-Kristian Arntzen
17f9026248
Merge pull request #392 from billhollings/master
...
Use initializer list for composite initializations
2018-01-15 09:12:13 +01:00
Hans-Kristian Arntzen
0360aef2be
Merge pull request #389 from KhronosGroup/fix-384
...
Analyze the CFG for temporaries as well.
2018-01-15 09:11:54 +01:00
Bill Hollings
ba1e415a9c
Use initializer list for composite initializations if backend.use_initializer_list is on.
2018-01-12 17:19:24 -05:00
Hans-Kristian Arntzen
d4e470babd
Analyze the CFG for temporaries as well.
...
Normally, temporary declaration must dominate any use of it,
so we generally did not need to analyze the CFG for these variables,
but there is an edge case where you have an inliner doing:
do {
create_temporary;
break;
} while(0);
use_temporary;
The inside of the loop dominates the outer scope, but we cannot emit
code like this in GLSL, so make sure we hoist these temporaries outside
the "loop".
2018-01-12 10:56:11 +01:00
Hans-Kristian Arntzen
bcaa1f0e3c
Merge pull request #386 from KhronosGroup/fix-383
...
Fix naive barrier handling in GLSL and HLSL and various other fixes
2018-01-09 15:27:21 +01:00
Hans-Kristian Arntzen
39e7ddea94
Disable mem_texture checks on MSL.
...
Doesn't seem to work on Travis even though spec says it should, oh well
:)
2018-01-09 14:09:29 +01:00
Hans-Kristian Arntzen
fbc47395b2
Update Travis glslang version.
2018-01-09 12:59:20 +01:00
Hans-Kristian Arntzen
cfe568f237
Add exhaustive barrier tests for MSL.
...
Seems incorrect, need to be fixed later.
2018-01-09 12:55:46 +01:00
Hans-Kristian Arntzen
44a4eb7562
Formatting.
2018-01-09 12:51:21 +01:00
Hans-Kristian Arntzen
9c3d4e7c60
Rewrite barrier handling in HLSL.
2018-01-09 12:41:13 +01:00
Hans-Kristian Arntzen
27ad8c0922
Add more exhaustive test for barrier handling.
2018-01-09 12:26:46 +01:00
Hans-Kristian Arntzen
166eed8c18
Add test shaders for barriers.
2018-01-09 12:19:31 +01:00
Hans-Kristian Arntzen
7bb8874b43
Optimize away redundant barriers.
2018-01-09 12:17:38 +01:00
Hans-Kristian Arntzen
9c72aa00c9
Overhaul barrier handling in GLSL.
2018-01-09 12:07:07 +01:00
Hans-Kristian Arntzen
23f0abf112
Update tests for struct flattening.
2018-01-09 10:40:34 +01:00
Hans-Kristian Arntzen
18f60ed9a9
Update glslang.
...
Not SPIRV-Tools yet, mis-optimizes many shaders which used to work fine.
2018-01-09 10:37:12 +01:00
Hans-Kristian Arntzen
1a5a755ce5
Flatten structs based on instance name rather than block name.
...
Block name is too brittle, optimizes will merge block types, making
flattening impossible with unique names.
2018-01-09 10:36:04 +01:00
Hans-Kristian Arntzen
f708b497a4
Opt in to gl_in/gl_out handling rather than other way around.
2018-01-09 09:16:33 +01:00
Hans-Kristian Arntzen
c7aac59188
Merge pull request #385 from billhollings/master
...
Revert to not forcing gl_in/gl_out block for MSL.
2018-01-09 09:07:30 +01:00
Bill Hollings
27d4af75a0
Revert to not forcing gl_in/gl_out block for MSL, and add MSL gl_ClipDistance tests.
2018-01-08 16:18:34 -05:00
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
6371d9e43a
CompilerMSL emit no-warning pragma when emitting spvConvertFromRowMajorCxR functions.
2018-01-06 00:51:25 -05: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
3a7e8a1035
CompilerMSL fix bad cast error on result type derivation.
2018-01-04 21:13:38 -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
dc01e7c760
Merge pull request #381 from KhronosGroup/fix-375
...
Fix tessellation control shaders from HLSL.
2018-01-04 16:44:52 +01: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
41ffb1064e
Add basic test for viewport-index builtin.
2018-01-04 13:51:05 +01:00
Hans-Kristian Arntzen
c4e787ccf8
Merge pull request #378 from KhronosGroup/fix-371
...
Fix swizzling of scalar integers in HLSL.
2018-01-04 13:42:27 +01:00
Hans-Kristian Arntzen
81395b067d
Merge pull request #377 from KhronosGroup/fix-367
...
Support arrays of images in HLSL
2018-01-04 13:18:49 +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
Hans-Kristian Arntzen
e51b7cd162
Add test for sampler arrays.
2018-01-04 12:28:57 +01:00
Hans-Kristian Arntzen
d9c0948a9c
Run format_all.sh.
2018-01-04 12:15:55 +01:00
Hans-Kristian Arntzen
ec1180f198
Support arrays in to_sampler_expression.
2018-01-04 12:14:18 +01:00
Hans-Kristian Arntzen
c7f4b1528f
Declare arrays of resources in HLSL.
2018-01-04 11:05:40 +01:00
Bill Hollings
1845f31397
Add option to control use of temp vars for OpVectorShuffle.
2017-12-31 18:55:04 -05:00
Bill Hollings
95910ddd5a
MSL test shader refactoring to avoid optimization crashes.
2017-12-26 18:40:46 -05:00
Bill Hollings
a68b32733a
CompilerMSL enhancements to nested function use of globals.
...
Allow function calls to include globals as arguments.
Allow function calls to include built-ins as arguments.
Include all meta info when creating function args from globals.
Do not manufacture a sampler for Buffer-type sampled images.
Add code option to test_shaders.py to preserve SPIR-V code for interactive debugging.
2017-12-26 16:32:45 -05:00