mirror of
https://github.com/switchbrew/libnx.git
synced 2025-07-04 02:22:15 +02:00
Minor fixes, now gets to whitescreen
This commit is contained in:
parent
694714994b
commit
1aebc58a32
@ -250,6 +250,7 @@ typedef struct {
|
|||||||
} NvBuffer;
|
} NvBuffer;
|
||||||
|
|
||||||
Result nvbufInit(void);
|
Result nvbufInit(void);
|
||||||
|
u32 nvbufGetNvmapFd(void);
|
||||||
void nvbufExit(void);
|
void nvbufExit(void);
|
||||||
|
|
||||||
Result nvbufCreate(NvBuffer* m, size_t size, u32 align, NvBufferKind kind);
|
Result nvbufCreate(NvBuffer* m, size_t size, u32 align, NvBufferKind kind);
|
||||||
|
@ -9,3 +9,4 @@ Result nvchannelCreate(NvChannel* c, const char* dev);
|
|||||||
void nvchannelClose(NvChannel* c);
|
void nvchannelClose(NvChannel* c);
|
||||||
|
|
||||||
Result nvchannelSetPriority(NvChannel* c, NvChannelPriority prio);
|
Result nvchannelSetPriority(NvChannel* c, NvChannelPriority prio);
|
||||||
|
Result nvchannelSetNvmapFd(NvChannel* c);
|
||||||
|
@ -12,7 +12,7 @@ Result nvasCreate(NvAddressSpace* a)
|
|||||||
a->fd = -1;
|
a->fd = -1;
|
||||||
|
|
||||||
if (R_SUCCEEDED(rc))
|
if (R_SUCCEEDED(rc))
|
||||||
rc = nvioctlNvhostAsGpu_InitializeEx(a->fd, 1, 0x100);
|
rc = nvioctlNvhostAsGpu_InitializeEx(a->fd, 1, 0x10000);
|
||||||
|
|
||||||
if (R_FAILED(rc))
|
if (R_FAILED(rc))
|
||||||
nvasClose(a);
|
nvasClose(a);
|
||||||
@ -47,14 +47,6 @@ Result nvasMapBuffer(NvAddressSpace* a, NvBuffer* buffer, NvBufferKind kind, iov
|
|||||||
return nvioctlNvhostAsGpu_MapBufferEx(a->fd, 0, kind, buffer->fd, 0, 0, buffer->size, 0, iova_out);
|
return nvioctlNvhostAsGpu_MapBufferEx(a->fd, 0, kind, buffer->fd, 0, 0, buffer->size, 0, iova_out);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result nvasBindToChannel(NvAddressSpace* a, NvChannel* channel)
|
Result nvasBindToChannel(NvAddressSpace* a, NvChannel* channel) {
|
||||||
{
|
return nvioctlNvhostAsGpu_BindChannel(a->fd, channel->fd);
|
||||||
Result rc;
|
|
||||||
|
|
||||||
rc = nvioctlNvhostAsGpu_BindChannel(a->fd, channel->fd);
|
|
||||||
|
|
||||||
if (R_SUCCEEDED(rc))
|
|
||||||
rc = nvioctlChannel_SetNvmapFd(channel->fd, a->fd);
|
|
||||||
|
|
||||||
return rc;
|
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,10 @@ void nvbufExit(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 nvbufGetNvmapFd(void) {
|
||||||
|
return g_nvmap_fd;
|
||||||
|
}
|
||||||
|
|
||||||
static Result _nvbufCreate(NvBuffer* m, size_t size, u32 flags, u32 align, NvBufferKind kind)
|
static Result _nvbufCreate(NvBuffer* m, size_t size, u32 flags, u32 align, NvBufferKind kind)
|
||||||
{
|
{
|
||||||
Result rc;
|
Result rc;
|
||||||
|
@ -31,3 +31,7 @@ void nvchannelClose(NvChannel* c)
|
|||||||
Result nvchannelSetPriority(NvChannel* c, NvChannelPriority prio) {
|
Result nvchannelSetPriority(NvChannel* c, NvChannelPriority prio) {
|
||||||
return nvioctlChannel_SetPriority(c->fd, prio);
|
return nvioctlChannel_SetPriority(c->fd, prio);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result nvchannelSetNvmapFd(NvChannel* c) {
|
||||||
|
return nvioctlChannel_SetNvmapFd(c->fd, nvbufGetNvmapFd());
|
||||||
|
}
|
||||||
|
@ -21,6 +21,9 @@ Result nvgpuCreate(NvGpu* g)
|
|||||||
if (R_SUCCEEDED(rc))
|
if (R_SUCCEEDED(rc))
|
||||||
rc = nvasBindToChannel(&g->addr_space, &g->gpu_channel);
|
rc = nvasBindToChannel(&g->addr_space, &g->gpu_channel);
|
||||||
|
|
||||||
|
if (R_SUCCEEDED(rc))
|
||||||
|
rc = nvchannelSetNvmapFd(&g->gpu_channel);
|
||||||
|
|
||||||
if (R_SUCCEEDED(rc))
|
if (R_SUCCEEDED(rc))
|
||||||
rc = nvfifoCreate(&g->gpfifo, &g->gpu_channel);
|
rc = nvfifoCreate(&g->gpfifo, &g->gpu_channel);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user