Hans-Kristian Arntzen
1c6df1b7b4
Use _m* for member names without OpMemberName.
...
Member names could conflict with type names in stripped modules with
very large structs.
2017-07-29 21:44:20 +02:00
Hans-Kristian Arntzen
0d14448b4d
Minor optimization of enclose_expression.
2017-07-25 18:25:03 +02:00
Hans-Kristian Arntzen
6ff9007311
Fix unary enclosures.
2017-07-24 10:17:19 +02:00
Hans-Kristian Arntzen
c8d60914c4
Add support for SampleId/SampleMask/SamplePosition builtins.
2017-07-24 10:07:31 +02:00
Hans-Kristian Arntzen
df6aa0e609
Support SampleCmpLevelZero on cubes as well.
2017-07-24 09:28:24 +02:00
David Srbecky
edec5ea137
Add "texture" to the keyword list.
...
I have encountered several shaders where people use "texture" as
local variable (old shaders from times when it was not build-in).
2017-06-27 15:35:47 +01:00
Hans-Kristian Arntzen
0aac31bda1
Remove remnants of old OpCompositeInsert hack.
2017-06-26 22:58:41 +02:00
David Srbecky
77b5b4446b
Always make a copy when handling OpCompositeInsert
...
The modified object might not be mutable (e.g. shader input).
Added a test for the case when this happens.
2017-06-26 18:32:53 +01:00
Hans-Kristian Arntzen
d38b1b086a
Fix typo.
2017-06-23 09:50:01 +02:00
Hans-Kristian Arntzen
7bb749142c
Run format_all.sh.
2017-06-23 09:46:15 +02:00
Hans-Kristian Arntzen
ad2b7c05e7
Implement workaround for textureLod on 2D array shadow.
...
This does not exist in GLSL, but it exists in HLSL if LOD == 0.0.
2017-06-23 09:45:42 +02:00
Hans-Kristian Arntzen
b0f7deedec
Run format_all.sh.
2017-06-17 10:56:24 +02:00
Hans-Kristian Arntzen
978901f9e4
Avoid ugly workaround for separate shadow samplers in GLSL/HLSL.
2017-06-17 10:54:59 +02:00
rob
fb1820e2f5
Geometry shader core since GLSL 150
2017-06-17 10:06:46 +09:00
Bill Hollings
6f3381a5d3
Fixes from review of PR #190 .
2017-06-01 16:29:39 -04:00
Bill Hollings
ba245697f1
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
2017-06-01 10:20:00 -04:00
Hans-Kristian Arntzen
326a7ffdf0
Check multidimensional extension in type_to_glsl_constructor.
2017-05-31 10:00:52 +02:00
Hans-Kristian Arntzen
470ae7a7f6
Add multidimensional array flattening test.
2017-05-31 10:00:52 +02:00
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
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
c1b8154f2c
CompilerMSL fix variables used in interface blocks aren't resolved correctly ( #179 ).
2017-05-22 21:41:19 -04:00
Bill Hollings
542e8c37ad
Edits resulting from review of PR #186 .
2017-05-22 13:38:23 -04:00
Hans-Kristian Arntzen
167fffd4af
Enforce the standard builtin array names.
2017-05-22 15:55:42 +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
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
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
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
543e380d90
Fix case where samplerBuffer is emitted without combined sampler.
2017-04-02 11:03:07 +02:00
Hans-Kristian Arntzen
6801af4dce
Fix bitfield functions.
2017-03-25 15:38:20 +01:00
Hans-Kristian Arntzen
f4749df09a
Merge pull request #151 from Kode/fix
...
Transform more functions for HLSL
2017-03-24 16:13:34 +01:00
Robert Konrad
cb637db5d6
Handle GL_ARB_derivative_control
2017-03-24 15:58:54 +01:00
Robert Konrad
f3a82778f9
Fix OpLogicalNot in HLSL
2017-03-24 15:00:48 +01:00
Robert Konrad
9ec9dd0647
Add dFd(x/y)(Fine/Coarse) to GLSL
2017-03-24 13:59:19 +01:00
Hans-Kristian Arntzen
840a72d47a
Workaround empty struct declaration and empty IO variables.
2017-03-24 10:03:11 +01:00
Robert Konrad
ec39647d92
Check for legal lod id
...
And avoid passing superfluous has_lod parameter.
2017-03-24 09:26:02 +01:00
Robert Konrad
9760f1544c
Throw when an lod value is used but not supported
...
Plus requested changes.
2017-03-23 14:43:54 +01:00
Robert Konrad
edfc297179
Put check for lod legality in its own function
...
Also add requested code style changes.
2017-03-23 13:25:24 +01:00
Robert Konrad
3f74503aca
Prefer plain texture2D in legacy es vertex shaders
...
WebGL supports lod texture funcs only in fragment
shaders but SPIR-V supports only lod texture funcs
in vertex shaders. This reverts calls which were
forced (infered from using a 0 constant) to use
an lod to plain calls in vertex shaders when
using legacy es.
2017-03-23 10:11:45 +01:00
Hans-Kristian Arntzen
099f307123
Add traversal for active builtin variables.
...
Refactor some ugly type-copying for access chains.
2017-03-21 13:48:28 +01:00
Hans-Kristian Arntzen
75391f9a68
Handle vector variants of OpLogicalAnd/Or/Not.
2017-03-20 22:45:40 +01: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
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
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