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
c266429be9
Partially implement subgroup ops for HLSL SM 6.0.
...
Lots of stuff that needs tons of emulation, which I'm not going to
bother with.
2018-04-11 15:57:41 +02:00
Hans-Kristian Arntzen
382101bd05
Run format_all.sh.
2018-04-04 09:26:53 +02:00
Hans-Kristian Arntzen
e8e58844d4
Rewrite everything to use Bitset rather than uint64_t.
2018-03-12 13:24:14 +01:00
Hans-Kristian Arntzen
a803e5ae38
Deprecate set_options()/get_options() interface, replace it.
...
Replace with common/hlsl/msl instead. The old interface had some bad
interaction with overloading which meant you had to up-cast to base
class to be able to use set_options, which was awkward.
2018-03-09 15:25:25 +01:00
Hans-Kristian Arntzen
47d94ff8d9
Add FP16 to HLSL.
...
Cannot be used in buffer types, similar to mediump in GLSL.
half is useless, because it's 32-bit in FXC.
2018-03-07 10:21:25 +01:00
Hans-Kristian Arntzen
b380a2113a
Implement MatrixInverse on HLSL.
...
Copy-paste implementation from MSL. I assume it's correct.
2018-02-23 16:42:40 +01:00
Hans-Kristian Arntzen
f6d08e6113
Add workaround for PointCoord builtin on HLSL.
2018-02-23 15:58:35 +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
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
Bill Hollings
1c94715350
Update copyright dates to 2018 in main files.
2018-01-31 17:08:43 -05:00
Hans-Kristian Arntzen
9c72aa00c9
Overhaul barrier handling in GLSL.
2018-01-09 12:07:07 +01:00
Hans-Kristian Arntzen
5e9b53e354
Support VertexID/InstanceID in HLSL.
2017-12-06 11:01:32 +01:00
Hans-Kristian Arntzen
48f3fa4adb
Implement bitfield ops in HLSL.
2017-11-29 11:33:44 +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
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
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
ae236e7056
Add GroupSync() in HLSL.
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
Hans-Kristian Arntzen
f0200bb18d
Use packoffset in HLSL.
...
Rewrite how cbuffers are emitted.
2017-10-10 13:15:49 +02: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
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
7d7f4b3b50
Emit flattened loads and stores.
2017-08-15 09:15:23 +02: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
98c76eed69
Declare specialization constants in HLSL.
2017-07-29 22:13:27 +02:00
Hans-Kristian Arntzen
620da7b943
Add basic support for : register() declaration in HLSL.
2017-06-17 10:15:32 +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
947f7010c7
HLSL: Use emit_sampled_image_op instead.
2017-05-07 13:28:08 +02:00
Hans-Kristian Arntzen
686ac6812b
HLSL: Can pass down combined image samplers as arguments.
2017-05-07 13:22:16 +02:00
Hans-Kristian Arntzen
59ad08429b
HLSL: Add test for passing down separate image and samplers to functions.
2017-05-07 12:53:51 +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
2b4c3db7e3
Don't enable point_size_compat by default.
2017-05-04 10:32:43 +02:00
Hans-Kristian Arntzen
17d88ca928
Add compatibility option for PointSize in HLSL.
...
If we opt-in to it, PointSize can be ignored to avoid more annoying
workarounds.
2017-05-04 10:12:14 +02:00
Robert Konrad
8446631171
Support cube maps in HLSL
2017-04-21 14:54:03 +02:00
Robert Konrad
fd9b589469
Support textureProj in HLSL4/5
2017-04-20 13:37:38 +02:00
Hans-Kristian Arntzen
9bad477f16
Add vector-less IR construction to subclasses as well.
2017-04-01 16:08:19 +02:00
Robert Konrad
a7e2a69a6f
Add bit casting to HLSL
2017-03-24 14:13:59 +01:00
Hans-Kristian Arntzen
b8bda45802
Add test case for interpolation qualifiers in HLSL.
2017-03-21 13:48:50 +01:00
Hans-Kristian Arntzen
439fa9f4a2
Handle I/O blocks separately from regular inputs and outputs.
2017-03-21 13:48:50 +01:00
Hans-Kristian Arntzen
61c31c6054
Make use of explicit locations in HLSL.
2017-03-21 13:48:50 +01:00
Hans-Kristian Arntzen
bdea1a444a
Begin rewriting how HLSL deals with inputs and outputs.
2017-03-21 13:48:50 +01:00
Hans-Kristian Arntzen
bcf2303ba0
Do not emit storage qualifiers for local variables.
...
Metal backend uses local variables to implement global variables.
Do not emit storage qualifiers for any variable which is declared inside
a function.
2017-02-24 11:15:34 +01:00