Commit Graph

776 Commits

Author SHA1 Message Date
Hans-Kristian Arntzen
f0044b91a3 Add support for flattening multidimensional arrays. 2017-05-31 09:59:00 +02:00
Hans-Kristian Arntzen
842eff9647 Merge pull request #188 from KhronosGroup/sso
Add support for Separate Shader Objects
2017-05-31 09:55:34 +02:00
Hans-Kristian Arntzen
d93fcbdd9b Merge pull request #191 from hesiod/patch-1
Fix null pointer dereference
2017-05-30 21:57:48 +02:00
hesiod
ba381580af Fix null pointer dereference
write_string_to_file would try to write the error message that it failed to open a file stream to the very same file stream it just tried to open.
Fix this by writing to stderr instead.
2017-05-30 17:17:51 +03:00
Bill Hollings
b41e1482c8 Support emitting SPIR-V type declarations tuned for specified SPIR-V objects.
CompilerGLSL type_to_glsl() and image_type_glsl() functions support optional object ID.
Add SPIRType::Image::access member to support SPIR-V OpTypeImage access qualifier.
Remove SPIRType::Image::is_read and ::is_written members.
Use DecorationNonReadable and DecorationNonWritable to mark read/write access for image variables.
CompilerMSL emit access qualifiers per image variable, instead of per image type.
CompilerGLSL and CompilerHLSL behaviour is unchanged.
2017-05-29 20:45:05 -04:00
Bill Hollings
192bdc9516 CompilerMSL elide unused builtins from entry function input and output structs.
Add Compiler::has_active_builtin() function.
Update test reference shaders that included unused builtins.
2017-05-24 09:31:38 -04:00
Bill Hollings
d77de7ab80 CompilerMSL add support for MSL qualifiers on gl_ClipDistance and other array-based builtins. 2017-05-23 13:24:41 -04:00
Hans-Kristian Arntzen
20f7314881 Merge pull request #186 from brenwill/master
CompilerMSL map many GLSL functions to MSL functions
2017-05-23 17:35:12 +02:00
Bill Hollings
0f97ffd8be Fix merge conflicts with upstream master, plus fixes from review of PR #186. 2017-05-23 10:44:10 -04:00
Hans-Kristian Arntzen
a3b25d12cb Merge pull request #178 from KhronosGroup/msl-point-size
Implement more sophisticated check for point_size.
2017-05-23 17:30:44 +09:00
Hans-Kristian Arntzen
8d43908e66 Fix ternary statement. 2017-05-23 10:15:22 +02:00
Hans-Kristian Arntzen
91379fb0d0 Implement more sophisticated check for point_size. 2017-05-23 10:15:22 +02:00
Bill Hollings
c1b8154f2c CompilerMSL fix variables used in interface blocks aren't resolved correctly (#179). 2017-05-22 21:41:19 -04:00
Bill Hollings
a71c547b30 CompilerMSL remove pad_and_pack_uniform_structs option from both API and CLI tool. 2017-05-22 16:38:38 -04:00
Bill Hollings
542e8c37ad Edits resulting from review of PR #186. 2017-05-22 13:38:23 -04:00
Bill Hollings
94fdcecce9 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross 2017-05-22 11:57:25 -04:00
Hans-Kristian Arntzen
167fffd4af Enforce the standard builtin array names. 2017-05-22 15:55:42 +02:00
Hans-Kristian Arntzen
623eaebdf8 Add test shaders for SSO. 2017-05-22 15:53:38 +02:00
Hans-Kristian Arntzen
36650c890c Add separate shader object support.
Allow redeclaring gl_PerVertex for stage compatibility.
2017-05-22 15:53:21 +02:00
Hans-Kristian Arntzen
c3e6fdc579 Merge pull request #187 from KhronosGroup/spirv-1.2
Support SPIR-V 1.2.
2017-05-22 21:09:52 +09:00
Hans-Kristian Arntzen
e5595270c7 Support SPIR-V 1.2.
It's the default with recent spirv-as, so be more friendly.
2017-05-22 13:59:58 +02:00
Bill Hollings
d677e63860 Merge with upstream 2017-05-19 19:36:24 -04:00
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
Hans-Kristian Arntzen
a0d0a0ec9e Merge pull request #162 from KhronosGroup/hlsl-counter-buffer
Add interface for reflecting "magic" HLSL counter buffers.
2017-05-09 09:50:44 +02:00
Hans-Kristian Arntzen
4fef0f3227 Fix switch statement. 2017-05-09 09:41:17 +02:00
Hans-Kristian Arntzen
9c9e2674d2 Fix typo. 2017-05-09 09:38:33 +02:00
Hans-Kristian Arntzen
08b3c674a9 Check size of name before testing for @count. 2017-05-09 09:30:30 +02:00
Hans-Kristian Arntzen
ec45c9efb3 Add interface for reflecting "magic" HLSL counter buffers. 2017-05-09 09:21:54 +02:00
Hans-Kristian Arntzen
95d4cbcd8c Merge pull request #165 from KhronosGroup/hlsl-separate-image-sampler
HLSL: Support for separate image/samplers.
2017-05-07 13:48:35 +02:00
Hans-Kristian Arntzen
e897d154ac Cleanups. 2017-05-07 13:39:15 +02:00
Hans-Kristian Arntzen
947f7010c7 HLSL: Use emit_sampled_image_op instead. 2017-05-07 13:28:08 +02:00
Hans-Kristian Arntzen
686ac6812b HLSL: Can pass down combined image samplers as arguments. 2017-05-07 13:22:16 +02:00
Hans-Kristian Arntzen
59ad08429b HLSL: Add test for passing down separate image and samplers to functions. 2017-05-07 12:53:51 +02:00
Hans-Kristian Arntzen
f081fe1125 Fix separate sampler images in MSL. 2017-05-07 12:36:14 +02:00
Hans-Kristian Arntzen
36e1c470a2 Fix formatting. 2017-05-06 13:59:00 +02:00
Hans-Kristian Arntzen
89d57e15ba Add test case for combined depth image sampler in GLSL. 2017-05-06 13:56:45 +02:00
Hans-Kristian Arntzen
07ee7d09cb Fix deep call hierarchies in CombinedImageSamplerUsageHandler. 2017-05-06 13:53:06 +02:00
Hans-Kristian Arntzen
3eb8a34173 Declare variables and parameters with samplerShadow if necessary. 2017-05-06 13:35:02 +02:00
Hans-Kristian Arntzen
f4d7268565 GLSL will also need shadow state analysis.
Refactor stuff out to top-level.

Fix some bugs with combined shadow samplers in regular GLSL.
2017-05-06 13:21:35 +02:00
Hans-Kristian Arntzen
100e9d34b8 HLSL: Basic support for separate image/samplers. 2017-05-06 12:39:04 +02:00
Hans-Kristian Arntzen
e876cdf3ff Merge pull request #177 from brenwill/master
CompilerMSL output [[point_size]] attribute for BuiltInPointSize member by default.
2017-05-06 11:46:28 +02: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