aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/hle/service/gsp_gpu.cpp
diff options
context:
space:
mode:
authorGravatar Yuri Kunde Schlesner <yuriks@yuriks.net>2015-01-14 03:26:27 -0200
committerGravatar Yuri Kunde Schlesner <yuriks@yuriks.net>2015-01-14 05:20:13 -0200
commit7630b3167210cc7f84c83af54dde23be948e3bc5 (patch)
treeea2d84fc067d6f2ec02f0745bebb93fdf68b6390 /src/core/hle/service/gsp_gpu.cpp
parent9e084826b8764853e363593ba8793e7b17eaa4f8 (diff)
GSP: Fix appending of interrupts to the shared memory buffer
The code was previously appending the interrupt to after the end of the buffer, instead of at the end.
Diffstat (limited to 'src/core/hle/service/gsp_gpu.cpp')
-rw-r--r--src/core/hle/service/gsp_gpu.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/core/hle/service/gsp_gpu.cpp b/src/core/hle/service/gsp_gpu.cpp
index 00a94165..4ca2b9bd 100644
--- a/src/core/hle/service/gsp_gpu.cpp
+++ b/src/core/hle/service/gsp_gpu.cpp
@@ -210,12 +210,12 @@ void SignalInterrupt(InterruptId interrupt_id) {
}
for (int thread_id = 0; thread_id < 0x4; ++thread_id) {
InterruptRelayQueue* interrupt_relay_queue = GetInterruptRelayQueue(thread_id);
- interrupt_relay_queue->number_interrupts = interrupt_relay_queue->number_interrupts + 1;
-
u8 next = interrupt_relay_queue->index;
next += interrupt_relay_queue->number_interrupts;
next = next % 0x34; // 0x34 is the number of interrupt slots
+ interrupt_relay_queue->number_interrupts += 1;
+
interrupt_relay_queue->slot[next] = interrupt_id;
interrupt_relay_queue->error_code = 0x0; // No error