diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2014-10-23 05:20:01 +0200 |
---|---|---|
committer | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2014-11-24 20:08:36 +0100 |
commit | c2588403c0b8cf198f13f903f626851c7e94266c (patch) | |
tree | 09d26cdae187a47338caf94943291c60b4a40a4c /src/core/hle/service/gsp_gpu.cpp | |
parent | Change some SkyEye defines to const ints (diff) | |
download | yuzu-c2588403c0b8cf198f13f903f626851c7e94266c.tar yuzu-c2588403c0b8cf198f13f903f626851c7e94266c.tar.gz yuzu-c2588403c0b8cf198f13f903f626851c7e94266c.tar.bz2 yuzu-c2588403c0b8cf198f13f903f626851c7e94266c.tar.lz yuzu-c2588403c0b8cf198f13f903f626851c7e94266c.tar.xz yuzu-c2588403c0b8cf198f13f903f626851c7e94266c.tar.zst yuzu-c2588403c0b8cf198f13f903f626851c7e94266c.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/hle/service/gsp_gpu.cpp | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/core/hle/service/gsp_gpu.cpp b/src/core/hle/service/gsp_gpu.cpp index 66daded94..de1bd3f61 100644 --- a/src/core/hle/service/gsp_gpu.cpp +++ b/src/core/hle/service/gsp_gpu.cpp @@ -28,28 +28,23 @@ u32 g_thread_id = 1; ///< Thread index into interrupt relay queue, 1 /// Gets a pointer to a thread command buffer in GSP shared memory static inline u8* GetCommandBuffer(u32 thread_id) { - if (0 == g_shared_memory) - return nullptr; - - return Kernel::GetSharedMemoryPointer(g_shared_memory, - 0x800 + (thread_id * sizeof(CommandBuffer))); + ResultVal<u8*> ptr = Kernel::GetSharedMemoryPointer(g_shared_memory, 0x800 + (thread_id * sizeof(CommandBuffer))); + return ptr.ValueOr(nullptr); } static inline FrameBufferUpdate* GetFrameBufferInfo(u32 thread_id, u32 screen_index) { - if (0 == g_shared_memory) - return nullptr; - _dbg_assert_msg_(GSP, screen_index < 2, "Invalid screen index"); // For each thread there are two FrameBufferUpdate fields u32 offset = 0x200 + (2 * thread_id + screen_index) * sizeof(FrameBufferUpdate); - return (FrameBufferUpdate*)Kernel::GetSharedMemoryPointer(g_shared_memory, offset); + ResultVal<u8*> ptr = Kernel::GetSharedMemoryPointer(g_shared_memory, offset); + return reinterpret_cast<FrameBufferUpdate*>(ptr.ValueOr(nullptr)); } /// Gets a pointer to the interrupt relay queue for a given thread index static inline InterruptRelayQueue* GetInterruptRelayQueue(u32 thread_id) { - return (InterruptRelayQueue*)Kernel::GetSharedMemoryPointer(g_shared_memory, - sizeof(InterruptRelayQueue) * thread_id); + ResultVal<u8*> ptr = Kernel::GetSharedMemoryPointer(g_shared_memory, sizeof(InterruptRelayQueue) * thread_id); + return reinterpret_cast<InterruptRelayQueue*>(ptr.ValueOr(nullptr)); } static void WriteHWRegs(u32 base_address, u32 size_in_bytes, const u32* data) { |