Commit Graph

542 Commits

Author SHA1 Message Date
Hans-Kristian Arntzen
4941970905 Merge pull request #134 from brenwill/master
CompilerMSL aligns MSL struct members with SPIR-V offsets
2017-03-20 09:04:12 +01:00
Bill Hollings
6fdb534f4b test_shaders.py support deprecated --metal CLI option. 2017-03-19 21:46:06 -04:00
Bill Hollings
5ad73f33f5 MSL fixes from review of PR 134.
Remove unnecessary use of std:: prefix in spirv_msl.cpp.
Use typedef instead of #define.
spirv-cross deprecate --metal CLI option and replace with --msl option.
2017-03-19 21:06:21 -04:00
Bill Hollings
52a5597161 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross 2017-03-17 11:16:47 -04:00
Hans-Kristian Arntzen
088b06ebda Merge pull request #138 from KhronosGroup/deprecation-macro
Add deprecation macro.
2017-03-15 11:11:34 +01:00
Hans-Kristian Arntzen
8411470ab9 Add deprecation macro. 2017-03-15 10:31:19 +01:00
Bill Hollings
5550c87b1f CompilerMSL options access and UBO alignment test case.
CompilerMSL accesses options using same design pattern as CompilerGLSL and CompilerHLSL.
CompilerMSL support setting VA & rez binding specs via either constructor or compile() method overload.
CompilerMSL support single UBO packing and padding in single pass.
spriv_cross app (main.cpp) supports turning off UBO packing and padding via command line option.
Add MSL UBO alignment test shader.
2017-03-12 17:42:51 -04:00
Bill Hollings
dc69427402 Updates to MSL functionality to support PR review feedback. 2017-03-11 12:17:22 -05:00
Bill Hollings
65cd7eb670 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross 2017-03-09 13:18:48 -05:00
Hans-Kristian Arntzen
6381b2ff9c Merge pull request #135 from hrydgard/warning-fix
Just fix a few minor warnings.
2017-03-07 10:57:02 +01:00
Henrik Rydgård
bfae041e21 Fix a few minor warnings. (i was used as a uint32_t in multiple places, like type_member_for_offset, so changed its type) 2017-03-07 10:19:08 +01:00
Bill Hollings
826de0e777 Merge with upstream and resolve conflicts. 2017-03-06 12:15:42 -05:00
Bill Hollings
a3546ebb54 spirv_msl only add padding structure members if required by member alignment. 2017-03-06 11:00:23 -05:00
Hans-Kristian Arntzen
5eb447f4b6 Merge pull request #133 from KhronosGroup/flatten-io-block
Add support for flattening I/O blocks.
2017-03-06 14:21:55 +01:00
Hans-Kristian Arntzen
fd12124bf7 Add tests for legacy I/O flattening. 2017-03-06 14:04:01 +01:00
Hans-Kristian Arntzen
c5de1cfa90 Add support for flattening I/O blocks.
Fix issue where layout() qualifiers are emitted for members in legacy
targets.
2017-03-06 14:01:51 +01:00
Hans-Kristian Arntzen
33ec91724d Merge pull request #132 from KhronosGroup/cull-distance
Add built-in cull distance.
2017-03-05 14:55:28 +01:00
Hans-Kristian Arntzen
7f2e17969b Add built-in cull distance. 2017-03-05 12:47:03 +01:00
Bill Hollings
5cb3ce96a7 spirv_msl pack MSL uniform struct members only when size warrants. 2017-03-02 17:57:26 -08:00
Bill Hollings
b332bae3c3 spirv_msl unpack packed MSL uniform struct members.
spirv_glsl add member_is_packed_type() and unpack_expression_type() functions.
2017-03-01 13:07:40 -05:00
Bill Hollings
484931d8b2 spirv_msl auto-alignment of members of MSL uniform structs.
spirv_msl optionally add padding and packing to allow MSL
struct members to align with SPIR-V struct alignments.
spirv_cross add convenience methods for testing Decorations.
spirv_glsl replace member_decl() function with new emit_stuct_member().
Allow struct member types to be marked as packed via DecorationCPacked decoration.
2017-02-28 21:44:36 -05:00
Bill Hollings
92f12d1d29 CompilerMSL avoid including hidden variables as entry point function arguments. 2017-02-25 23:19:52 -05:00
Hans-Kristian Arntzen
f33220e45a Merge pull request #127 from KhronosGroup/flatten-io
Flatten varying structs in legacy targets.
2017-02-24 14:30:47 +01:00
Hans-Kristian Arntzen
bcf2303ba0 Do not emit storage qualifiers for local variables.
Metal backend uses local variables to implement global variables.
Do not emit storage qualifiers for any variable which is declared inside
a function.
2017-02-24 11:15:34 +01:00
Hans-Kristian Arntzen
036b9b73f5 Emit storage qualifier in the correct place.
Need to emit qualifiers in a specific order for legacy GLSL.

<interpolation> <storage> <precision> <type>.
2017-02-24 09:56:17 +01:00
Hans-Kristian Arntzen
e941b92b11 Write up a section in README about implementation details. 2017-02-23 20:00:17 +01:00
Hans-Kristian Arntzen
eb5e09fa64 Run format_all.sh. 2017-02-23 19:33:14 +01:00
Hans-Kristian Arntzen
fc80cd8cbf Add support for loading flattened structs. 2017-02-23 19:31:56 +01:00
Hans-Kristian Arntzen
97350d32fd Fix cases for flattened struct write.
Handle writing the entire struct as well as writing the elements
individually.
2017-02-23 19:05:11 +01:00
Hans-Kristian Arntzen
3c58bbbcbe Flatten varying structs outputs in legacy targets. 2017-02-22 20:17:58 +01:00
Hans-Kristian Arntzen
dff7d72321 Merge pull request #124 from KhronosGroup/hlsl-options
Add option to set HLSL shader model.
2017-02-18 09:29:01 +01:00
Hans-Kristian Arntzen
2e3c6ec6a9 Add option to set HLSL shader model. 2017-02-16 11:17:12 +01:00
Hans-Kristian Arntzen
c92b839ecb Fix crash when passing wrong arguments.
THROW() did not actually throw in exception-enabled builds, silly
oversight.
2017-02-16 11:06:57 +01:00
Hans-Kristian Arntzen
b72feb557c Merge pull request #122 from zeux/metal-validate
Update to Xcode 8.2 on Travis and reenable Metal validation
2017-02-15 09:00:07 +01:00
Arseny Kapoulkine
6ecdf6f7ae Update to Xcode 8.2 on Travis and reenable Metal validation
We need recent Xcode to support ios-metal1.2
2017-02-15 10:04:38 +03:00
Hans-Kristian Arntzen
603673629e Merge pull request #118 from brenwill/master
CompilerMSL add support for texel buffers.
2017-02-11 19:50:58 +01:00
Bill Hollings
1699e69ccd Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross 2017-02-11 10:58:07 -05:00
Hans-Kristian Arntzen
c6ffc16a57 Merge pull request #119 from KhronosGroup/glslang-update
Update glslang to latest on Travis.
2017-02-11 11:01:16 +01:00
Hans-Kristian Arntzen
0e7c33ff81 Update glslang to latest on Travis.
Fix a lingering bug with OpSelect and boolean mix().
2017-02-11 10:52:34 +01:00
Bill Hollings
e016de860a Update MSL reference shaders affected by upstream pull. 2017-02-09 13:16:13 -05:00
Bill Hollings
6159a61c95 CompilerMSL add support for texel buffers.
Compiler MSL support DimBuffer as image dimension.
CompilerMSL check texture coordinate result type dimension before adding swizzles.
Update MSL reference shaders affected by this update.
2017-02-09 12:14:30 -05:00
Hans-Kristian Arntzen
bd7c47a071 Add force no external validation path to HLSL as well. 2017-02-05 11:23:09 +01:00
Hans-Kristian Arntzen
70743b9be4 Disable xcrun validation on Travis for now. 2017-02-05 11:13:09 +01:00
Hans-Kristian Arntzen
5dd7c04195 Merge branch 'master' of git://github.com/brenwill/SPIRV-Cross into pr-109 2017-02-05 10:59:44 +01:00
Hans-Kristian Arntzen
9cb8616c31 Do not use write/read counters for "global" parameters.
Fixes device const & SSBO issues.
2017-02-05 10:50:14 +01:00
Hans-Kristian Arntzen
4ca769b546 Merge branch 'msl_global-invocation-id' of git://github.com/Kangz/SPIRV-Cross into pr-105 2017-02-05 10:14:38 +01:00
Hans-Kristian Arntzen
6593a79fce Merge pull request #115 from KhronosGroup/for-loop-order-fix
For loop evaluation order fix.
2017-02-04 10:45:53 +01:00
Hans-Kristian Arntzen
24df8f0019 Run format_all.sh. 2017-02-04 10:26:26 +01:00
Hans-Kristian Arntzen
ad0c5c6e6c Make test script agnostic to newline convention.
Improves testability on Windows.
2017-02-04 10:19:44 +01:00
Hans-Kristian Arntzen
ab21dfb25b Fix execution order for for-loop emission.
In some cases, the compiler decided to emit continue block first,
which invalidated the expressions used by the condition.
Parameters to functions can be evaluated in any order which caused
"random" behavior.
2017-02-04 10:07:20 +01:00