Should reset this flag in the GSP (needs better name)
This commit is contained in:
@@ -22,6 +22,7 @@ enum class GPUInterrupt : u8 {
|
|||||||
class Kernel;
|
class Kernel;
|
||||||
|
|
||||||
class GPUService {
|
class GPUService {
|
||||||
|
bool registerInterruptRelayQueueBeenHere = false;
|
||||||
Handle handle = KernelHandles::GPU;
|
Handle handle = KernelHandles::GPU;
|
||||||
Memory& mem;
|
Memory& mem;
|
||||||
GPU& gpu;
|
GPU& gpu;
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ void GPUService::reset() {
|
|||||||
privilegedProcess = 0xFFFFFFFF; // Set the privileged process to an invalid handle
|
privilegedProcess = 0xFFFFFFFF; // Set the privileged process to an invalid handle
|
||||||
interruptEvent = std::nullopt;
|
interruptEvent = std::nullopt;
|
||||||
sharedMem = nullptr;
|
sharedMem = nullptr;
|
||||||
|
registerInterruptRelayQueueBeenHere = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void GPUService::handleSyncRequest(u32 messagePointer) {
|
void GPUService::handleSyncRequest(u32 messagePointer) {
|
||||||
@@ -77,9 +78,8 @@ void GPUService::acquireRight(u32 messagePointer) {
|
|||||||
// How does the shared memory handle thing work?
|
// How does the shared memory handle thing work?
|
||||||
void GPUService::registerInterruptRelayQueue(u32 messagePointer) {
|
void GPUService::registerInterruptRelayQueue(u32 messagePointer) {
|
||||||
// Detect if this function is called a 2nd time because we'll likely need to impl threads properly for the GSP
|
// Detect if this function is called a 2nd time because we'll likely need to impl threads properly for the GSP
|
||||||
static bool beenHere = false;
|
if (registerInterruptRelayQueueBeenHere) Helpers::panic("RegisterInterruptRelayQueue called a second time. Need to implement GSP threads properly");
|
||||||
if (beenHere) Helpers::panic("RegisterInterruptRelayQueue called a second time. Need to implement GSP threads properly");
|
registerInterruptRelayQueueBeenHere = true;
|
||||||
beenHere = true;
|
|
||||||
|
|
||||||
const u32 flags = mem.read32(messagePointer + 4);
|
const u32 flags = mem.read32(messagePointer + 4);
|
||||||
const u32 eventHandle = mem.read32(messagePointer + 12);
|
const u32 eventHandle = mem.read32(messagePointer + 12);
|
||||||
|
|||||||
Reference in New Issue
Block a user