Asuka
55dfbead2f
GLSL/HLSL: Support packUint2x32 and unpackUint2x32
2020-04-21 11:34:12 +02:00
Hans-Kristian Arntzen
c7b75a8fe6
MSL: Do not use base expression with PhysicalTypeID OpCompositeExtract.
...
Similar reasoning as packed expressions.
2020-04-07 18:25:44 +02:00
Hans-Kristian Arntzen
941cceedb4
Expose a query if samplers or images are comparison resources.
2020-04-03 17:43:42 +02:00
Hans-Kristian Arntzen
b691b7d1e3
Do not add NonWritable/NonReadable decorations for regular images.
2020-04-03 17:43:42 +02:00
Hans-Kristian Arntzen
b8905bbd95
Add support for forcefully zero-initialized variables.
...
Useful to better support certain platforms which require all variables
to be initialized to something.
2020-03-26 13:38:27 +01:00
Hans-Kristian Arntzen
04e877df12
GLSL: Implement GL_EXT_shader_framebuffer_fetch.
2020-03-19 14:53:39 +01:00
Hans-Kristian Arntzen
c2655ab291
Run format_all.sh.
2020-03-19 14:22:49 +01:00
Hans-Kristian Arntzen
05004a57ea
GLSL/HLSL: Fix nonuniform qualifier for SSBO atomics.
2020-03-19 12:05:27 +01:00
Hans-Kristian Arntzen
a3d3c80dd7
GLSL/HLSL: Implement nonuniform qualifier for image atomics.
2020-03-19 11:35:29 +01:00
Hans-Kristian Arntzen
01968c4486
Add option to disable storage image qualifier deduction.
2020-03-04 16:42:31 +01:00
Hans-Kristian Arntzen
30343f3e95
MSL: Reintroduce workaround for constant arrays being passed by value.
2020-02-24 13:22:52 +01:00
Hans-Kristian Arntzen
c9d4f9cd74
MSL: Add a workaround path to force native arrays for everything.
2020-02-24 12:47:14 +01:00
Hans-Kristian Arntzen
dfffbb1cf3
Compile fix on older compilers.
2020-01-27 15:56:47 +01:00
Hans-Kristian Arntzen
655312cb47
GLSL: Support GL_ARB_enchanced_layouts for XFB.
2020-01-27 13:11:38 +01:00
Hans-Kristian Arntzen
f9818f0804
Update license headers to 2020.
2020-01-16 15:24:37 +01:00
Hans-Kristian Arntzen
f79c1e2fed
Deal with illegal names in types as well.
...
- Fixes issue with clip_distance flattening in MSL where member to
flatten from would come from to_member_name, where it should have used
the builtin name directly. This member name was modified by this patch
and broke clip distance test shaders.
- Some cleanups with ir.meta, use ir.find_meta instead to not create
unnecessary hashmap nodes.
2020-01-16 10:34:49 +01:00
Hans-Kristian Arntzen
55fe6050fe
GLSL: Implement geometry shader passthrough extension.
2020-01-15 16:18:29 +01:00
Hans-Kristian Arntzen
5253da9e63
GLSL: Deal with sign in subgroup Min/Max operations.
2020-01-09 12:35:14 +01:00
Hans-Kristian Arntzen
c256525c7b
Run format_all.sh.
2020-01-08 14:27:34 +01:00
Hans-Kristian Arntzen
151ff1e870
HLSL: Implement stores for complex composites in ByteAddressBuffers.
2020-01-08 14:17:28 +01:00
Hans-Kristian Arntzen
ca9398c122
HLSL: Support loading complex composites from ByteAddressBuffer.
2020-01-08 13:05:56 +01:00
Hans-Kristian Arntzen
b522b409ae
Run format_all.sh.
2020-01-08 10:48:30 +01:00
Hans-Kristian Arntzen
93f3265fe0
MSL: Deal with packing vectors for vertex input/fragment output.
2020-01-07 14:14:31 +01:00
Hans-Kristian Arntzen
91e917b8ca
Fix Clang warnings.
2020-01-06 13:40:33 +01:00
Hans-Kristian Arntzen
cf725b4c63
Go through access chain path for OpCopyLogical.
...
We will need to deal with packing/unpacking data when copying from/to
complex types in MSL.
2020-01-06 12:29:44 +01:00
Hans-Kristian Arntzen
9012a39b60
Basic implementation of OpCopyLogical.
2020-01-06 11:47:26 +01:00
Hans-Kristian Arntzen
7c1e34f3b9
GLSL: Fix array of input patch variables.
...
Hoist out the hack to make array sizes unsized to a place where we can
differentiate patch variables from control point variables.
2019-12-10 12:02:12 +01:00
Hans-Kristian Arntzen
d7e612f91a
GLSL: Fix EmitStreamVertex/Primitive.
2019-12-09 10:49:48 +01:00
Hans-Kristian Arntzen
00d5c78447
Remove obsolete use of AtomicCounterMemoryMask.
2019-12-04 15:30:07 +01:00
Hans-Kristian Arntzen
67b2991451
Don't emit memoryBarrierShared() in workgroup control barriers.
...
This is implied in both GL and GLES. Emitting memoryBarrierShared() was
based on earlier confusion in the spec which has since been fixed and
clarified.
2019-12-04 15:06:19 +01:00
Hans-Kristian Arntzen
4edb99d476
Fix sign handling for S/UToF.
2019-11-28 13:55:28 +01:00
Hans-Kristian Arntzen
f5cb08c42f
Mark loop headers as complex as early as possible.
...
We had a case where loops were marked complex in a cascading fashion
where each loop iteration would discover one new complex loop. This was
a problem with three nested loops.
2019-11-26 11:01:39 +01:00
Hans-Kristian Arntzen
0b417b586a
HLSL: Report more explicitly which member failed validation.
...
This will be awkward to report in GLSL where we check multiple packing
standards, but for HLSL it should be easy since there's only CBuffer
packing standard to worry about.
2019-11-06 11:21:39 +01:00
Hans-Kristian Arntzen
a8d676f2e4
GLSL: Fix issue with array-of-array inputs in tess.
...
Only one dimension can be unsized and wrong dimension was used for
unrolling purposes.
2019-11-04 10:34:49 +01:00
Hans-Kristian Arntzen
8f13a3f4b1
MSL: Remove workaround for passing constant arrays to functions.
...
Arrays are value-types now, so remove the old workaround.
2019-10-28 12:14:43 +01:00
Hans-Kristian Arntzen
fa011f8547
MSL: Declare arrays with proper type wrapper.
...
Need to construct with value type spvUnsafeArray<T, N>({ elem0, elem1 })
to make array initialization work in complex scenarios.
2019-10-26 17:57:34 +02:00
Hans-Kristian Arntzen
3f569ed5ec
GLSL: Minor nit, check flushed_phi_variables with count().
2019-10-26 16:10:12 +02:00
Hans-Kristian Arntzen
9d18c82364
Clean up call to builtin_translates_to_nonarray.
...
get_decoration is better than poking in ir.meta manually.
2019-10-26 16:10:12 +02:00
Hans-Kristian Arntzen
3b5c4c7316
Implement constant empty struct correctly on all backends.
...
MSL actually supports empty structs, so enable that path as well.
2019-10-26 16:10:11 +02:00
Hans-Kristian Arntzen
8066d13599
MSL: Rewrite propagated depth comparison state handling.
...
Far cleaner, and more correct to run the traversal twice.
Fixes a case where we propagate depth state through multiple functions.
2019-10-26 16:10:11 +02:00
Hans-Kristian Arntzen
6edbf0c9e9
MSL: Minor cleanups for texture atomic emulation.
...
Storing pointers to internal objects is generally not done, IDs are
preferred.
2019-10-24 11:30:20 +02:00
Lukas Hermanns
6673a675ba
Simplified overriding of 'access_chain_internal' function in CompilerMSL.
2019-10-22 11:06:16 -04:00
Lukas Hermanns
84351d3aed
Merge remote-tracking branch 'upstream/master'
2019-10-21 18:55:36 -04:00
Hans-Kristian Arntzen
4550f18b37
Fix OpVectorExtractDynamic with spec constant op index.
...
We cannot lower this to a swizzle, keep it dynamically indexed.
2019-10-17 11:12:14 +02:00
Lukas Hermanns
2482ff708c
Merge remote-tracking branch 'upstream/master'
2019-10-14 11:06:15 -04:00
Hans-Kristian Arntzen
a9be92569f
HLSL: Fix unrolled S/G LE/LT/GE/GT opcodes.
...
Need to bitcast the unrolled expressions as well.
2019-10-14 16:08:39 +02:00
Hans-Kristian Arntzen
3bf9fa7ed6
GLSL: Deal correctly with bitwidth on integer compares.
2019-10-14 15:23:38 +02:00
Hans-Kristian Arntzen
b960ae3b70
HLSL: Partially implement Unordered compare.
...
We cannot correctly implement unordered equal/ordered not equal without
a lot of extra instructions which slows normal code down.
2019-10-14 15:15:03 +02:00
Hans-Kristian Arntzen
14a4b087fb
GLSL: Support unordered floating point compare.
...
There is no direct way to express this, so invert boolean results to
force any NaN -> true. glslang emits Ordered compare instructions
everywhere, and the GLSL spec is not clear on this, so assume this is
fine.
2019-10-14 13:48:22 +02:00
Hans-Kristian Arntzen
07e9501ae1
MSL: Fix regression with OpCompositeConstruct from std140 float[].
...
Simple fix, just need to use to_unpacked_expression rather than to_expression here to
deal with this.
2019-10-11 11:21:43 +02:00