From 1d840adfdf6b2b7f0220e4bd43b5c7b56fb8848a Mon Sep 17 00:00:00 2001 From: DH Date: Mon, 14 Oct 2024 19:20:56 +0300 Subject: [PATCH] gpu: fix main queue size --- rpcsx/gpu/Device.cpp | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/rpcsx/gpu/Device.cpp b/rpcsx/gpu/Device.cpp index 7fed4a4db..da3e26508 100644 --- a/rpcsx/gpu/Device.cpp +++ b/rpcsx/gpu/Device.cpp @@ -61,6 +61,12 @@ static vk::Context createVkContext(Device *device) { std::vector optionalLayers; bool enableValidation = rx::g_config.validateGpu; + std::uint64_t minAddress = 0x40000; + if (!rx::mem::reserve(reinterpret_cast(minAddress), + 0x600'0000'0000 - minAddress)) { + rx::die("failed to reserve userspace memory"); + } + glfwInit(); glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API); const char **glfwExtensions; @@ -216,7 +222,7 @@ Device::Device() : vkContext(createVkContext(this)) { graphicsPipes[i].setDeQueue( Queue{ .base = mainGfxRings[i], - .size = sizeof(mainGfxRings[i]), + .size = sizeof(mainGfxRings[i]) / sizeof(mainGfxRings[i][0]), .rptr = mainGfxRings[i], .wptr = mainGfxRings[i], }, @@ -517,10 +523,10 @@ void Device::mapProcess(std::uint32_t pid, int vmId) { std::abort(); } - std::println(stderr, - "map process {} memory, address {}-{}, type {:x}, vmId {}", - (int)pid, memory.getPointer(startAddress), - memory.getPointer(endAddress), slot.memoryType, vmId); + // std::println(stderr, + // "map process {} memory, address {}-{}, type {:x}, vmId {}", + // (int)pid, memory.getPointer(startAddress), + // memory.getPointer(endAddress), slot.memoryType, vmId); } } @@ -558,9 +564,9 @@ void Device::protectMemory(std::uint32_t pid, std::uint64_t address, auto memory = amdgpu::RemoteMemory{process.vmId}; rx::mem::protect(memory.getPointer(address), size, prot >> 4); - std::println(stderr, "protect process {} memory, address {}-{}, prot {:x}", - (int)pid, memory.getPointer(address), - memory.getPointer(address + size), prot); + // std::println(stderr, "protect process {} memory, address {}-{}, prot {:x}", + // (int)pid, memory.getPointer(address), + // memory.getPointer(address + size), prot); } } @@ -911,9 +917,9 @@ void Device::mapMemory(std::uint32_t pid, std::uint64_t address, memory.getPointer(address + size), memoryType, offset, prot); } - std::println(stderr, "map memory of process {}, address {}-{}, prot {:x}", - (int)pid, memory.getPointer(address), - memory.getPointer(address + size), prot); + // std::println(stderr, "map memory of process {}, address {}-{}, prot {:x}", + // (int)pid, memory.getPointer(address), + // memory.getPointer(address + size), prot); } void Device::unmapMemory(std::uint32_t pid, std::uint64_t address,