Граф коммитов

452 Коммитов

Автор SHA1 Сообщение Дата
Hans-Kristian Arntzen b5ed706860 Hoist out variable scope analysis. 2018-07-05 10:42:05 +02:00
Hans-Kristian Arntzen c26c41b26b Make the CFGs for all active functions available.
Will make writing other CFG-depended stuff easier.
2018-07-04 17:26:53 +02:00
Hans-Kristian Arntzen e044732896 Support OpTypeImage with depth == 2 (unknown) properly.
Track which OpSampledImages are ever used with Dref opcodes.
2018-07-04 14:26:23 +02:00
Hans-Kristian Arntzen af2d3abd03 Fail more gracefully with some unsupported opcodes. 2018-07-02 13:22:21 +02:00
Hans-Kristian Arntzen 9ddbd5aff6 Run format_all.sh. 2018-06-28 23:00:26 +02:00
Hans-Kristian Arntzen f1752e58e1 Add basic namespace to internal macros.
Some projects build SPIRV-Cross as a single translation unit
and this causes a lot of warnings because the same macro is redeclared
multiple times in the different backends. This make sure that each
backend has its own namespace for internal macros.
2018-06-28 22:57:52 +02:00
Bill Hollings f66507a701 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross 2018-06-25 10:52:15 -04:00
Hans-Kristian Arntzen 0ea5e0549e
Merge pull request #615 from JustSid/master
Added support for shadowXY() sample instructions in legacy GLSL
2018-06-25 11:52:45 +02:00
Sidney Just 5ac55ee735 Fixed emission of some legacy texture ops without requiring the appropriate extensions 2018-06-25 02:11:46 -07:00
Sidney Just ceec708b89 Added better fallbacks for legacy textureProjLod() and textureProjLodOffset() generation 2018-06-25 02:06:45 -07:00
Hans-Kristian Arntzen 994f789465
Merge pull request #624 from KhronosGroup/fix-619
Support branch/loop hints in HLSL.
2018-06-25 10:53:52 +02:00
Hans-Kristian Arntzen 33c61d2abe Support branch/loop hints in HLSL. 2018-06-25 10:33:13 +02:00
Hans-Kristian Arntzen ffa9133d77 Support ternary expressions in OpSpecConstantOp. 2018-06-25 09:49:13 +02:00
Bill Hollings e091031613 CompilerMSL pass builtin struct members into functions.
Add and use Compiler::get_non_pointer_type() convenience functions.
2018-06-24 15:06:12 -04:00
Hans-Kristian Arntzen d94d20f4f3 Deal with some builtins being declared with wrong signedness. 2018-06-22 11:30:56 +02:00
Sidney Just 0f62b5dc1e Moved check for depth texture and shadowXY emission completely to legacy_tex_op() 2018-06-22 01:57:25 -07:00
Sidney Just 447a253ce7 Simplified check for depth texture 2018-06-22 01:57:19 -07:00
Hans-Kristian Arntzen b29629fd46 Add support to remove SPIRV_Cross_BaseInstance uniform. 2018-06-22 10:01:38 +02:00
Hans-Kristian Arntzen 040204d65c Fix warnings and run format_all.sh. 2018-06-22 09:41:43 +02:00
Sidney Just f6dad78c99 Added support for shadowXY() sample instructions in legacy GLSL 2018-06-22 00:28:40 -07:00
Brad Davis 762040084d More feedback 2018-06-20 10:25:38 -07:00
Brad Davis d0a67ba6a7 Code consolidation, const correctness, faster regression testing 2018-06-20 09:20:45 -07:00
Brad Davis 3a825349bc More cleanup 2018-06-20 09:20:45 -07:00
Brad Davis 6c88b0048b PR feedback 2018-06-20 09:20:45 -07:00
Hans-Kristian Arntzen 9d31154917 Deal with switch case labels which share a block. 2018-06-20 10:49:28 +02:00
Bill Hollings ab2ea93e35 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross 2018-06-12 11:42:56 -04:00
Bill Hollings 9b4defe202 CompilerMSL support matrices & arrays in stage-in & stage-out.
Support flattening StorageOutput & StorageInput matrices and arrays.
No longer move matrix & array inputs to separate buffer.
Add separate SPIRFunction::fixup_statements_in & SPIRFunction::fixup_statements_out
instead of just  SPIRFunction::fixup_statements.
Emit SPIRFunction::fixup_statements at beginning of functions.
CompilerMSL track vars_needing_early_declaration.
Pass global output variables as variables to functions that access them.
Sort input structs by location, same as output structs.
Emit struct declarations in order output, input, uniforms.
Regenerate reference shaders to new formats defined by above.
2018-06-12 11:41:35 -04:00
Hans-Kristian Arntzen 58fab58e5e Do not unpack transposed matrices. 2018-06-12 09:43:47 +02:00
Hans-Kristian Arntzen 192a882df3 Also unpack regular unary/binary operations on MSL.
Apparently MSL gets confused when you have packed_float3 op float3 ...
2018-06-11 16:23:09 +02:00
Hans-Kristian Arntzen b86bd0a265 Unpack expressions when used in functions on MSL.
OSX 10.14 broke (?) how overload resolution works,
so overloading e.g. dot(float3, packed_float3) no longer works.

Fix this by unpacking expressions before various func ops.
This fix might need to be applied elsewhere, but do so later if needed.
2018-06-11 10:56:45 +02:00
Hans-Kristian Arntzen 6bcc890e63 Sanitize underscores in general, not just for members. 2018-06-04 10:13:57 +02:00
Hans-Kristian Arntzen 3a9b045dc3 Various maintenance fixes.
- Do not emit set = in GLSL, even when non-zero.
- Fix warning on tautological comparison.
- Expose get_buffer_block_flags as mentioned in reflection guide.
2018-06-03 12:00:22 +02:00
Hans-Kristian Arntzen f65120c147 Deal with packed expressions in more scenarios.
Make a new "to_extract_component_expression" helper.
2018-05-25 10:57:02 +02:00
Jin Zhou 6b144cc609 handle OpSRem 2018-05-24 10:22:01 +02:00
Jin Zhou e792cd6160 no expression type for OpSRem
fix issue#582
2018-05-24 10:22:01 +02:00
Hans-Kristian Arntzen f1eacba244
Merge pull request #587 from zeux/master
Fix textureGrad compilation for legacy targets
2018-05-24 09:14:17 +01:00
Arseny Kapoulkine 91fd41816f Fix textureGrad compilation for legacy targets
textureGrad isn't part of core GL2 or GLES2. In desktop GL, it's
provided by GL_ARB_shader_texture_lod and is called texture2DGradARB; in
ES, it's provided by GL_EXT_shader_texture_lod and is called
texture2DGradEXT.

This change rewrites textureGrad similarly to textureProj as per above.
2018-05-23 14:06:37 -07:00
Hans-Kristian Arntzen bcaae84c76 Deal with scoping for Private variables. 2018-05-16 10:49:30 +02:00
Hans-Kristian Arntzen 26b887ec99 Fix atomic_compare_exchange_weak_explicit.
Need to emit a CAS loop.
Fix shared memory declaration.
Declare atomic ops with correct memory scope.
2018-05-15 16:04:21 +02:00
Hans-Kristian Arntzen 991b655c72 Declare OpSpecConstantOp up-front on relevant targets.
Required, since spec constants can include results from constant ops.
2018-05-15 14:20:16 +02:00
Hans-Kristian Arntzen 0617b98613 Run format_all.sh. 2018-05-15 11:16:35 +02:00
Hans-Kristian Arntzen 3951b9456f Fix SpecConstantComposite if input is SpecConstantOp. 2018-05-15 11:16:06 +02:00
Hans-Kristian Arntzen 01080365fa Use mediump on images in --vulkan-semantics as well. 2018-05-11 10:59:29 +02:00
Hans-Kristian Arntzen 7eba247864 Handle inout properly with split access chains.
Found some other issues. Had some bugs with variable writes not properly
invalidating if writes came from split access chains.
2018-05-11 10:15:42 +02:00
Hans-Kristian Arntzen b71f5dfc0c Fix split access chains for builtin arrays. 2018-05-08 15:34:20 +02:00
Pascal Muetschard aced6058b4 Don't limit GLSL identifiers with HLSL keywords.
- The HLSL compiler now has its own list of keywords in addition to
   the ones from GLSL.
 - Added "buffer", "precise", and "shared" to the GLSL keywords.
2018-05-07 10:58:52 -07:00
Hans-Kristian Arntzen 85a8f066f4 Do not use RMW rewrite for matrices.
Does not work on MSL.
2018-05-04 10:35:56 +02:00
Hans-Kristian Arntzen 17be3c652f Deal with fake overloads when using combined image samplers. 2018-05-02 10:36:00 +02:00
Hans-Kristian Arntzen f3e810b8b3 Fix OpCompositeConstruct with arrays in MSL. 2018-05-02 09:38:41 +02:00
Hans-Kristian Arntzen 7e23e69f2a Run format_all.sh. 2018-04-30 12:46:21 +02:00