-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GSDX: Drop (or) keep D3D9 renderer ? #1171
Comments
I think I'm for it. It serves little purpose these days with OpenGL being so good, and as you say, we aren't supporting Windows XP after 1.4, so that's a non-issue. However, unless it is getting in the way somehow there is no real reason to remove it, we can always make GSDX default to DX11 or OpenGL |
It's possible to remove the DX SDK dependency from GSdx without removing the D3D9 renderer. |
Like ref said, if it's not getting in the way, then just change the default to OGL or DX11, but still allow those on old hardware to use Dx9 |
Yeh i think the big issue was the windows sdk not supporting windows xp, so it should be fine. |
Maybe for 1.6 DX9 can be removed, but the minimum requirements will have to be updated to fit. |
That's the idea, that's why we are in the development period for 1.6 :P |
Yeah, I guess I really don't care if it's there or not. The default does need changing though. |
The default is already DX11. If you use a fresh PCSX2 build and boot into a game without changing any VIdeo Plugin settings DX11 is used, not DX9. Though it does show DX9 as default in the VIdeo Plugin settings menu. |
Not really...I just downloaded the 1.4.0 binary(and the latest dev build)and run it(no settings exist)and when I hit configure on GSDX,the DX9 was selected(third line from the list) And I also prefer to keep it |
Read the rest of what I said. Don't go to the settings, just boot straight into a game without touching the video(GSDX) settings and watch the top of the game window. It uses DX11 HW. |
This will never be possible to be honest. XAudio 2.7 is going to be required for decades considering Vista and 7 are just fine... Said this, if we are really dropping XP (a real pity if you ask me).. |
Possibly appveyor will still support xp. Newer visual studio versions won't but i guess except for that there is no hard reason to drop xp. Ogl should as well work on xp btw. As replacement for xaudio one could use portaudio. |
Since I have been experimenting a bit more on the DX SDK removal stuff, here are my current findings:
On another note: The non-XP compatible toolchains lets us use the Visual Studio code analysis tools. Just an FYI ;) I don't really have an opinion on keeping/removing D3D9. |
I knew there was a reason we couldn't remove the DXSDK, I couldn't quite remember and convinced myself it was just XP support. There is no chance we can drop support for Vista and 7, it's just not even an option for a good long time, so we can remove the DXSDK from GSDX, but it is here to stay for the other projects. |
if 1.4 is gona be final version that support XP then going forward i dont see why removing DX9 would be issue, there really should be many people still running XP anymore, and most cards these days support DX10 and up. but i know nothing about programming so . Then again I think DX9 need to die and stop being used, its one reason why newer versions of DX take for ever to take hold imo |
There is a hard reason, we are slowly trying to move the emulator to 64bits, something which xp can't do (yes i know there is a 64bit version of xp but hardly anybody uses it) anyway, 1.4 is out, it's probably going to be another year or 2 until 1.6 is out, by which point anybody still using xp is either insane or incredibly poor :P but we need to move forward too and 64bit seems to give the memory addressing advantages that will see better speeds and potentially we might have better float support if we can get it to use larger floats. Furthermore the share of windows xp users on the web is currently 11%, it's been dropping at nearly 1% a month over the last year, it's entirely possible in a years time it's going to be less than 1% of users, not really something worth clinging on to if it's going to hinder our progress. I was one of the ones advocating keeping support of it, up until now where it is looking like less reason to keep supporting it for future versions. 1.4.0 is pretty good, it will do more than enough for the capabilities of a machine running Windows XP, I sincerely doubt people will play many advanced games on those systems, it will be more for the joy of emulating it, even at bad speeds. |
This needs an official discussion thread on the forums IMO. |
http://store.steampowered.com/hwsurvey/directx/ Steam stats are potentially more interesting as it is "gamer" oriented. It isn't bias free but I think we can consider than real xp users are closer of 5% rather than 11%. Lots of computers are only used for web browsing. Agreed, 1.4 is enough for XP user. If they want modern feature, they need to get a modern OS. By the time 1.6 is released. Vista will be EOL too (yeah nobody use it). In theory, you can use openGL on XP but I'm afraid that drivers aren't updated anymore (maybe Nvidia?). However, nobody is working on GSdx, so DX9 so far it isn't issue. So I dunno if it is really worth it to drop it now rather than in a couple of months. |
according to the survey its less than 3% :p |
You still haven't explained how the two things would be mutually exclusive then :p
Nvidia has no XP driver altogheter with 8xx series and above, but it still continues to update XP drivers up to 7xx series. There shouldn't be any problems though, even with older drivers (hoping older amd aren't even more lame :s)
I propose to drop XP when linux will be double of it xD |
There aren't any in the sense most people are thinking :P The 64bitness itself provides no measure of speed improvement, period, however the advantage we will have is the same one that Dolphin experienced when rewriting the memory management, we can virtually map the entire PS2 memory to ram (it is a 4gb virtual space) so we can access it quicker and more direct, which will bring a nice performance boost if we do it right. Zerofrog did try something similar eons ago back in 0.9.2 but it was buggy, users had to set a horrible setting in windows for it to work, which didn't work with everybody, it was messy :P |
Honestly, let XP die at this point. Even Microsoft has dropped support for it. XP users can't even use PCSX2 built with VS 2015, which eliminates all builds from the Orphis Buildbot. |
Yes, I know. But I think there is a bias on steam (said by a valve guy) (so I cut the pear in 2). Don't remember the bias (maybe a bit too much American guy on it). Linux users base doesn't count :p It is free to support, last but not least the main dev is a nice guy ;) And OS isn't 10 years old... However we can propose XP users to switch to linux for free ;)
Well I tried to do it, not perfect (and I need to check the mirroring behavior actually). But perf is around 1% rather than 10%/20%. I don't think it will much better on 64 bits. So current perf limitation is somewhere else.
However there are extra cost for 64 bits. And it would be potentially less portable (due to different ABI on different OS). So globally perf will be in +/- 10%. But once the code is ported to 64 bits, it will be killer to support both 32 bits & 64 bits..... So 2.0 will be 64 bits only ;) |
That might be because you didn't do it perfectly :P It needs to be done and working optimally to see any advantage, the current system was done in an optimal way to benefit the most from that style of system, the same will need doing with the new one too. |
As I already said plenty of time, that's already feasible in 32 bit builds to be honest.
XP users can. Iirc there's just a problem with SPU2-X that for god knows which reasons crashes and needs to be built with vs2013. But I'm not sure conceptually this problem has to be attributed to OS if I can explain.
( ͡° ͜ʖ ͡°)
This has something to do with you switching over #634 I guess? In that case I see why one would prefer to drop x86... but technically I fail to see the "hard implication" this has with XP drop. |
how? LAA gives you exactly 4gb of user space on a 64bit system, on a 32bit system this is 3gb providing the user has put the 3gb switch on their windows boot ini. If we are mapping 4gb for the virtual memory space (which wouldn't be possible on 32bit regardless), where is the recompiler memory etc going to go? I could be missing something entirely here. But the way i see it, either option has 32bit totally out, and by extension, windows xp. |
@mirhl
You hard with me :p Honestly I think I'm not too bad. However we can do better. I'm thinking of the function call for basic HW register read. And in the future, we could potentially avoid the flush of some x86 registers (but x86 registers are already flushed every instructions anyway). Now I'm not sure that will really impact the perf. |
Not being hard, there is always room for improvement with anybodies code :) It's just finding a way to do it, we can make things better!
If it's doing it every instruction now, it "might" not impact very often, depending on how much the x86 registers are used, it would be an interesting thing to benchmark on number of register allocations/deallocations and uses, maybe for xmm too, just to see :) But if they are used a lot and flushed a lot, there could be a nice performance increase from avoiding that. |
Oh.. EE..
And theoretically the question is always: does it entail more drawbacks than benefits? |
As said before, it's the only option AFAIK on OS X (with Wine[skin]). On a similar note, and although I haven't tried it recently, It might be easier to setup PCSX2 with DX9 on a Windows VM than other backends. It'd be a shame to drop it IMO, unless it frequently hinders progress elsewhere. |
I don't argue this at all. Are you the one who's going to put the time and effort to make that happen? because if not, for now, that's the only option on OS X. Even if it was planned, being worked on actively, and "just around the corner", I'd still wait with removing DX9 until it's actually proven to work better than Wineskin on OS X. |
@avih Fair enough. Are there many users on OS X, though? And isn't Bootcamp also an alternative? |
Haven't counted them, but I'd bet an order of magnitude more than Linux. |
I missed the OS X users, yea. On that note, I remember DX9 working pretty okay in VMware while OpenGL didn't. |
Ah yes, OSX. That being said there still the legacy plugin. Because I'm afraid that apple doesn't enough to pay a guy to support recent gl driver. OpenGL used to work on vm machine before I made several extensions mandatory (potentially I can make them mandatory only for the hw renderer if it doesn't work). So far dx9 doesn't hurt so it can be kept but I'm afraid it won't be available forever. |
Well, since there's the legacy GSdx plugin right now, any new opinion on dropping the D3D9 renderer? |
There are games that actually run quite a bit faster with the D3D9 renderer than D3D11 without any downsides, so I wouldn't drop it until any D3D11 issues that D3D9 does not have are fixed. |
At least not before before a 1.6 release. Faster, CPU or GPU wise ? |
Mostly GPU I believe. |
Pretty much all of the dx10/11 issues that weren't present on dx9 have been fixed so I guess we are one step closer. |
Adding this to 1.8 milestone. |
[if it will be dropped - only a chosen ones with external monitor and Nvidia will be able to play]
|
If you aim for faster but less accurate emulation you can always use older versions. There are barely any performance improvements (apart from recent the texture cache lookup which improved a few games) nowadays so it doesn’t make much sense to update if you are not interested in accuracy. In theory the native linux port should be better than wine+dx9 - at least with reasonable gpu drivers. About the others I don’t know. |
|
@mirh as for pcsx2 - Tridef is working with dx9 only, https://forums.pcsx2.net/Thread-Gsdx-3D-Stereoscopy-Patch?page=13 I've tried to get work iz3D, but no luck here too. [at least from myself with mostly user experience]. Thank you for gallium-nine mention) - it's the first time when I hear about it. @willkuer for me pcsx2 always only improving) Thank you for making it better! =D I meant that DX9 for me in the past showed some effects, that DX11 didn't, while still losing some that OGL showed. DX9 was in between, with the speed between them too. And as for Linux my questions was also about - is there a way to play on Linux with shaders? Or in Compiz Anaglyph? Maybe it's better to have one more output that will have it's own chance of working with shaders and stereoscopy? [and mirh noticed about gallium-nine which relies again on dx9 only, and might be faster then existing wine] In anyway I want pcsx2 team to decide. Everything is happening. |
I actually thought that was what you were talking about in the first place, when mentioning "dx9" and "linux". I'm not personally aware of any such situation (and I'd really be grasping at straws if I had to cherry pick some possible edge case from all gpus ever released). And shaders are just dx10/11 AFAIK, so there's not much else to say about them. On the other hand, keeping Tridef compatibility really would seem like something "worth it" in my opinion. Unfortunately some devs are starting to get into uprooting everything remaining about dx9... So unless somebody step up for "assuring it keeps staying maintained" I wouldn't see it getting back. |
Dx9 is a dead end. It was completely broken and unfixable. Worst, it was in the way to improve dx10. You can use older version if you prefer broken but "faster" rendering. Otherwise upgrade your CPU/ GPU. Wine will eventually get dx10 (if not done already). And if the gl driver is good enough (aka multi-threaded), native gl will be as fast as wine (dx or gl whatever). Crappy program that depends on dx9 should be fixed. |
It was recently stated that the last stable version (1.4) will be the final version which will have support for windows XP, so having D3D9 renderer isn't as necessary as before since we don't have to worry about people with windows XP.
Advantages on removing D3D9 renderer:
Disadvantages on removing D3D9 renderer:
The text was updated successfully, but these errors were encountered: