mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-20 10:54:16 +01:00
[d3d9] Implement config option to disable rejecting reset
This commit is contained in:
parent
2334bbccb0
commit
0841f5faf4
23
dxvk.conf
23
dxvk.conf
@ -646,3 +646,26 @@
|
||||
# - True/False
|
||||
|
||||
# dxvk.hideIntegratedGraphics = False
|
||||
|
||||
# Trigger DEVICELOST when losing focus
|
||||
#
|
||||
# D3D9 requires the application to call Device::Reset after
|
||||
# it loses focus in fullscreen.
|
||||
# Some games rely on observing a D3DERR_DEVICELOST or D3DERR_NOTRESET.
|
||||
# Others don't handle it correctly.
|
||||
#
|
||||
# Supported values:
|
||||
# - True/False
|
||||
|
||||
# d3d9.deviceLossOnFocusLoss = False
|
||||
|
||||
# Reject Device::Reset if any losable resource is still alive
|
||||
#
|
||||
# D3D9 rejects Device::Reset if there's still any alive resources of specific types.
|
||||
# (State blocks, additional swapchains, D3DPOOL_DEFAULT resources)
|
||||
# Some games leak resources leading to a hang.
|
||||
#
|
||||
# Supported values:
|
||||
# - True/False
|
||||
|
||||
# d3d9.countLosableResources = True
|
||||
|
@ -464,7 +464,7 @@ namespace dxvk {
|
||||
* We have to check after ResetState clears the references held by SetTexture, etc.
|
||||
* This matches what Windows D3D9 does.
|
||||
*/
|
||||
if (unlikely(m_losableResourceCounter.load() != 0 && !IsExtended())) {
|
||||
if (unlikely(m_losableResourceCounter.load() != 0 && !IsExtended() && m_d3d9Options.countLosableResources)) {
|
||||
Logger::warn(str::format("Device reset failed because device still has alive losable resources: Device not reset. Remaining resources: ", m_losableResourceCounter.load()));
|
||||
m_deviceLostState = D3D9DeviceLostState::NotReset;
|
||||
return D3DERR_INVALIDCALL;
|
||||
|
@ -76,6 +76,7 @@ namespace dxvk {
|
||||
this->deviceLossOnFocusLoss = config.getOption<bool> ("d3d9.deviceLossOnFocusLoss", false);
|
||||
this->samplerLodBias = config.getOption<float> ("d3d9.samplerLodBias", 0.0f);
|
||||
this->clampNegativeLodBias = config.getOption<bool> ("d3d9.clampNegativeLodBias", false);
|
||||
this->countLosableResources = config.getOption<bool> ("d3d9.countLosableResources", true);
|
||||
|
||||
// Clamp LOD bias so that people don't abuse this in unintended ways
|
||||
this->samplerLodBias = dxvk::fclamp(this->samplerLodBias, -2.0f, 1.0f);
|
||||
|
@ -152,6 +152,9 @@ namespace dxvk {
|
||||
|
||||
/// Enable emulation of device loss when a fullscreen app loses focus
|
||||
bool deviceLossOnFocusLoss;
|
||||
|
||||
/// Disable counting losable resources and rejecting calls to Reset() if any are still alive
|
||||
bool countLosableResources;
|
||||
};
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user