Hans-Kristian Arntzen
7af13b68d5
Support ImageRead/Write on multisampled images.
2016-07-11 13:26:22 +02:00
Hans-Kristian Arntzen
2c7d2e4d3c
Implement OpImageQuerySamples.
2016-07-11 12:47:46 +02:00
Hans-Kristian Arntzen
05a97883d2
Don't emit invocation layout for invocations == 1.
2016-06-23 13:49:19 +02:00
Hans-Kristian Arntzen
4bb9f092ab
Only split expression in OpCompositeExtract if we forward the temporary.
2016-06-23 12:13:41 +02:00
Hans-Kristian Arntzen
9d4360fddf
Fix sampler2DMS texelFetch.
2016-06-22 12:35:58 +02:00
Hans-Kristian Arntzen
81a8fc1952
Add support for OpQuantizeF16.
2016-05-31 16:56:15 +02:00
Hans-Kristian Arntzen
168e46fdf9
Use std::array in C++ backend.
...
Deals better with composite construction in C++
and also fixes a few bugs in GLSL backend with array-of-arrays.
2016-05-28 13:23:51 +02:00
Hans-Kristian Arntzen
4739d16e98
Remove workaround for overly conservative memory barriers.
...
This is now fixed in ESSL 3.10 backend of glslang, so we can remove the old workaround
of dropping full memory barriers.
Also fixes unrelated issue which newer glslang detects.
2016-05-28 11:46:33 +02:00
Hans-Kristian Arntzen
5ad4340976
Workaround case with identical structs but different types.
...
With the current workarounds for SSBO type aliasing, we have no choice
but to look at OpName in order to figure this out properly.
2016-05-28 09:47:52 +02:00
Hans-Kristian Arntzen
6aa2007cba
Deal better with OpName and OpMemberName which alias.
...
OpName is only for debug information, so we must be very careful that
we do not reuse the same name for different variables.
This was previously done for local variables, but this commit extends
this to global variables as well.
2016-05-23 13:19:41 +02:00
Hans-Kristian Arntzen
45ad58a903
Implement more correct integer op handling.
...
In some cases we need to bitcast when dealing with int vs. uint.
SPIR-V allows inputs to be of different integer signedness, so we need
to deal with this somehow.
Add testing system to test SPIR-V assembly.
For now, test all possible combination for all major cases.
- IAdd (which doesn't care about input type as long as they're equal)
- SDiv/UDiv operations which case about input type.
- Arith/Logical right shifts.
- IEqual to test outputs to bvec, which shouldn't get output cast. Also
tests casting in function-like calls.
2016-05-13 15:23:33 +02:00
Hans-Kristian Arntzen
8869a167d6
Drop --vulkan flag to test_shaders.py
...
We can infer shader types from file extensions.
2016-05-11 20:02:31 +02:00
Hans-Kristian Arntzen
44ef367141
Handle padding for struct members in buffers.
...
Fixes earlier issues with struct-packing test.
2016-05-05 16:32:15 +02:00
Hans-Kristian Arntzen
2d38c6e192
Fixups for struct-packing test.
...
There seems to have been some changes to alignment in glslang here,
so workaround to verify that the other cases at least still work as expected.
2016-05-05 11:59:33 +02:00
Hans-Kristian Arntzen
b424851706
Fix floating point OpMod.
...
Floating point mod uses separate builtin in GLSL.
2016-04-16 09:25:14 +02:00
Hans-Kristian Arntzen
ba0ab875c8
Fix cases where SPIR-V conditionally branches to loop headers.
...
We should check if we are actually branching back to loop header.
Fixes some logic when continue_block == loop_header.
2016-04-04 08:53:37 +02:00
Hans-Kristian Arntzen
92134e410a
Do not add dependencies for variables loaded from UniformConstant.
...
Fixes case where image variables (OpTypeImage), etc are
loaded from UniformConstant address space.
2016-04-01 19:58:26 +02:00
Hans-Kristian Arntzen
72e93672d3
Add array-of-SSBO test.
2016-03-22 14:49:43 +01:00
Hans-Kristian Arntzen
0ae2bcc3d0
Ensure that floating point literals are float.
...
Fixes regression from earlier workaround of std::to_string.
Update reference output.
2016-03-12 14:22:39 +01:00
Hans-Kristian Arntzen
75471fbb98
Initial commit.
2016-03-11 16:30:27 +01:00