mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-20 22:05:12 +00:00
fix build with glfw < 3.4
This commit is contained in:
parent
08f73b28c3
commit
7d4380b242
1 changed files with 15 additions and 10 deletions
|
|
@ -67,24 +67,30 @@ static vk::Context createVkContext(Device *device) {
|
||||||
rx::die("failed to reserve userspace memory");
|
rx::die("failed to reserve userspace memory");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto createWindow = [=] {
|
||||||
|
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
|
||||||
|
device->window = glfwCreateWindow(1920, 1080, "RPCSX", nullptr, nullptr);
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef GLFW_PLATFORM_WAYLAND
|
||||||
if (glfwPlatformSupported(GLFW_PLATFORM_WAYLAND)) {
|
if (glfwPlatformSupported(GLFW_PLATFORM_WAYLAND)) {
|
||||||
glfwInitHint(GLFW_PLATFORM, GLFW_PLATFORM_WAYLAND);
|
glfwInitHint(GLFW_PLATFORM, GLFW_PLATFORM_WAYLAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
glfwInit();
|
glfwInit();
|
||||||
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
|
createWindow();
|
||||||
|
|
||||||
device->window = glfwCreateWindow(1920, 1080, "RPCSX", nullptr, nullptr);
|
|
||||||
|
|
||||||
if (device->window == nullptr) {
|
if (device->window == nullptr) {
|
||||||
glfwTerminate();
|
glfwTerminate();
|
||||||
|
|
||||||
glfwInitHint(GLFW_PLATFORM, GLFW_ANY_PLATFORM);
|
glfwInitHint(GLFW_PLATFORM, GLFW_ANY_PLATFORM);
|
||||||
glfwInit();
|
glfwInit();
|
||||||
|
createWindow();
|
||||||
glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
|
|
||||||
device->window = glfwCreateWindow(1920, 1080, "RPCSX", nullptr, nullptr);
|
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
glfwInit();
|
||||||
|
createWindow();
|
||||||
|
#endif
|
||||||
|
|
||||||
const char **glfwExtensions;
|
const char **glfwExtensions;
|
||||||
uint32_t glfwExtensionCount = 0;
|
uint32_t glfwExtensionCount = 0;
|
||||||
|
|
@ -474,8 +480,7 @@ void Device::start() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Device::submitCommand(Ring &ring,
|
void Device::submitCommand(Ring &ring, std::span<const std::uint32_t> command) {
|
||||||
std::span<const std::uint32_t> command) {
|
|
||||||
std::scoped_lock lock(writeCommandMtx);
|
std::scoped_lock lock(writeCommandMtx);
|
||||||
if (ring.wptr + command.size() > ring.base + ring.size) {
|
if (ring.wptr + command.size() > ring.base + ring.size) {
|
||||||
while (ring.wptr != ring.rptr) {
|
while (ring.wptr != ring.rptr) {
|
||||||
|
|
@ -605,8 +610,8 @@ void Device::onCommandBuffer(std::uint32_t pid, int cmdHeader,
|
||||||
} else if (op == gnm::IT_INDIRECT_BUFFER) {
|
} else if (op == gnm::IT_INDIRECT_BUFFER) {
|
||||||
graphicsPipes[0].setDeQueue(
|
graphicsPipes[0].setDeQueue(
|
||||||
Ring::createFromRange(process.vmId,
|
Ring::createFromRange(process.vmId,
|
||||||
memory.getPointer<std::uint32_t>(address),
|
memory.getPointer<std::uint32_t>(address),
|
||||||
size / sizeof(std::uint32_t)),
|
size / sizeof(std::uint32_t)),
|
||||||
1);
|
1);
|
||||||
} else {
|
} else {
|
||||||
rx::die("unimplemented command buffer %x", cmdHeader);
|
rx::die("unimplemented command buffer %x", cmdHeader);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue