Hans-Kristian Arntzen
c029b0a531
Merge pull request #691 from KhronosGroup/fix-689
...
MSL: Support copying array of arrays.
2018-09-12 10:53:12 +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
38d19821d4
MSL: Support copying array of arrays.
2018-09-12 09:54:55 +02:00
Hans-Kristian Arntzen
4d478316e5
Add missing reference files.
2018-09-12 09:45:08 +02:00
Hans-Kristian Arntzen
0312c98825
Validate HLSL with appropriate SM.
2018-09-12 09:44:35 +02:00
Hans-Kristian Arntzen
ecc94ccd1a
Merge branch 'legacy-color-4comp' of git://github.com/crosire/SPIRV-Cross
2018-09-12 09:37:40 +02:00
crosire
3d39652853
Add tests for previous fix
2018-09-11 20:57:56 +02:00
crosire
0cdfbe490b
Fix invalid code generation for shader model 3 when fragment shader output is not a four-component vector
2018-09-11 20:29:24 +02:00
crosire
f6ce7a9b92
Add user-specific Visual Studio files to gitignore
2018-09-11 20:28:11 +02:00
Hans-Kristian Arntzen
403011e973
Merge pull request #684 from cdavis5e/msl-builtin-vector-cast
...
MSL: Cast uses of builtin vectors to their declared SPIR-V type.
2018-09-11 19:59:58 +02:00
Chip Davis
6757ef8512
Use bitcast_to_builtin_load() instead of hacking to_expression().
...
This only affects the builtin when it is used, and not when it's passed
to a function. It's a lot cleaner than the way I was doing it before.
Remove the `to_expression()` hack.
2018-09-11 11:15:17 -05:00
Hans-Kristian Arntzen
af907fe496
Merge pull request #690 from KhronosGroup/bitcast-builtin-compute
...
GLSL: Bitcast loads from builtin compute variables.
2018-09-11 10:05:41 +02:00
Hans-Kristian Arntzen
32a0d05e05
Bitcast loads from builtin compute variables.
2018-09-11 09:43:28 +02:00
Chip Davis
acb3fac747
Opt for a simple value cast in lieu of a bitcast.
2018-09-10 14:05:36 -05:00
Hans-Kristian Arntzen
c04d9e5c0e
Merge pull request #688 from KhronosGroup/fix-682
...
Support Component decoration in GLSL.
2018-09-10 12:36:57 +02:00
Hans-Kristian Arntzen
63f6466065
Support Component decoration in GLSL.
2018-09-10 12:13:26 +02:00
Hans-Kristian Arntzen
7a32167d63
Merge pull request #687 from KhronosGroup/fix-683
...
Add a helper function to improve reflection on runtime sized arrays.
2018-09-10 11:51:40 +02:00
Hans-Kristian Arntzen
e86018f8a1
Add a helper function to improve reflection on runtime sized arrays.
2018-09-10 11:08:47 +02:00
Hans-Kristian Arntzen
6ca16b2a5e
Merge pull request #686 from KhronosGroup/fix-685
...
Fix composite array declarations in MSL.
2018-09-10 10:45:36 +02:00
Hans-Kristian Arntzen
af672b7a4b
Add composite array test shaders for GLSL and HLSL as well.
2018-09-10 10:21:08 +02:00
Hans-Kristian Arntzen
57a15dfb0c
Run format_all.sh.
2018-09-10 10:08:02 +02:00
Hans-Kristian Arntzen
aa17a02efb
Add test shader for composite array initialization.
2018-09-10 10:05:00 +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
f7dad9da66
MSL: Cast uses of builtin vectors to their declared SPIR-V type.
...
In SPIR-V, builtin integral vectors can be either signed or unsigned,
but in MSL they're always unsigned. Unfortunately, the MSL spec forbids
implicit conversions between vector types--even if the corresponding
scalar types would implicitly convert. If you try, the result is a
cryptic error message such as:
```
program_source:37:60: error: cannot convert between vector values of different size ('int4' (aka 'vector_int4') and 'vector_uint4' (vector of 4 'unsigned int' values))
float4 r3 = as_type<float4>((as_type<int4>(r0) * gl_LocalInvocationID.xyyy) + as_type<int4>(r2));
~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~
```
Therefore, uses of these builtins must be explicitly cast, since the
rest of the binary likely assumes that the builtin is of its declared
type.
2018-09-08 21:17:54 -05:00
Hans-Kristian Arntzen
9ffd4172b4
Merge pull request #680 from cdavis5e/msl-varying-components
...
MSL: Account for components when assigning locations to varyings.
2018-09-07 16:01:53 +02:00
Hans-Kristian Arntzen
228491c093
Merge pull request #681 from KhronosGroup/fix-679
...
MSL: Do not emit function constants for version < 1.2.
2018-09-07 10:04:40 +02:00
Hans-Kristian Arntzen
652d8263e5
Use correct spirv-cross version when testing MSL 1.1 shaders.
2018-09-07 09:45:25 +02:00
Hans-Kristian Arntzen
32823b0838
MSL: Do not emit function constants for version < 1.2.
2018-09-07 09:33:34 +02:00
Hans-Kristian Arntzen
9572276a95
Add missing reference file.
2018-09-07 09:29:10 +02:00
Chip Davis
4b99fdd5d0
MSL: Account for components when assigning locations to varyings.
...
Two varyings (vertex outputs/fragment inputs) might have the same
location but be in different components--e.g. the compiler may have
packed what were two different varyings into a single varying vector.
Giving both varyings the same `[[user]]` attribute won't work--it may
yield unexpected results, or flat out fail to link. We could eventually
pack such varyings into a single vector, but that would require us to
handle the case where the varyings are different types--e.g. a `float`
and a `uint` packed into the same vector. For now, it seems most
prudent to give them unique `[[user]]` locations and let Apple's
compiler work out the best way to pack them.
2018-09-06 13:52:33 -05:00
Hans-Kristian Arntzen
8c7282bda1
Merge pull request #677 from cdavis5e/msl-lerp-quals
...
MSL: Handle interpolation qualifiers.
2018-09-06 19:57:52 +02:00
Chip Davis
674f97a40e
Handle interpolation qualifiers on the entire struct, too.
2018-09-06 12:29:42 -05:00
Chip Davis
1e51b235af
Add tests showing we don't emit interpolation qualifiers in vertex shaders.
...
In MSL, these only have an effect on fragment `[[stage_in]]` members.
They have no effect in vertex shaders. The Khronos front end doesn't
even emit the SPIR-V decorations for them.
2018-09-06 12:28:22 -05:00
Chip Davis
dbb98ffd81
Fix formatting.
2018-09-06 09:52:45 -05:00
Chip Davis
9e6469bd40
MSL: Handle interpolation qualifiers.
2018-09-05 12:02:07 -05:00
Hans-Kristian Arntzen
301e5c8076
Merge pull request #676 from cdavis5e/image-write-operand-words
...
MSL: Correct number of words to skip in OpImageWrite.
2018-09-05 17:44:21 +02:00
Chip Davis
1958438f69
Add optimized reference output for added test case.
2018-09-05 10:15:40 -05:00
Chip Davis
680ef9d773
MSL: Correct number of words to skip in OpImageWrite.
...
The length field in `Instruction` doesn't include the initial
opcode/length word. We only need to skip three words instead of four.
2018-09-05 10:02:25 -05:00
Hans-Kristian Arntzen
b34d411466
Merge pull request #675 from cdavis5e/buffer-write-coord
...
MSL: Emit spvTexelBufferCoord() on ImageWrite to a Buffer as well.
2018-09-05 09:17:15 +02:00
Chip Davis
9fbe39c9c0
MSL: Emit spvTexelBufferCoord() on ImageWrite to a Buffer as well.
...
This is necessary to get the coordinates to give to the texture's
`write()` method.
2018-09-04 12:14:34 -05:00
Hans-Kristian Arntzen
917ca818ed
Merge pull request #673 from cdavis5e/min-max-clamp
...
MSL: Emit F{Min,Max,Clamp} as fast:: and N{Min,Max,Clamp} as precise::.
2018-09-04 15:15:18 +02:00
Chip Davis
b76a330baf
Update a bunch of test cases that I missed.
2018-09-03 17:31:15 -05:00
Chip Davis
65f3565781
Try once again to appease spirv-val.
2018-09-03 10:53:29 -05:00
Chip Davis
6d306108d3
Really fix validation.
2018-09-03 10:32:12 -05:00
Chip Davis
0598aa2712
Hopefully correct test shader so it will validate.
2018-09-03 09:49:48 -05:00
Hans-Kristian Arntzen
93e167eb0f
Add some uncommitted reference files.
2018-09-03 12:39:40 +02:00
Hans-Kristian Arntzen
1391cb5827
Merge pull request #674 from KhronosGroup/fix-670
...
MSL: Implement multisampled array textures.
2018-09-03 12:28:09 +02:00
Hans-Kristian Arntzen
452a65324e
Use new macos -std= flag in Metal compiler.
2018-09-03 12:03:14 +02:00
Hans-Kristian Arntzen
ea65ec4ac6
brew update python3 fails on xcode10 image.
2018-09-03 11:15:03 +02:00