service: nvhost_vic: Ignore Submit commands.
This commit is contained in:
parent
34635a42c0
commit
1adf640d37
|
@ -53,6 +53,10 @@ u32 nvhost_vic::Submit(const std::vector<u8>& input, std::vector<u8>& output) {
|
||||||
IoctlSubmit params{};
|
IoctlSubmit params{};
|
||||||
std::memcpy(¶ms, input.data(), sizeof(IoctlSubmit));
|
std::memcpy(¶ms, input.data(), sizeof(IoctlSubmit));
|
||||||
LOG_WARNING(Service_NVDRV, "(STUBBED) called");
|
LOG_WARNING(Service_NVDRV, "(STUBBED) called");
|
||||||
|
|
||||||
|
// Workaround for Luigi's Mansion 3, as nvhost_vic is not implemented for asynch GPU
|
||||||
|
params.command_buffer = {};
|
||||||
|
|
||||||
std::memcpy(output.data(), ¶ms, sizeof(IoctlSubmit));
|
std::memcpy(output.data(), ¶ms, sizeof(IoctlSubmit));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <array>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
#include "common/swap.h"
|
#include "common/swap.h"
|
||||||
|
@ -36,8 +37,20 @@ private:
|
||||||
};
|
};
|
||||||
static_assert(sizeof(IoctlSetNvmapFD) == 4, "IoctlSetNvmapFD is incorrect size");
|
static_assert(sizeof(IoctlSetNvmapFD) == 4, "IoctlSetNvmapFD is incorrect size");
|
||||||
|
|
||||||
|
struct IoctlSubmitCommandBuffer {
|
||||||
|
u32 id;
|
||||||
|
u32 offset;
|
||||||
|
u32 count;
|
||||||
|
};
|
||||||
|
static_assert(sizeof(IoctlSubmitCommandBuffer) == 0xC,
|
||||||
|
"IoctlSubmitCommandBuffer is incorrect size");
|
||||||
|
|
||||||
struct IoctlSubmit {
|
struct IoctlSubmit {
|
||||||
INSERT_PADDING_BYTES(0x40); // TODO(DarkLordZach): RE this structure
|
u32 command_buffer_count;
|
||||||
|
u32 relocations_count;
|
||||||
|
u32 syncpt_count;
|
||||||
|
u32 wait_count;
|
||||||
|
std::array<IoctlSubmitCommandBuffer, 4> command_buffer;
|
||||||
};
|
};
|
||||||
static_assert(sizeof(IoctlSubmit) == 0x40, "IoctlSubmit is incorrect size");
|
static_assert(sizeof(IoctlSubmit) == 0x40, "IoctlSubmit is incorrect size");
|
||||||
|
|
||||||
|
|
Reference in New Issue