Closed dkollmann closed 1 year ago
The logic to determine DepthStencilSurface is correct and reaches the same result as before. So I am unsure how those two are connected.
Weird. Could it be the ddrawParent->ClearSencilSurface(); line when releasing the surface?
No I already checked that.
Are you sure it is not related to the Pool selected?
Do you have an Nvidia graphics card? There is a bug with Nvidia that happens on a handful of games when you recreate the the d3d9 device too many times.
The problem seems to be the call of CreateD3D9Device();
It works when I use my code as a fallback, which is fine as a solution for that game.
if(DepthStencilSurface == D3DFMT_UNKNOWN && Config.DdrawAutoStencilFormat > 0)
{
DepthStencilSurface = (D3DFORMAT) Config.DdrawAutoStencilFormat;
}
Ok, I added an DdrawOverrideStencilFormat
option for this case: c8c3c382336c20777ffb70ba11c3b1bc18d9aa97
After the commit https://github.com/elishacloud/dxwrapper/commit/f3867edb5a3de6af36f1e374d7b14c88c5afe8e6, the game can no longer create some surfaces.