aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/shader/decode/other.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2019-08-29 12:58:43 -0400
committerGitHub <noreply@github.com>2019-08-29 12:58:43 -0400
commit8d8341bb698d31db2bc001c424dd6d304e66dfee (patch)
tree8856d97bfb22f9cc9c726e7020de051a9deef178 /src/video_core/shader/decode/other.cpp
parent63d41fd9011313b7b416c2e0d39b397893d330e0 (diff)
parent11138d67ad5a1f87591826585ba63e6c8351f052 (diff)
Merge pull request #2758 from ReinUsesLisp/packed-tid
shader/decode: Implement S2R Tic
Diffstat (limited to 'src/video_core/shader/decode/other.cpp')
-rw-r--r--src/video_core/shader/decode/other.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/shader/decode/other.cpp b/src/video_core/shader/decode/other.cpp
index ac0e764d6d..d46e0f8232 100644
--- a/src/video_core/shader/decode/other.cpp
+++ b/src/video_core/shader/decode/other.cpp
@@ -74,6 +74,13 @@ u32 ShaderIR::DecodeOther(NodeBlock& bb, u32 pc) {
case SystemVariable::InvocationInfo:
LOG_WARNING(HW_GPU, "MOV_SYS instruction with InvocationInfo is incomplete");
return Immediate(0u);
+ case SystemVariable::Tid: {
+ Node value = Immediate(0);
+ value = BitfieldInsert(value, Operation(OperationCode::LocalInvocationIdX), 0, 9);
+ value = BitfieldInsert(value, Operation(OperationCode::LocalInvocationIdY), 16, 9);
+ value = BitfieldInsert(value, Operation(OperationCode::LocalInvocationIdZ), 26, 5);
+ return value;
+ }
case SystemVariable::TidX:
return Operation(OperationCode::LocalInvocationIdX);
case SystemVariable::TidY: