From 87d29bdeb3b19c5a0c8b18d431fa860d962b715b Mon Sep 17 00:00:00 2001 From: plutooo Date: Sat, 10 Mar 2018 15:36:46 +0100 Subject: [PATCH] gpu takes reference on singletons --- nx/include/switch/result.h | 2 ++ nx/source/nvidia/gpu/gpu.c | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/nx/include/switch/result.h b/nx/include/switch/result.h index f2108b16..bf849a05 100644 --- a/nx/include/switch/result.h +++ b/nx/include/switch/result.h @@ -76,6 +76,8 @@ enum { LibnxError_DomainMessageTooManyObjectIds, LibnxError_AppletFailedToInitialize, LibnxError_ApmFailedToInitialize, + LibnxError_NvinfoFailedToInitialize, + LibnxError_NvbufFailedToInitialize, }; /// libnx nvidia error codes diff --git a/nx/source/nvidia/gpu/gpu.c b/nx/source/nvidia/gpu/gpu.c index f47cdbcd..2cae5204 100644 --- a/nx/source/nvidia/gpu/gpu.c +++ b/nx/source/nvidia/gpu/gpu.c @@ -4,6 +4,12 @@ Result nvgpuCreate(NvGpu* g) { Result rc; + if (R_FAILED(nvinfoInit())) + return MAKERESULT(Module_Libnx, LibnxError_NvinfoFailedToInitialize); + + if (R_FAILED(nvbufInit())) + return MAKERESULT(Module_Libnx, LibnxError_NvbufFailedToInitialize); + rc = nvchannelCreate(&g->gpu_channel, "/dev/nvhost-gpu"); if (R_SUCCEEDED(rc)) @@ -29,6 +35,9 @@ Result nvgpuCreate(NvGpu* g) void nvgpuClose(NvGpu* g) { + nvbufExit(); + nvinfoExit(); + nvfifoClose(&g->gpfifo); nvasClose(&g->addr_space); nvchannelClose(&g->gpu_channel);