Commit Graph

586 Commits

Author SHA1 Message Date
Bill Hollings
8f6df770ce CompilerMSL map many GLSL functions to MSL functions.
Add bool members is_read and is_written to SPIRType::Image.
Output correct texture read/write access by marking whether textures
are read from and written to by the shader.
Override bitcast_glsl_op() to use Metal as_type<type> functions.
Add implementations of SPIR-V functions inverse(), degrees() & radians().
Map inverseSqrt() to rsqrt().
Map roundEven() to rint().
GLSL functions imageSize() and textureSize() map to equivalent
expression using MSL get_width() & get_height() functions.
Map several SPIR-V integer bitfield functions to MSL equivalents.
Map SPIR-V atomic functions to MSL equivalents.
Map texture packing and unpacking functions to MSL equivalents.
Refactor existing, and add new, image query functions.
Reorganize header lines into includes and pragmas.
Simplify type_to_glsl() logic.
Add MSL test case vert/functions.vert for added function implementations.
Add MSL test case comp/atomic.comp for added function implementations.
test_shaders.py use macOS compilation for MSL shader compilation validations.
2017-05-19 18:14:08 -04:00
Bill Hollings
f9f87ca391 CompilerMSL output [[point_size]] attribute for BuiltInPointSize member by default.
CompilerMSL::Options::is_rendering_points defaults to true.
2017-05-05 16:13:55 -04:00
Hans-Kristian Arntzen
860a044562 Merge pull request #175 from KhronosGroup/hlsl-fixes
Various HLSL fixes
2017-05-04 10:44:00 +02:00
Hans-Kristian Arntzen
2b4c3db7e3 Don't enable point_size_compat by default. 2017-05-04 10:32:43 +02:00
Hans-Kristian Arntzen
851acf3712 Avoid boolean mix in HLSL.
Update glslang travis checkout as boolean mix support was broken on that commit.
2017-05-04 10:28:30 +02:00
Hans-Kristian Arntzen
17d88ca928 Add compatibility option for PointSize in HLSL.
If we opt-in to it, PointSize can be ignored to avoid more annoying
workarounds.
2017-05-04 10:12:14 +02:00
Hans-Kristian Arntzen
9e85815394 Merge pull request #166 from KhronosGroup/decoration-offset
Add support for querying binary offsets of decorations in SPIR-V.
2017-04-26 12:06:17 +02:00
Hans-Kristian Arntzen
173dc9e8c9 Build fix. 2017-04-26 09:25:28 +02:00
Hans-Kristian Arntzen
93fe19c0f7 Add support for querying binary offsets of decorations in SPIR-V.
Facilitates easy SPIR-V patching when needed.
2017-04-26 09:24:24 +02:00
Hans-Kristian Arntzen
85c5f50be4 Merge pull request #167 from brenwill/master
CompilerMSL round floating point tex coords for read() and tex array index.
2017-04-26 09:21:12 +02:00
Bill Hollings
561dc036f2 CompilerMSL round floating point tex coords for read() and tex array index. 2017-04-25 16:32:16 -04:00
Bill Hollings
012cb25b7d CompilerMSL remove option to flip fragment coordinates. 2017-04-25 11:25:50 -04:00
Hans-Kristian Arntzen
c5a2af365f Merge pull request #161 from Kode/fix
Shader model 4/5 style texture sampling
2017-04-24 12:21:23 +02:00
Robert Konrad
bb9dbd4149 Support texelFetch in HLSL 2017-04-24 11:08:55 +02:00
Robert Konrad
434d9b8803 Support array textures in HLSL 2017-04-24 10:02:03 +02:00
Robert Konrad
7d8be83cb3 Support shadow sampling in HLSL 2017-04-21 17:52:04 +02:00
Robert Konrad
585339f3cd Test HLSL cube maps 2017-04-21 14:55:01 +02:00
Robert Konrad
8446631171 Support cube maps in HLSL 2017-04-21 14:54:03 +02:00
Robert Konrad
ff12d57765 Support 1D/2D textures in HLSL2/3 2017-04-21 14:35:30 +02:00
Robert Konrad
9020c48076 Support and test 1D and 3D textures in HLSL4/5 2017-04-21 14:05:17 +02:00
Robert Konrad
23d993546c Add texture sampling HLSL test 2017-04-21 11:46:10 +02:00
Robert Konrad
9aaf6b28dd Throw when sampling non-float textures in HLSL 2017-04-21 11:40:24 +02:00
Robert Konrad
1fe652da68 Improve shader model 2/3 texture sampling 2017-04-21 09:46:58 +02:00
Robert Konrad
612075176c Fix HLSL tex2D calls 2017-04-20 16:15:46 +02:00
Robert Konrad
de41ebf4d7 Simplify texture offset handling in HLSL 2017-04-20 16:04:02 +02:00
Robert Konrad
31afcbb4fe Force a recompile when a function is added to HLSL 2017-04-20 15:21:47 +02:00
Robert Konrad
f7dd57040e Correct and simplify HLSL texture types 2017-04-20 14:51:24 +02:00
Robert Konrad
fd9b589469 Support textureProj in HLSL4/5 2017-04-20 13:37:38 +02:00
Robert Konrad
8b516451f2 Uninformed attempt at mapping tex formats to HLSL 2017-04-20 11:39:38 +02:00
Robert Konrad
be4c919d08 Update HLSL test results 2017-04-18 15:17:55 +02:00
Robert Konrad
15807a6036 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross into fix 2017-04-18 15:06:09 +02:00
Robert Konrad
ec84e8832a Fix different HLSL sample calls 2017-04-18 14:55:38 +02:00
Robert Konrad
c5953e03ee Support shader model 4/5 type tex sampling 2017-04-18 14:17:05 +02:00
Hans-Kristian Arntzen
8a2d980fa1 Merge pull request #157 from KhronosGroup/vector-less-ctors
Add vector-less IR construction to subclasses as well.
2017-04-05 09:10:25 +02:00
Bill Hollings
7703b746f7 CompilerMSL vectorless constructor uses vectorless attribute and resource bindings. 2017-04-04 16:38:17 -04:00
Hans-Kristian Arntzen
d18edc3cb5 Merge pull request #159 from Kode/fix
Fix HLSL matrix unrolling
2017-04-03 22:05:31 +02:00
Robert Konrad
3804292c43 Merge branch 'master' of github.com:KhronosGroup/SPIRV-Cross into fix 2017-04-03 11:43:35 +02:00
Robert Konrad
1fb2315a35 Add a test for HLSL matrix unrolling 2017-04-03 11:42:36 +02:00
Robert Konrad
61b561772c Fix HLSL matrix unrolling 2017-04-03 11:38:15 +02:00
Hans-Kristian Arntzen
ec5f3ec4b2 Merge pull request #158 from KhronosGroup/separate-sampler-buffer
Fix case where samplerBuffer is emitted without combined sampler.
2017-04-02 11:13:27 +02:00
Hans-Kristian Arntzen
543e380d90 Fix case where samplerBuffer is emitted without combined sampler. 2017-04-02 11:03:07 +02:00
Hans-Kristian Arntzen
9bad477f16 Add vector-less IR construction to subclasses as well. 2017-04-01 16:08:19 +02:00
Hans-Kristian Arntzen
46f4695fb7 Merge pull request #156 from kayru/ir_array_ctor
Added a Compiler ctor that takes IR as raw array and count
2017-04-01 14:44:47 +02:00
Yuriy O'Donnell
ae8de51138 Added a Compiler ctor that takes IR as raw array and count
This avoids the need to construct a temporary std::vector on the application side just to create a Compiler instance if application itself doesn't use STL containers.
2017-04-01 14:35:42 +02:00
Hans-Kristian Arntzen
af75c7585a Merge pull request #155 from KhronosGroup/cfg-parameter-preserve
Preserve function arguments if variable is only conditionally written.
2017-03-25 16:51:19 +01:00
Hans-Kristian Arntzen
c609eab443 Fix includes. 2017-03-25 16:43:26 +01:00
Hans-Kristian Arntzen
7193e9f500 Use --msl in Travis script. 2017-03-25 16:30:46 +01:00
Hans-Kristian Arntzen
bf5c07532c Run format_all.sh. 2017-03-25 16:28:44 +01:00
Hans-Kristian Arntzen
b2c2e6483b Analyze parameter preservation for functions.
This is kinda tricky, because if we only conditionally write to a
function parameter variable it is implicitly preserved in SPIR-V, so we must force
an in qualifier on the parameter to get the same behavior in GLSL.
2017-03-25 16:25:30 +01:00
Hans-Kristian Arntzen
a5546e9963 Merge pull request #154 from KhronosGroup/bitfield-fix
Fix bitfield functions.
2017-03-25 15:52:54 +01:00