Yet when I see Dolphin, the hardware renderers do everything the software renderer do, and that the software renderer is used exclusively for debugging. Why can't they implement the same thing in PCSX2 instead of having so many graphical issues that's already fixed in its software renderer?
Why is PCSX2's hardware renderer so far behind from the software renderer?
|
The PS2 and Gamecube are very different pieces of hardware; the PS2 graphics pipeline is likely much more difficult to map to a modern PC graphics pipeline. A software renderer lets you do literally anything you can code, while a hardware renderer locks you to whatever the GPU is capable of, so if the GPU can't efficiently emulate what the console GPU does, you have to cut corners and hope it works well enough.
It's probably also in part because PCSX2 has an incredibly well-optimized software renderer that was actually designed for speed, while Dolphin's is basically a slow reference renderer: when you have a working renderer that's actually usable, it's pretty tempting to try to fix graphics issues by making changes to the software renderer than to find extremely difficult hacks to fix it in a hardware renderer. For example, zfreeze is probably much easier to implement in a software renderer than a hardware renderer. IIRC, the author of the software renderer recently announced he was working on an OpenCL renderer to try to get around the base problem ("writing a software renderer for the GPU", effectively). 12-26-2014, 09:23 AM
Fiora, is it possible to make a software renderer for Dolphin that is as fast as the software renderer for PCSX2? One would think not with how incredibly intensive GC/Wii graphical features such as EFB -> Ram and CPU EFB Access are. Unless it's possible to improve performance with those options I'd think a software render for Dolphin that performs nearly on par with PCSX2's is out of the realm of possibility. Dolphin also has BBox and Zfreeze which also impacts performance. I don't think the PS2 has such advanced graphics features and capabilities, the GC/Wii gpu is a real beast to emulate accurately.
It's weird the PS2 graphics hardware doesn't translate well to PC hardware for emulation purposes when the GC/Wii does all this weird stuff with audio and graphics.
It's not necessarily about how "advanced" the graphics features are, but just how well they fit into a modern graphics pipeline. You can have very "primitive" graphics features that are nevertheless nearly impossible to emulate effectively in a modern GPU, because modern GPUs just work so differently.
It's probably possible to make a usable software renderer in Dolphin; it'd be a huge task though. For one, you'd probably need to just-in-time compile SSE/AVX rendering paths based on the current TEV register setup, kind of like the vertex loader except 100 times worse. I mean, it's probably doable; it'd just be a huge project that someone would have to take up and put months of full-time work into, at the very least. (12-26-2014, 08:28 AM)Fiora Wrote: The PS2 and Gamecube are very different pieces of hardware; the PS2 graphics pipeline is likely much more difficult to map to a modern PC graphics pipeline. A software renderer lets you do literally anything you can code, while a hardware renderer locks you to whatever the GPU is capable of, so if the GPU can't efficiently emulate what the console GPU does, you have to cut corners and hope it works well enough. Well I've a lot to say about this subject so bear with me. I don't think PS2 gpu is any harder to emulate than GC gpu but rather it is easier, GC and Wii unlike PS2 have crazy features like zfreeze and many others that are near impossible to emulate on GPU still devs make progress despite all odds and PS2 has nothing as atypical. Pcsx2 is very innacurate in general but it has 2 related main issues that were present from the very beginning and are more related to this plugin's poor design than DirectX/OpenGL limitations : Lack of mipmapping and buggy texture cache. GSDX is designed is such a way that these issues and almost all remaining bugs in general are simply impossible to fix without rewriting entire plugin from ground up but pcsx2 devs aren't capable of doing it. That's why I strongly encourage Dolphin devs and anyone with any DirectX/OpenGL and dynarec skills to start contributing to PCSX2 otherwise this project has no future. Plugin author stopped working on OpenCL few months ago and it's currently far worse than hardware rendering. Main reason why PCSX2 software rendering is better is because software mode is coherent automatically, since it can use the textures directly out of memory. For the GPU, they have to be staged into a texture cache, which needs to be notified of any texture updates somehow or another. You also could help since PCSX2 has no active dynarec developers. http://forums.pcsx2.net/Thread-GSdx-Memory-Coherency http://forums.pcsx2.net/Thread-Mipmappin...dware-mode http://forums.pcsx2.net/Thread-Post-proc...moved-When 12-26-2014, 12:18 PM
Why does this post say it was written a minute ago? I first read it way earlier than that. This might be a forum bug that needs reporting to delroth unless OP has a simpler explanation.
OS: Windows 10 64 bit Professional
CPU: AMD Ryzen 5900X RAM: 48GB GPU: Radeon 7800 XT 12-26-2014, 12:57 PM
(12-26-2014, 12:18 PM)AnyOldName3 Wrote: Why does this post say it was written a minute ago? I first read it way earlier than that. This might be a forum bug that needs reporting to delroth unless OP has a simpler explanation. Off-topic: Soft-deletes of posts. New feature of the forum software. Don't worry about it. On-topic: I really don't have anything to say other than I hope PCSX2's OpenGL support gets better and better. Last time I check, software rendering was the only way to play many games under Linux, until very recently. They (or at least one active dev) have done a lot of work in making GSDX on Linux usable. OpenGL only worked for me in Kingdom Hearts and Tales of the Abyss, but now a lot of games are working. That's more than I had expected in a year's time, so I think they're going in the right direction, generally speaking, from a Linux user's perspective anyway. 12-26-2014, 02:09 PM
(12-26-2014, 12:57 PM)Shonumi Wrote:(12-26-2014, 12:18 PM)AnyOldName3 Wrote: Why does this post say it was written a minute ago? I first read it way earlier than that. This might be a forum bug that needs reporting to delroth unless OP has a simpler explanation. Yes but DirectX and OpenGL both share one texture cache so underlying issue is still the same and PCSX2 requires a lot more help to rewrite it than just one active dev. 12-26-2014, 02:32 PM
Yeah, but all I'm saying is that PCSX2 was literally shit on Linux (really, it wasn't fun at all). Now it's actually a working emulator. Even if they have a lot of work to do, I think they're better than they've ever been, current issues notwithstanding.
12-26-2014, 02:52 PM
Why would you ask this question on the dolphin forums instead of the pcsx2 forums?
"Normally if given a choice between doing something and nothing, I’d choose to do nothing. But I would do something if it helps someone else do nothing. I’d work all night if it meant nothing got done."
-Ron Swanson "I shall be a good politician, even if it kills me. Or if it kills anyone else for that matter. " -Mark Antony |
« Next Oldest | Next Newest »
|
Users browsing this thread: 1 Guest(s)