diff options
| author | 2021-04-11 02:07:02 -0400 | |
|---|---|---|
| committer | 2021-07-22 21:51:27 -0400 | |
| commit | 3db2b3effa953ae66457b7a19b419fc4db2c4801 (patch) | |
| tree | 04c73897a74be053a610edf60703c72e985ee590 /src/shader_recompiler/frontend/ir/opcodes.inc | |
| parent | nsight_aftermath_tracker: Report used shaders to Nsight Aftermath (diff) | |
| download | yuzu-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.inc | 70 |
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, | |||
| 321 | OPCODE(SGreaterThanEqual, U1, U32, U32, ) | 321 | OPCODE(SGreaterThanEqual, U1, U32, U32, ) |
| 322 | OPCODE(UGreaterThanEqual, U1, U32, U32, ) | 322 | OPCODE(UGreaterThanEqual, U1, U32, U32, ) |
| 323 | 323 | ||
| 324 | // Atomic operations | ||
| 325 | OPCODE(SharedAtomicIAdd32, U32, U32, U32, ) | ||
| 326 | OPCODE(SharedAtomicSMin32, U32, U32, U32, ) | ||
| 327 | OPCODE(SharedAtomicUMin32, U32, U32, U32, ) | ||
| 328 | OPCODE(SharedAtomicSMax32, U32, U32, U32, ) | ||
| 329 | OPCODE(SharedAtomicUMax32, U32, U32, U32, ) | ||
| 330 | OPCODE(SharedAtomicInc32, U32, U32, U32, ) | ||
| 331 | OPCODE(SharedAtomicDec32, U32, U32, U32, ) | ||
| 332 | OPCODE(SharedAtomicAnd32, U32, U32, U32, ) | ||
| 333 | OPCODE(SharedAtomicOr32, U32, U32, U32, ) | ||
| 334 | OPCODE(SharedAtomicXor32, U32, U32, U32, ) | ||
| 335 | OPCODE(SharedAtomicExchange32, U32, U32, U32, ) | ||
| 336 | OPCODE(SharedAtomicExchange64, U64, U32, U64, ) | ||
| 337 | |||
| 338 | OPCODE(GlobalAtomicIAdd32, U32, U64, U32, ) | ||
| 339 | OPCODE(GlobalAtomicSMin32, U32, U64, U32, ) | ||
| 340 | OPCODE(GlobalAtomicUMin32, U32, U64, U32, ) | ||
| 341 | OPCODE(GlobalAtomicSMax32, U32, U64, U32, ) | ||
| 342 | OPCODE(GlobalAtomicUMax32, U32, U64, U32, ) | ||
| 343 | OPCODE(GlobalAtomicInc32, U32, U64, U32, ) | ||
| 344 | OPCODE(GlobalAtomicDec32, U32, U64, U32, ) | ||
| 345 | OPCODE(GlobalAtomicAnd32, U32, U64, U32, ) | ||
| 346 | OPCODE(GlobalAtomicOr32, U32, U64, U32, ) | ||
| 347 | OPCODE(GlobalAtomicXor32, U32, U64, U32, ) | ||
| 348 | OPCODE(GlobalAtomicExchange32, U32, U64, U32, ) | ||
| 349 | OPCODE(GlobalAtomicIAdd64, U64, U64, U64, ) | ||
| 350 | OPCODE(GlobalAtomicSMin64, U64, U64, U64, ) | ||
| 351 | OPCODE(GlobalAtomicUMin64, U64, U64, U64, ) | ||
| 352 | OPCODE(GlobalAtomicSMax64, U64, U64, U64, ) | ||
| 353 | OPCODE(GlobalAtomicUMax64, U64, U64, U64, ) | ||
| 354 | OPCODE(GlobalAtomicAnd64, U64, U64, U64, ) | ||
| 355 | OPCODE(GlobalAtomicOr64, U64, U64, U64, ) | ||
| 356 | OPCODE(GlobalAtomicXor64, U64, U64, U64, ) | ||
| 357 | OPCODE(GlobalAtomicExchange64, U64, U64, U64, ) | ||
| 358 | OPCODE(GlobalAtomicAddF32, F32, U64, F32, ) | ||
| 359 | OPCODE(GlobalAtomicAddF16x2, U32, U64, F16x2, ) | ||
| 360 | OPCODE(GlobalAtomicAddF32x2, U32, U64, F32x2, ) | ||
| 361 | OPCODE(GlobalAtomicMinF16x2, U32, U64, F16x2, ) | ||
| 362 | OPCODE(GlobalAtomicMinF32x2, U32, U64, F32x2, ) | ||
| 363 | OPCODE(GlobalAtomicMaxF16x2, U32, U64, F16x2, ) | ||
| 364 | OPCODE(GlobalAtomicMaxF32x2, U32, U64, F32x2, ) | ||
| 365 | |||
| 366 | OPCODE(StorageAtomicIAdd32, U32, U32, U32, U32, ) | ||
| 367 | OPCODE(StorageAtomicSMin32, U32, U32, U32, U32, ) | ||
| 368 | OPCODE(StorageAtomicUMin32, U32, U32, U32, U32, ) | ||
| 369 | OPCODE(StorageAtomicSMax32, U32, U32, U32, U32, ) | ||
| 370 | OPCODE(StorageAtomicUMax32, U32, U32, U32, U32, ) | ||
| 371 | OPCODE(StorageAtomicInc32, U32, U32, U32, U32, ) | ||
| 372 | OPCODE(StorageAtomicDec32, U32, U32, U32, U32, ) | ||
| 373 | OPCODE(StorageAtomicAnd32, U32, U32, U32, U32, ) | ||
| 374 | OPCODE(StorageAtomicOr32, U32, U32, U32, U32, ) | ||
| 375 | OPCODE(StorageAtomicXor32, U32, U32, U32, U32, ) | ||
| 376 | OPCODE(StorageAtomicExchange32, U32, U32, U32, U32, ) | ||
| 377 | OPCODE(StorageAtomicIAdd64, U64, U32, U32, U64, ) | ||
| 378 | OPCODE(StorageAtomicSMin64, U64, U32, U32, U64, ) | ||
| 379 | OPCODE(StorageAtomicUMin64, U64, U32, U32, U64, ) | ||
| 380 | OPCODE(StorageAtomicSMax64, U64, U32, U32, U64, ) | ||
| 381 | OPCODE(StorageAtomicUMax64, U64, U32, U32, U64, ) | ||
| 382 | OPCODE(StorageAtomicAnd64, U64, U32, U32, U64, ) | ||
| 383 | OPCODE(StorageAtomicOr64, U64, U32, U32, U64, ) | ||
| 384 | OPCODE(StorageAtomicXor64, U64, U32, U32, U64, ) | ||
| 385 | OPCODE(StorageAtomicExchange64, U64, U32, U32, U64, ) | ||
| 386 | OPCODE(StorageAtomicAddF32, F32, U32, U32, F32, ) | ||
| 387 | OPCODE(StorageAtomicAddF16x2, U32, U32, U32, F16x2, ) | ||
| 388 | OPCODE(StorageAtomicAddF32x2, U32, U32, U32, F32x2, ) | ||
| 389 | OPCODE(StorageAtomicMinF16x2, U32, U32, U32, F16x2, ) | ||
| 390 | OPCODE(StorageAtomicMinF32x2, U32, U32, U32, F32x2, ) | ||
| 391 | OPCODE(StorageAtomicMaxF16x2, U32, U32, U32, F16x2, ) | ||
| 392 | OPCODE(StorageAtomicMaxF32x2, U32, U32, U32, F32x2, ) | ||
| 393 | |||
| 324 | // Logical operations | 394 | // Logical operations |
| 325 | OPCODE(LogicalOr, U1, U1, U1, ) | 395 | OPCODE(LogicalOr, U1, U1, U1, ) |
| 326 | OPCODE(LogicalAnd, U1, U1, U1, ) | 396 | OPCODE(LogicalAnd, U1, U1, U1, ) |