summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/frontend/ir/opcodes.inc
diff options
context:
space:
mode:
authorGravatar ameerj2021-04-11 02:07:02 -0400
committerGravatar ameerj2021-07-22 21:51:27 -0400
commit3db2b3effa953ae66457b7a19b419fc4db2c4801 (patch)
tree04c73897a74be053a610edf60703c72e985ee590 /src/shader_recompiler/frontend/ir/opcodes.inc
parentnsight_aftermath_tracker: Report used shaders to Nsight Aftermath (diff)
downloadyuzu-3db2b3effa953ae66457b7a19b419fc4db2c4801.tar.gz
yuzu-3db2b3effa953ae66457b7a19b419fc4db2c4801.tar.xz
yuzu-3db2b3effa953ae66457b7a19b419fc4db2c4801.zip
shader: Implement ATOM/S and RED
Diffstat (limited to 'src/shader_recompiler/frontend/ir/opcodes.inc')
-rw-r--r--src/shader_recompiler/frontend/ir/opcodes.inc70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/shader_recompiler/frontend/ir/opcodes.inc b/src/shader_recompiler/frontend/ir/opcodes.inc
index 86ea02560..dc776a73e 100644
--- a/src/shader_recompiler/frontend/ir/opcodes.inc
+++ b/src/shader_recompiler/frontend/ir/opcodes.inc
@@ -321,6 +321,76 @@ OPCODE(INotEqual, U1, U32,
321OPCODE(SGreaterThanEqual, U1, U32, U32, ) 321OPCODE(SGreaterThanEqual, U1, U32, U32, )
322OPCODE(UGreaterThanEqual, U1, U32, U32, ) 322OPCODE(UGreaterThanEqual, U1, U32, U32, )
323 323
324// Atomic operations
325OPCODE(SharedAtomicIAdd32, U32, U32, U32, )
326OPCODE(SharedAtomicSMin32, U32, U32, U32, )
327OPCODE(SharedAtomicUMin32, U32, U32, U32, )
328OPCODE(SharedAtomicSMax32, U32, U32, U32, )
329OPCODE(SharedAtomicUMax32, U32, U32, U32, )
330OPCODE(SharedAtomicInc32, U32, U32, U32, )
331OPCODE(SharedAtomicDec32, U32, U32, U32, )
332OPCODE(SharedAtomicAnd32, U32, U32, U32, )
333OPCODE(SharedAtomicOr32, U32, U32, U32, )
334OPCODE(SharedAtomicXor32, U32, U32, U32, )
335OPCODE(SharedAtomicExchange32, U32, U32, U32, )
336OPCODE(SharedAtomicExchange64, U64, U32, U64, )
337
338OPCODE(GlobalAtomicIAdd32, U32, U64, U32, )
339OPCODE(GlobalAtomicSMin32, U32, U64, U32, )
340OPCODE(GlobalAtomicUMin32, U32, U64, U32, )
341OPCODE(GlobalAtomicSMax32, U32, U64, U32, )
342OPCODE(GlobalAtomicUMax32, U32, U64, U32, )
343OPCODE(GlobalAtomicInc32, U32, U64, U32, )
344OPCODE(GlobalAtomicDec32, U32, U64, U32, )
345OPCODE(GlobalAtomicAnd32, U32, U64, U32, )
346OPCODE(GlobalAtomicOr32, U32, U64, U32, )
347OPCODE(GlobalAtomicXor32, U32, U64, U32, )
348OPCODE(GlobalAtomicExchange32, U32, U64, U32, )
349OPCODE(GlobalAtomicIAdd64, U64, U64, U64, )
350OPCODE(GlobalAtomicSMin64, U64, U64, U64, )
351OPCODE(GlobalAtomicUMin64, U64, U64, U64, )
352OPCODE(GlobalAtomicSMax64, U64, U64, U64, )
353OPCODE(GlobalAtomicUMax64, U64, U64, U64, )
354OPCODE(GlobalAtomicAnd64, U64, U64, U64, )
355OPCODE(GlobalAtomicOr64, U64, U64, U64, )
356OPCODE(GlobalAtomicXor64, U64, U64, U64, )
357OPCODE(GlobalAtomicExchange64, U64, U64, U64, )
358OPCODE(GlobalAtomicAddF32, F32, U64, F32, )
359OPCODE(GlobalAtomicAddF16x2, U32, U64, F16x2, )
360OPCODE(GlobalAtomicAddF32x2, U32, U64, F32x2, )
361OPCODE(GlobalAtomicMinF16x2, U32, U64, F16x2, )
362OPCODE(GlobalAtomicMinF32x2, U32, U64, F32x2, )
363OPCODE(GlobalAtomicMaxF16x2, U32, U64, F16x2, )
364OPCODE(GlobalAtomicMaxF32x2, U32, U64, F32x2, )
365
366OPCODE(StorageAtomicIAdd32, U32, U32, U32, U32, )
367OPCODE(StorageAtomicSMin32, U32, U32, U32, U32, )
368OPCODE(StorageAtomicUMin32, U32, U32, U32, U32, )
369OPCODE(StorageAtomicSMax32, U32, U32, U32, U32, )
370OPCODE(StorageAtomicUMax32, U32, U32, U32, U32, )
371OPCODE(StorageAtomicInc32, U32, U32, U32, U32, )
372OPCODE(StorageAtomicDec32, U32, U32, U32, U32, )
373OPCODE(StorageAtomicAnd32, U32, U32, U32, U32, )
374OPCODE(StorageAtomicOr32, U32, U32, U32, U32, )
375OPCODE(StorageAtomicXor32, U32, U32, U32, U32, )
376OPCODE(StorageAtomicExchange32, U32, U32, U32, U32, )
377OPCODE(StorageAtomicIAdd64, U64, U32, U32, U64, )
378OPCODE(StorageAtomicSMin64, U64, U32, U32, U64, )
379OPCODE(StorageAtomicUMin64, U64, U32, U32, U64, )
380OPCODE(StorageAtomicSMax64, U64, U32, U32, U64, )
381OPCODE(StorageAtomicUMax64, U64, U32, U32, U64, )
382OPCODE(StorageAtomicAnd64, U64, U32, U32, U64, )
383OPCODE(StorageAtomicOr64, U64, U32, U32, U64, )
384OPCODE(StorageAtomicXor64, U64, U32, U32, U64, )
385OPCODE(StorageAtomicExchange64, U64, U32, U32, U64, )
386OPCODE(StorageAtomicAddF32, F32, U32, U32, F32, )
387OPCODE(StorageAtomicAddF16x2, U32, U32, U32, F16x2, )
388OPCODE(StorageAtomicAddF32x2, U32, U32, U32, F32x2, )
389OPCODE(StorageAtomicMinF16x2, U32, U32, U32, F16x2, )
390OPCODE(StorageAtomicMinF32x2, U32, U32, U32, F32x2, )
391OPCODE(StorageAtomicMaxF16x2, U32, U32, U32, F16x2, )
392OPCODE(StorageAtomicMaxF32x2, U32, U32, U32, F32x2, )
393
324// Logical operations 394// Logical operations
325OPCODE(LogicalOr, U1, U1, U1, ) 395OPCODE(LogicalOr, U1, U1, U1, )
326OPCODE(LogicalAnd, U1, U1, U1, ) 396OPCODE(LogicalAnd, U1, U1, U1, )