dawn-cmake/test/intrinsics/gen
Ben Clayton e027e81bf2 writer/hlsl: Emit helper functions for storage class atomic intrinsics
By generating a helper function for these, we can keep the atomic expression pre-statement-free. This can help prevent for-loops from being transformed into while loops, which can upset FXC.

We can't do the same for workgroup storage atomics, as the InterlockedXXX() methods have the workgroup-storage expression as the first argument, and I'm not aware of any way to make a user-declared parameter be `groupshared`.

Change-Id: I8669127a58dc9cae95ce316523029064b5c9b5fa
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/57462
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
2021-07-09 16:50:14 +00:00
..
abs validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
acos validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
all validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
any validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
arrayLength validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
asin validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
atan validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
atan2 validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
atomicAdd writer/hlsl: Emit helper functions for storage class atomic intrinsics 2021-07-09 16:50:14 +00:00
atomicAnd writer/hlsl: Emit helper functions for storage class atomic intrinsics 2021-07-09 16:50:14 +00:00
atomicCompareExchangeWeak writer/hlsl: Emit helper functions for storage class atomic intrinsics 2021-07-09 16:50:14 +00:00
atomicExchange writer/hlsl: Emit helper functions for storage class atomic intrinsics 2021-07-09 16:50:14 +00:00
atomicLoad writer/hlsl: Emit helper functions for storage class atomic intrinsics 2021-07-09 16:50:14 +00:00
atomicMax writer/hlsl: Emit helper functions for storage class atomic intrinsics 2021-07-09 16:50:14 +00:00
atomicMin writer/hlsl: Emit helper functions for storage class atomic intrinsics 2021-07-09 16:50:14 +00:00
atomicOr writer/hlsl: Emit helper functions for storage class atomic intrinsics 2021-07-09 16:50:14 +00:00
atomicStore writer/hlsl: Emit helper functions for storage class atomic intrinsics 2021-07-09 16:50:14 +00:00
atomicXor writer/hlsl: Emit helper functions for storage class atomic intrinsics 2021-07-09 16:50:14 +00:00
ceil validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
clamp validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
cos validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
cosh validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
countOneBits validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
cross validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
determinant validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
distance validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
dot validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
dpdx writer/msl: Rework string printing 2021-06-28 15:30:57 +00:00
dpdxCoarse writer/msl: Rework string printing 2021-06-28 15:30:57 +00:00
dpdxFine writer/msl: Rework string printing 2021-06-28 15:30:57 +00:00
dpdy writer/msl: Rework string printing 2021-06-28 15:30:57 +00:00
dpdyCoarse writer/msl: Rework string printing 2021-06-28 15:30:57 +00:00
dpdyFine writer/msl: Rework string printing 2021-06-28 15:30:57 +00:00
exp validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
exp2 validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
faceForward [intrinsics] rm f32 overloads of reflect, faceForward 2021-07-08 15:08:53 +00:00
floor validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
fma validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
fract validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
frexp [writer/msl]: Implement modf and frexp 2021-07-08 21:21:27 +00:00
fwidth writer/msl: Rework string printing 2021-06-28 15:30:57 +00:00
fwidthCoarse writer/msl: Rework string printing 2021-06-28 15:30:57 +00:00
fwidthFine writer/msl: Rework string printing 2021-06-28 15:30:57 +00:00
ignore validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
inverseSqrt validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
isFinite validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
isInf validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
isNan validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
isNormal validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
ldexp validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
length validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
log validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
log2 validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
max validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
min validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
mix validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
modf [writer/msl]: Implement modf and frexp 2021-07-08 21:21:27 +00:00
normalize validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
pack2x16float validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
pack2x16snorm validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
pack2x16unorm validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
pack4x8snorm validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
pack4x8unorm validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
pow validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
reflect [intrinsics] rm f32 overloads of reflect, faceForward 2021-07-08 15:08:53 +00:00
refract Add refract intrinsic 2021-07-05 16:47:37 +00:00
reverseBits validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
round validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
select validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
sign validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
sin validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
sinh validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
smoothStep validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
sqrt validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
step validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
storageBarrier validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
tan validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
tanh validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
textureDimensions test/intrinsics/gen: Use '0' for level parameters 2021-07-08 21:04:53 +00:00
textureLoad test/intrinsics/gen: Use '0' for level parameters 2021-07-08 21:04:53 +00:00
textureNumLayers validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
textureNumLevels validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
textureNumSamples validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
textureSample Remove texture_external overload for textureSample 2021-07-08 20:58:18 +00:00
textureSampleBias test/intrinsics: Include overload signature in test case 2021-06-17 20:04:45 +00:00
textureSampleCompare test/intrinsics: Include overload signature in test case 2021-06-17 20:04:45 +00:00
textureSampleCompareLevel validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
textureSampleGrad validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
textureSampleLevel test/intrinsics/gen: Use '0' for level parameters 2021-07-08 21:04:53 +00:00
textureStore validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
transpose validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
trunc validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
unpack2x16float validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
unpack2x16snorm validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
unpack2x16unorm validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
unpack4x8snorm validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
unpack4x8unorm validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00
workgroupBarrier validation: compute shader must include 'workgroup_size' in its attributes 2021-06-29 18:39:44 +00:00