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
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
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
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
Hans-Kristian Arntzen
cc3aba52ba
Merge pull request #27 from KhronosGroup/remap-variables
...
Add support for generic remapping of variables
2016-07-06 11:32:56 +02:00
Hans-Kristian Arntzen
c972894cea
Be less conservative about which names are reserved.
2016-07-06 11:19:20 +02:00
Hans-Kristian Arntzen
078eec5894
Add support for generic remapping of variables.
2016-07-06 11:04:06 +02:00
Hans-Kristian Arntzen
8e63c770da
Add explicit support for remapping variables.
...
Will enable use of extensions like framebuffer fetch, last fragment
depth and so on.
2016-07-06 09:58:01 +02:00
Hans-Kristian Arntzen
d5dc5f3f1c
Fix issue with new glslang behavior for samplers as parameters.
...
Check case where storage class uniform is passed as function parameter.
2016-07-05 13:21:26 +02:00
Hans-Kristian Arntzen
3c285a15e0
Add support for reflecting execution modes.
2016-07-04 13:30:05 +02:00
Hans-Kristian Arntzen
05a97883d2
Don't emit invocation layout for invocations == 1.
2016-06-23 13:49:19 +02:00
Hans-Kristian Arntzen
4bb9f092ab
Only split expression in OpCompositeExtract if we forward the temporary.
2016-06-23 12:13:41 +02:00
Hans-Kristian Arntzen
9d4360fddf
Fix sampler2DMS texelFetch.
2016-06-22 12:35:58 +02:00
Hans-Kristian Arntzen
5f629276a7
Use Boolean instead of Bool.
...
Xlib.h header uses a very ugly define for Bool which conflicts with
SPIRV-Cross.
The hassle free solution is to use Boolean instead.
2016-06-05 20:13:45 +02:00
Hans-Kristian Arntzen
81a8fc1952
Add support for OpQuantizeF16.
2016-05-31 16:56:15 +02:00
Hans-Kristian Arntzen
c172a3507c
Add support for custom C++ interface names.
...
Mostly useful for baking several shaders into the same binary without
getting symbol collisions.
2016-05-30 21:45:16 +02:00
Hans-Kristian Arntzen
5bfbe0dc36
Add C++ samples to format_all script.
2016-05-30 21:34:18 +02:00
Hans-Kristian Arntzen
b96c3b002e
Merge pull request #16 from KhronosGroup/cpp-examples
...
[WIP] Initial set of C++ backend samples.
2016-05-30 21:31:43 +02:00
Hans-Kristian Arntzen
7620c65ed2
Add shared memory C++ sample.
2016-05-30 21:31:29 +02:00
Hans-Kristian Arntzen
8471ad55b2
Add atomics C++ sample.
2016-05-30 21:31:29 +02:00
Hans-Kristian Arntzen
1b5cef5f0e
Add first C++ backend sample.
2016-05-30 21:31:29 +02:00
Hans-Kristian Arntzen
5ba6296a51
Merge pull request #20 from KhronosGroup/std-array
...
Use std::array in C++ backend.
2016-05-28 20:27:16 +02:00
Hans-Kristian Arntzen
168e46fdf9
Use std::array in C++ backend.
...
Deals better with composite construction in C++
and also fixes a few bugs in GLSL backend with array-of-arrays.
2016-05-28 13:23:51 +02:00
Hans-Kristian Arntzen
4739d16e98
Remove workaround for overly conservative memory barriers.
...
This is now fixed in ESSL 3.10 backend of glslang, so we can remove the old workaround
of dropping full memory barriers.
Also fixes unrelated issue which newer glslang detects.
2016-05-28 11:46:33 +02:00
Hans-Kristian Arntzen
1a199f2ad0
Fixed typo in NumWorkGroups.
2016-05-28 11:30:38 +02:00
Hans-Kristian Arntzen
5ad4340976
Workaround case with identical structs but different types.
...
With the current workarounds for SSBO type aliasing, we have no choice
but to look at OpName in order to figure this out properly.
2016-05-28 09:47:52 +02:00
Hans-Kristian Arntzen
2eb6037ff3
Remove type aliases when emitting buffer blocks in C++.
...
C++ emits separate structs, which we must always emit properly.
2016-05-23 14:18:00 +02:00