Commit Graph

1797 Commits

Author SHA1 Message Date
Hans-Kristian Arntzen
e92020819e Add reflection support for separate textures and samplers. 2016-09-10 13:05:35 +02:00
Hans-Kristian Arntzen
32b463f740 Only check for image load/store if sampling type is 2.
uniform texture2D is sampling type 1.
2016-09-10 13:00:07 +02:00
Hans-Kristian Arntzen
b6847168b2 Update test suite for latest glslang. 2016-09-10 12:53:41 +02:00
Bill Hollings
b4ce4e4b2f MSL handle input structs originating from HLSL. 2016-08-31 22:51:51 -04:00
Bill Hollings
cf476f36d1 Merge MSL with upstream. 2016-08-31 21:00:56 -04:00
Hans-Kristian Arntzen
bf41aeccb3 Merge pull request #45 from KhronosGroup/eliminate-dead-variables
Implement dead variable elimination.
2016-08-26 13:54:14 +02:00
Hans-Kristian Arntzen
885c24fab5 Use correct types in C++ in/out variables. 2016-08-26 13:43:21 +02:00
Hans-Kristian Arntzen
f61a5d1e5d Implement dead variable elimination. 2016-08-26 12:58:50 +02:00
Hans-Kristian Arntzen
bd5eb1d2c6 Merge pull request #42 from KhronosGroup/legacy-frag-data-fix
Fix legacy GLSL output with gl_FragData.
2016-08-18 13:06:44 +02:00
Hans-Kristian Arntzen
6ae838c192 Fix legacy GLSL output with gl_FragData.
If the source GLSL file accessed gl_FragData, we got double up
with array access, giving invalid GLSL.
2016-08-18 12:55:19 +02:00
Robert Konrad
1a48d7d4fc Output code for OpFMod in HLSL when required 2016-08-18 12:54:22 +02:00
Robert Konrad
8e9bf1f7af Implement some common GLSL lib insts in HLSL
Because some are the same and some are not.
2016-08-18 12:40:35 +02:00
Robert Konrad
7534b224d9 Add remaining matrix multiplication ops for HLSL 2016-08-18 11:45:50 +02:00
Robert Konrad
f3740a00ee Support HLSL shader models > 3 2016-08-18 00:51:12 +02:00
Hans-Kristian Arntzen
15679c724f Range check Compiler::get_member_decoration. 2016-08-17 11:35:34 +02:00
Robert Konrad
95a716f7de Adjust HLSL vertex shader positions
Pixel positions (because of D3D9 half-pixel positions)
and depth (adjust to -1/1).
Optionally using D3D11 pixel positions and no depth
adjustment still to do.
2016-08-16 00:27:39 +02:00
Robert Konrad
a896868215 Sort variables in HLSL input/output structs
To make binding numbers the same in all
shader stages.
2016-08-15 20:33:10 +02:00
Robert Konrad
da5f99bb6d Handle matrix times vector ops correctly in HLSL 2016-08-14 23:54:51 +02:00
Robert Konrad
d2b29c900e Add basic HLSL texture support 2016-08-14 23:09:06 +02:00
Robert Konrad
e9cd04e8ec Format code 2016-08-14 22:02:38 +02:00
Robert Konrad
80fcf554f9 Handle HLSL input/output 2016-08-14 21:33:32 +02:00
Robert Konrad
096d46f62c Start supporting proper HLSL type names 2016-08-14 20:28:52 +02:00
Robert Konrad
02fd8e92ab Use input/output structs for HLSL 2016-08-14 17:58:56 +02:00
Robert Konrad
45270f618f Start on HLSL using a CompilerGLSL descendant 2016-08-14 16:21:43 +02:00
Hans-Kristian Arntzen
1c78f353a4 Merge pull request #39 from KTXSoftware/master
Change variable names beginning with gl_ in GLSL
2016-08-13 23:41:50 +02:00
Robert Konrad
3a40860869 Remove unused variable in replace_illegal_names 2016-08-13 22:56:53 +02:00
Robert Konrad
866cb014d1 Never try to rename remapped variables
Because remapping is used to map to builtins.
2016-08-13 22:56:08 +02:00
Hans-Kristian Arntzen
0eb89ecce0 Fix mistaken nullptr returned instead of empty string. 2016-08-13 10:31:29 +02:00
Robert Konrad
7693656d68 Change variable names beginning with gl_ in GLSL
Using old-school GLSL as input containing code ala
"gl_FragColor = whatever" resulted in illegal
declarations ala "out vec4 gl_FragColor;".
2016-08-13 00:14:52 +02:00
Hans-Kristian Arntzen
b34a0067a2 Merge pull request #36 from KTXSoftware/master
Do not try to pump OpLine instructions into a block
2016-08-12 11:52:11 +02:00
Robert Konrad
8f7c1af046 Do not try to pump OpLine instructions into a block
When the SPIR-V includes metadata for debugging
(aka OpLine instructions) the CompilerError at
line 1588 was eventually triggered.
2016-08-10 02:43:51 +02:00
Bill Hollings
0dfeabc6d2 Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross 2016-08-01 15:38:57 -04:00
Hans-Kristian Arntzen
85fb618f96 Merge pull request #35 from KhronosGroup/multiple-entry-points-impl
Add support for multiple entry points.
2016-07-29 08:03:49 +02:00
Hans-Kristian Arntzen
042475e88e Add support for multiple entry points.
- Only consider I/O variables if part of OpEntryPoint.
- Keep a safe fallback if #entry-points is 1 to avoid potentially
  breaking previously working shaders.
2016-07-28 13:18:55 +02:00
Hans-Kristian Arntzen
121f69927a Merge pull request #33 from KhronosGroup/fp64
Add support for FP64/INT64/UINT64
2016-07-27 11:32:27 +02:00
Hans-Kristian Arntzen
fc2230ffff Add support for int64/uint64 in GLSL. 2016-07-27 11:31:58 +02:00
Hans-Kristian Arntzen
fa0255c43b Add support for FP64 in GLSL. 2016-07-27 11:31:54 +02:00
Bill Hollings
7c255dde4d Merged with upstream 2016-07-24 22:40:20 -07:00
Hans-Kristian Arntzen
81d00da573 Implement OpImageQueryLevels. 2016-07-19 09:28:32 +02:00
Hans-Kristian Arntzen
1b4f7662d3 Add support for OpImageQueryLod. 2016-07-19 09:23:49 +02:00
Hans-Kristian Arntzen
5c24d99ff2 Add distinction between type_id and base_type_id in resource interface.
type_id was not intuitive and did not allow for parsing array sizes of
variables.

Expose another member, base_type_id which will provide the base type
suitable for parsing metadata such as decorations and type_id will now
point to the actual type which includes full type information such as
arrays and so on.
2016-07-12 21:20:18 +02:00
Hans-Kristian Arntzen
7d8add33e4 Avoid conflict with C99 keyword. 2016-07-12 15:00:10 +02:00
Hans-Kristian Arntzen
36a0b63f28 Fix various corner cases with expression dependencies.
There was a potential problem if variables were invalidated and SPIR-V
read expressions which depended on other expression which in turn depended on the
invalidated variable.

Also fixes issue where variables were considered immutable if they were
forwardable. This allowed some incorrect optimizations to slip through.
2016-07-12 14:50:23 +02:00
Hans-Kristian Arntzen
2bfe98c35d Fix image-format test to use desktop extension. 2016-07-12 09:37:31 +02:00
Hans-Kristian Arntzen
606ecce0f1 Handle all desktop image formats. 2016-07-12 09:35:15 +02:00
Hans-Kristian Arntzen
3265e1fc3f Implement subpassInputMS loading. 2016-07-11 13:36:11 +02:00
Hans-Kristian Arntzen
7af13b68d5 Support ImageRead/Write on multisampled images. 2016-07-11 13:26:22 +02:00
Hans-Kristian Arntzen
2c7d2e4d3c Implement OpImageQuerySamples. 2016-07-11 12:47:46 +02:00
Bill Hollings
c45e74f1c0 MSL support global input vars as automatic function args.
Add Decoration qualified_alias element.
Virualize Compiler to_name() function.
MSL use qualified_alias instead of alias when inside entry-point function.
2016-07-08 12:39:22 -04:00
Hans-Kristian Arntzen
416566bab6 Throw if word count of SPIR-V instruction is 0.
Avoids infinite loop on garbage SPIR-V files.
2016-07-08 10:47:03 +02:00