Hans-Kristian Arntzen
6a0f6980ef
Set width when creating NumWorkgroups buffer.
2018-02-14 09:22:47 +01:00
Hans-Kristian Arntzen
18a594a76b
Implement subpass input support in HLSL.
2018-02-10 10:54:42 +01:00
Hans-Kristian Arntzen
00ccd590ee
Return arrays in HLSL/MSL by writing to an output variable instead.
2018-02-08 12:22:08 +01:00
Hans-Kristian Arntzen
9fa91f7e1c
Support returning arrays from functions in GLSL/MSL.
...
Not possible in HLSL apparently, need workaround ...
2018-02-08 12:22:08 +01:00
msiglreith
d096f5cafe
hlsl: Support custom root constant layout
2018-02-07 15:21:52 +01:00
Hans-Kristian Arntzen
18e8833eeb
Support gl_NumWorkgroups in HLSL.
2018-02-05 10:29:20 +01:00
twinaphex
59a12c7e71
Uniquely name these static functions
2018-02-03 23:23:30 +01:00
Hans-Kristian Arntzen
5d9df6a31c
Do not declare constant composites inline in HLSL.
...
Move arrays and structs out to their own global static constants.
Also, replace illegal names in HLSL as well.
2018-02-02 10:12:26 +01:00
Hans-Kristian Arntzen
988f00fe3c
Fix OpImage on OpSampledImages in HLSL.
2018-02-01 09:22:16 +01:00
Bill Hollings
1c94715350
Update copyright dates to 2018 in main files.
2018-01-31 17:08:43 -05:00
Hans-Kristian Arntzen
06041985d0
Fix HLSL regression with struct declaration.
...
It actually worked surprisingly. Fix it properly.
2018-01-23 16:36:20 +01:00
Hans-Kristian Arntzen
9c3d4e7c60
Rewrite barrier handling in HLSL.
2018-01-09 12:41:13 +01:00
Hans-Kristian Arntzen
9c72aa00c9
Overhaul barrier handling in GLSL.
2018-01-09 12:07:07 +01:00
Hans-Kristian Arntzen
1a5a755ce5
Flatten structs based on instance name rather than block name.
...
Block name is too brittle, optimizes will merge block types, making
flattening impossible with unique names.
2018-01-09 10:36:04 +01:00
Hans-Kristian Arntzen
c4e787ccf8
Merge pull request #378 from KhronosGroup/fix-371
...
Fix swizzling of scalar integers in HLSL.
2018-01-04 13:42:27 +01:00
Hans-Kristian Arntzen
4590c63b40
Fix swizzling of integers.
...
Add scalar swizzling to constant composites as well.
2018-01-04 13:16:56 +01:00
Hans-Kristian Arntzen
d9c0948a9c
Run format_all.sh.
2018-01-04 12:15:55 +01:00
Hans-Kristian Arntzen
ec1180f198
Support arrays in to_sampler_expression.
2018-01-04 12:14:18 +01:00
Hans-Kristian Arntzen
c7f4b1528f
Declare arrays of resources in HLSL.
2018-01-04 11:05:40 +01:00
Hans-Kristian Arntzen
950732512e
Fix compatibility with FXC.
2017-12-12 12:35:22 +01:00
Hans-Kristian Arntzen
cc532cb7b6
Use t-namespace for ByteAddressBuffer.
...
FXC caught it, but not glslang, hm ...
2017-12-11 13:55:26 +01:00
Hans-Kristian Arntzen
5e9b53e354
Support VertexID/InstanceID in HLSL.
2017-12-06 11:01:32 +01:00
Hans-Kristian Arntzen
aeeb0e3dd0
Support textureQueryLod in HLSL.
2017-12-01 13:30:31 +01:00
Hans-Kristian Arntzen
dbfa686990
Emit SampleCmpLevelZero for lod/grad variants of SampleCmp.
2017-11-29 12:38:13 +01:00
Hans-Kristian Arntzen
c65248fdce
Support image load-store without format in HLSL.
2017-11-29 12:14:06 +01:00
Hans-Kristian Arntzen
c405274e38
Run format_all.sh.
2017-11-29 12:00:48 +01:00
Hans-Kristian Arntzen
48f3fa4adb
Implement bitfield ops in HLSL.
2017-11-29 11:33:44 +01:00
Hans-Kristian Arntzen
e27f5775c5
Cannot support packDouble on HLSL, at least for now.
2017-11-27 15:06:15 +01:00
Hans-Kristian Arntzen
656af7e3ed
Implement unorm16/snorm16 packing in HLSL.
2017-11-27 15:03:40 +01:00
Hans-Kristian Arntzen
719ba63416
Add pack/unpack snorm8/unorm8.
2017-11-27 14:49:47 +01:00
Hans-Kristian Arntzen
6c7c680d01
Implement FP16 unpack/pack on HLSL.
2017-11-27 14:24:30 +01:00
msiglreith
f4bde2b3ef
HLSL: Support early fragment tests attribute
2017-11-21 14:51:03 +01:00
Hans-Kristian Arntzen
5352615ce1
Update tests.
2017-11-20 21:10:00 +01:00
Amer Koleci
adebd5ed09
Add samples register space and correct generated string.
2017-11-20 21:06:20 +01:00
Amer Koleci
01c42c739e
Support new hlsl 5.1 space for registers.
2017-11-20 21:06:20 +01:00
Hans-Kristian Arntzen
ce18d4ce74
Run format_all.sh.
2017-11-17 13:38:29 +01:00
Bill Hollings
e83e2b2217
CompilerMSL support and tests for OpUndef.
2017-11-15 22:44:42 -05:00
Hans-Kristian Arntzen
4427cb993d
Add support for renaming entry points.
2017-11-13 13:50:37 +01:00
Hans-Kristian Arntzen
f486142e36
Run format_all.sh.
2017-11-13 09:52:35 +01:00
Hans-Kristian Arntzen
56716a9752
Remap IO blocks as well.
2017-11-13 09:52:00 +01:00
Hans-Kristian Arntzen
4f88f9750f
Cleanups for HLSL vertex attribute remap.
...
Add CLI support as well.
2017-11-13 09:46:45 +01:00
Amer Koleci
7cf44099c9
Changes after github review.
...
Remap with binding instead of name.
2017-11-13 09:28:38 +01:00
Amer Koleci
7216d13620
Add overload compile method for hlsl with vertex attribute remap.
...
This adds remap to semantic and semantic_index as HLSL instead of always binding to TEXCOORD + binding_number.
2017-11-13 09:28:38 +01:00
Bill Hollings
bac657d873
Fixes from review of PR 321.
2017-11-07 15:38:13 -05:00
Amer Koleci
3404ee1690
Fix to_plain_buffer_length cast.
2017-11-06 19:58:20 +01:00
Hans-Kristian Arntzen
ca69b614e5
Fix some warnings on older GCC.
2017-11-06 09:49:52 +01:00
Hans-Kristian Arntzen
4a6d754f27
Run format_all.sh.
2017-10-26 17:43:03 +02:00
Hans-Kristian Arntzen
22e94913d4
Add test for row/col-major matrix read/write for HLSL.
2017-10-26 17:40:45 +02:00
Hans-Kristian Arntzen
afce030bf4
Add support for writing row/col-major matrices to RWByteAddressBuffer.
2017-10-26 17:16:32 +02:00
Hans-Kristian Arntzen
551424ce43
Support loading col/row-major matrices from ByteAddressBuffer.
2017-10-26 16:35:18 +02:00
Hans-Kristian Arntzen
a95295cb23
Remap swizzle for HLSL and RWBuffer.
2017-10-24 09:55:25 +02:00
Hans-Kristian Arntzen
f4f497dc85
Run format_all.sh.
2017-10-24 09:55:25 +02:00
Hans-Kristian Arntzen
ae236e7056
Add GroupSync() in HLSL.
2017-10-24 09:55:25 +02:00
Hans-Kristian Arntzen
85eb972259
Add some HLSL tests for atomics and image load store.
2017-10-24 09:55:25 +02:00
Hans-Kristian Arntzen
044d3c8911
Basic image load store and atomics.
2017-10-24 09:55:25 +02:00
James Ross-Gowan
1f16f0d260
Use 'static const' for spec constants in HLSL
...
If 'const' is used, the shader expects the variable to be backed by a
constant buffer. 'static const' is probably preferred for a value that
is initialized with a constant in the HLSL source code.
FXC also emits a warning for 'const' variables with initializers, since
'static const' was probably intended.
2017-10-21 19:19:32 +11:00
Hans-Kristian Arntzen
94ff355812
Fix some naming issues for stripped and flattened structs.
2017-10-10 17:32:26 +02:00
Hans-Kristian Arntzen
7464232f67
Run format_all.sh.
2017-10-10 16:13:03 +02:00
Hans-Kristian Arntzen
620d01c5d6
Generate decorations for row_major/column_major in HLSL.
2017-10-10 16:11:25 +02:00
Hans-Kristian Arntzen
6feff98295
Update HLSL cbuffer tests.
2017-10-10 15:37:53 +02:00
Hans-Kristian Arntzen
b9814a09bc
Add more robust HLSL packing support.
2017-10-10 15:23:07 +02:00
Hans-Kristian Arntzen
f0200bb18d
Use packoffset in HLSL.
...
Rewrite how cbuffers are emitted.
2017-10-10 13:15:49 +02:00
Hans-Kristian Arntzen
1079e7930b
Run format_all.sh.
2017-10-10 10:22:40 +02:00
Hans-Kristian Arntzen
d4727fe696
Stamp out all variants for mod().
2017-10-06 13:21:42 +02:00
Hans-Kristian Arntzen
eb58f67727
Only unroll matrices for vertex input.
...
Bandaid, might have to revisit this later.
2017-10-05 16:31:52 +02:00
Hans-Kristian Arntzen
84f8c9935b
Declare work group size constants in HLSL and MSL.
...
Technically not needed, but it does make compute code easier to read
compared to magical constants being used for work group size.
2017-09-29 10:15:33 +02:00
Hans-Kristian Arntzen
153fed031d
Add basic support for StorageClassStorageBuffer.
...
Needs more testing, but seems to work.
2017-09-28 13:29:57 +02:00
Hans-Kristian Arntzen
86eb874568
Implement specialization constants for work group sizes.
2017-09-28 11:33:30 +02:00
James Ross-Gowan
8805d08b31
Fix HLSL atan2() argument order
...
HLSL uses atan2(y, x) to represent the arctangent y/x, just like GLSL.
https://msdn.microsoft.com/en-us/library/windows/desktop/bb509575.aspx
2017-09-24 02:45:33 +10:00
Hans-Kristian Arntzen
9aa42a87af
Just emit textureSize variants we actually need.
2017-09-20 10:31:56 +02:00
Hans-Kristian Arntzen
1bc5b70752
Add exhaustive image query to HLSL.
...
Need to strip this down somehow ...
2017-09-20 10:00:13 +02:00
James Ross-Gowan
02e6be7288
Fix texture GatherRed/Green/etc. methods for SM 5.0
...
Unlike GLSL, the component is selected by calling a specific method.
2017-09-12 07:20:01 +10:00
James Ross-Gowan
fdbf794a67
Use the correct cbuffer binding for HLSL SM 4.0-5.0
2017-09-07 23:58:14 +10:00
Hans-Kristian Arntzen
713bd7c2b5
Run format_all.sh.
2017-08-28 09:01:03 +02:00
Hans-Kristian Arntzen
e8d2c8e710
Support samplerBuffer as function parameters in HLSL.
2017-08-21 10:26:44 +02:00
Hans-Kristian Arntzen
e8d5d71cad
Add sampler buffer support to HLSL.
2017-08-21 10:01:03 +02:00
Hans-Kristian Arntzen
945425eaa8
Add some access chain tests.
2017-08-15 10:23:04 +02:00
Hans-Kristian Arntzen
4375aa3fd2
Refactor out access chain reads.
...
Prepare for matrix, array and struct loads.
2017-08-15 10:12:08 +02:00
Hans-Kristian Arntzen
e2bb5b8959
Add test for compute shader builtins.
2017-08-15 09:35:23 +02:00
Hans-Kristian Arntzen
247ab1ce24
Declare ByteAddressBuffer/RWByteAddressBuffer.
2017-08-15 09:15:23 +02:00
Hans-Kristian Arntzen
7d7f4b3b50
Emit flattened loads and stores.
2017-08-15 09:15:23 +02:00
Hans-Kristian Arntzen
3cbdbec712
Begin implementing ByteAddressBuffer flattening for HLSL.
2017-08-15 09:15:23 +02:00
Bill Hollings
77f5812c55
Fix issue #239 : compilation of shaders-msl/frag/texture-proj-shadow.frag.
...
Remove unsupported sampler1DShadow from shaders-msl/frag/texture-proj-shadow.frag.
Improve error message response from unsupported depth texture formats.
Fix several integer cast warnings in unrelated code.
Run ./format_all.sh on unrelated files.
2017-08-11 14:54:58 -04:00
Hans-Kristian Arntzen
bdfa97a1cf
Unify vertex clip-coord fixups.
...
The different options were scattered around in different backends and
didn't really work right with CLI at all.
2017-08-03 13:02:59 +02:00
Hans-Kristian Arntzen
2abdc135c3
Declare undefined values up front.
...
They might potentially be used as part of OpStore in the SPIRV-Tools
inliner in some cases.
Implement these as declared variables but without any initializer.
2017-08-02 10:33:03 +02:00
Hans-Kristian Arntzen
98c76eed69
Declare specialization constants in HLSL.
2017-07-29 22:13:27 +02:00
Hans-Kristian Arntzen
c8d60914c4
Add support for SampleId/SampleMask/SamplePosition builtins.
2017-07-24 10:07:31 +02:00
Hans-Kristian Arntzen
d89d0e01fc
Run format_all.sh.
2017-07-24 09:29:20 +02:00
Hans-Kristian Arntzen
cf09eb3773
Consider different binding space for push constants.
2017-06-30 22:16:24 +02:00
Hans-Kristian Arntzen
ecf56cff2b
Add support for SM5.1 ConstantBuffer<T>.
2017-06-30 10:34:21 +02:00
Hans-Kristian Arntzen
de33d89074
Add explicit in/out locations everywhere.
...
Needed for newer glslang. With Vulkan semantics for SPIR-V, all
locations must be explicitly defined.
2017-06-21 09:39:08 +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
Hans-Kristian Arntzen
620da7b943
Add basic support for : register() declaration in HLSL.
2017-06-17 10:15:32 +02:00
Bill Hollings
ba245697f1
Merge branch 'master' of https://github.com/KhronosGroup/SPIRV-Cross
2017-06-01 10:20:00 -04:00
Robert Konrad
111a30a7d8
Fix shader model 2/3 texture sampling
2017-05-31 16:53:43 +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
Hans-Kristian Arntzen
08b3c674a9
Check size of name before testing for @count.
2017-05-09 09:30:30 +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