DX12 Support in PCSX2
#91
(12-30-2015, 05:46 PM)gregory Wrote: Yes yes I know. I'm just saying that it would be nice to have a portable solution that fit everyone needs.
I know that's what you meant.
it was nothing but a joke Wink
CPU : AMD Ryzen 7 3800X
Mobo : Asus PRIME B450-PLUS
GPU : NVIDIA GeForce RTX 3070
RAM : 16 Go
Reply

Sponsored links

#92
Nevertheless I would really like to have this portable solution now Wink
Reply
#93
Lower level API regardless of what that API is will improve performance, it is not a hypothetical, it is a matter of fact. The more resources that can be used to process information at one time will ALWAYS improve performance.

The actual question we should be asking is how much of a performance increase will we see. How PCSX2 works may not see a large enough benefit. I cannot say with any logical amount of knowledge how much the benefit would be. it could be virtually nothing 1 to 2 % or huge like what Dolphin saw.
Windows 10
Intel 5930k 4.2ghz/core
32 GBs of 2400MHz DDR4
AMD PoweColor 390X (GPUs are expensive or this would be in crossfire)
Reply
#94
(12-30-2015, 05:40 PM)willkuer Wrote: Does this statement has any reason or are you just trolling?
It was said already several times that currently no API disturbs another one. If they will disturb each other less accurate ones will be dropped in favor to more accurate ones.
As already said some posts before dx11 isn't really used at all.
There is also no focus on dx10 as there is nobody willing to focus on it.
There is no focus on dx9 and probably there will be never again.
Currently we have one dev partially focusing on OGL and he probably doesn't want to get commands from you how and on what he should focus.

ok, ok, ok
OGL is also good
Reply
#95
(12-30-2015, 05:52 PM)Eiodalin Wrote: Lower level API regardless of what that API is will improve performance, it is not a hypothetical, it is a matter of fact.

In the same sense you could say using assembler increases performance over any high-level language.
Sure if your are one of the world's best asm programmer you can be better than a modern compiler. However bad asm code is slower than most compiled c code.

If you use low-level stuff you should ensure that you are better than those who normally write drivers. I am not sure but I would expect that those who write drivers for many years know more stuff than you. On the other hand you can write highly specialized software where a driver is as general as possible.

Just the availability of low-level programming doesn't increase performance.
Reply
#96
(12-30-2015, 03:07 PM)gregory Wrote: The issue is inside the Xserver Sad The function __glXDisp_CreateContextAttribsARB checks the flag bit validity. Each times a new extension uses a new bit, the code must be updated. So I can't use the extension on linux until someone fix the Xserver (I didn't found anything for Mesa but potentially they have a similar check too)

Code:
#define ALL_VALID_FLAGS \
   (GLX_CONTEXT_DEBUG_BIT_ARB | GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB \
    | GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB)

Code:
   if ((flags & ~ALL_VALID_FLAGS) != 0)
       return BadValue;

Can't you just detect if GL extension is available (as you are doing with separate shader objects and so on)?
Reply
#97
(12-30-2015, 05:52 PM)Eiodalin Wrote: Lower level API regardless of what that API is will improve performance, it is not a hypothetical, it is a matter of fact. The more resources that can be used to process information at one time will ALWAYS improve performance.

The actual question we should be asking is how much of a performance increase will we see. How PCSX2 works may not see a large enough benefit. I cannot say with any logical amount of knowledge how much the benefit would be. it could be virtually nothing 1 to 2 % or huge like what Dolphin saw.
If GL runs in a separate thread, it could run 1000 times faster without any impact on the global performance. For example, if you are EE limited, GS speed doesn't really impact the emulation speed.

If the driver is optimized very well, a naive port could be slower. In our case, emulation is really basic. So no optimization is likely as good as uber optimization (we want low latency).


(12-30-2015, 11:25 PM)frantisekz Wrote: Can't you just detect if GL extension is available (as you are doing with separate shader objects and so on)?
No, I can only detect GL extension AFTER the context creation. So you can't create the context based on the support extension (that why the above check is annoying). Don't worry I will find a solution. First I need to do some benchmark on Nvidia with both multi-thread OFF/ON. Maybe they just implement a stub without any real optimization.
Reply
#98
(12-31-2015, 11:09 AM)gregory Wrote: If GL runs in a separate thread, it could run 1000 times faster without any impact on the global performance. For example, if you are EE limited, GS speed doesn't really impact the emulation speed.

One could argue that it would make PCSX2 less EE limited, thus the performance would be increased. I think this discussion is pointless, though. It's your choice to do it or not do it. This is kind of a hobby after all.
Reply
#99
For obvious reason I won't do a DX12 port Wink

Here a couple of benchmark with the new GL extension. Unfortunately it is barely faster. I hope that extension isn't completely implemented.

Code:
//////////////////////////////////////////////////////////
// Zone of Ender
//////////////////////////////////////////////////////////

ST

Mean: 6128.428711ms
Standard deviation: 43.289249ms
Mean by frame: 36.478741ms (27.413225fps)
Standard deviatin by frame: 0.257674ms

MT

Mean: 3378.142822ms
Standard deviation: 62.182743ms
Mean by frame: 20.107992ms (49.731468fps)
Standard deviatin by frame: 0.370135ms

ST no error

Mean: 6013.714355ms
Standard deviation: 56.063011ms
Mean by frame: 35.795918ms (27.936146fps)
Standard deviatin by frame: 0.333708ms

MT no error

Mean: 3251.428467ms
Standard deviation: 10.634944ms
Mean by frame: 19.353741ms (51.669598fps)
Standard deviatin by frame: 0.063303ms

//////////////////////////////////////////////////////////
// Colin 3
//////////////////////////////////////////////////////////

ST

Mean: 1569.857178ms
Standard deviation: 19.924347ms
Mean by frame: 15.094781ms (66.248062fps)
Standard deviatin by frame: 0.191580ms

MT

Mean: 783.714294ms
Standard deviation: 0.880631ms
Mean by frame: 7.535714ms (132.701416fps)
Standard deviatin by frame: 0.008468ms


ST no error

Mean: 1548.714233ms
Standard deviation: 32.783768ms
Mean by frame: 14.891483ms (67.152481fps)
Standard deviatin by frame: 0.315229ms

MT no error

Mean: 781.142883ms
Standard deviation: 0.638877ms
Mean by frame: 7.510989ms (133.138260fps)
Standard deviatin by frame: 0.006143ms

//////////////////////////////////////////////////////////
// Baldur Gate 2
//////////////////////////////////////////////////////////

ST

Mean: 4203.428711ms
Standard deviation: 59.172527ms
Mean by frame: 110.616547ms (9.040239fps)
Standard deviatin by frame: 1.557172ms

MT

Mean: 4061.571533ms
Standard deviation: 51.693760ms
Mean by frame: 106.883461ms (9.355985fps)
Standard deviatin by frame: 1.360362ms

ST no error

Mean: 4269.571289ms
Standard deviation: 95.077202ms
Mean by frame: 112.357140ms (8.900191fps)
Standard deviatin by frame: 2.502032ms


MT no error

Mean: 4038.000000ms
Standard deviation: 71.085464ms
Mean by frame: 106.263161ms (9.410600fps)
Standard deviatin by frame: 1.870670ms
Reply
(12-29-2015, 01:06 PM)gregory Wrote: This kind of extension could help to increase perf without rewriting the full plugin

Name: GL_KHR_no_error
Link: https://www.opengl.org/registry/specs/KHR/no_error.txt
quote:

Could people check the extension availability on their OS/driver.

Are there really that many GL errors in PCSX2 that would warrant using this?
Reply




Users browsing this thread: 1 Guest(s)