mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-27 04:54:15 +01:00
[d3d11] Remove d3d11.dcSingleUseMode option
This commit is contained in:
parent
7208d06548
commit
e3f047a96a
11
dxvk.conf
11
dxvk.conf
@ -228,17 +228,6 @@
|
|||||||
# dxvk.tilerMode = Auto
|
# dxvk.tilerMode = Auto
|
||||||
|
|
||||||
|
|
||||||
# Assume that command lists created from deferred contexts are only used
|
|
||||||
# once. This is extremely common and may improve performance while reducing
|
|
||||||
# the amount of memory wasted if games keep their command list objects alive
|
|
||||||
# for too long, but may also lead to rendering issues if command lists are
|
|
||||||
# submitted multiple times.
|
|
||||||
#
|
|
||||||
# Supported values: True, False
|
|
||||||
|
|
||||||
# d3d11.dcSingleUseMode = True
|
|
||||||
|
|
||||||
|
|
||||||
# Override the maximum feature level that a D3D11 device can be created
|
# Override the maximum feature level that a D3D11 device can be created
|
||||||
# with. Setting this to a higher value may allow some applications to run
|
# with. Setting this to a higher value may allow some applications to run
|
||||||
# that would otherwise fail to create a D3D11 device.
|
# that would otherwise fail to create a D3D11 device.
|
||||||
|
@ -74,8 +74,6 @@ namespace dxvk {
|
|||||||
m_resources.push_back(std::move(entry));
|
m_resources.push_back(std::move(entry));
|
||||||
}
|
}
|
||||||
|
|
||||||
pCommandList->MarkSubmitted();
|
|
||||||
|
|
||||||
// Return ID of the last chunk added. The command list
|
// Return ID of the last chunk added. The command list
|
||||||
// added can never be empty, so do not handle zero.
|
// added can never be empty, so do not handle zero.
|
||||||
return m_chunks.size() - 1;
|
return m_chunks.size() - 1;
|
||||||
@ -102,8 +100,6 @@ namespace dxvk {
|
|||||||
while (j < m_resources.size() && m_resources[j].chunkId == i)
|
while (j < m_resources.size() && m_resources[j].chunkId == i)
|
||||||
TrackResourceSequenceNumber(m_resources[j++].ref, seq);
|
TrackResourceSequenceNumber(m_resources[j++].ref, seq);
|
||||||
}
|
}
|
||||||
|
|
||||||
MarkSubmitted();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -150,15 +146,5 @@ namespace dxvk {
|
|||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void D3D11CommandList::MarkSubmitted() {
|
|
||||||
if (m_submitted.exchange(true) && !m_warned.exchange(true)
|
|
||||||
&& m_parent->GetOptions()->dcSingleUseMode) {
|
|
||||||
Logger::warn(
|
|
||||||
"D3D11: Command list submitted multiple times,\n"
|
|
||||||
" but d3d11.dcSingleUseMode is enabled");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -55,14 +55,9 @@ namespace dxvk {
|
|||||||
std::vector<Com<D3D11Query, false>> m_queries;
|
std::vector<Com<D3D11Query, false>> m_queries;
|
||||||
std::vector<TrackedResource> m_resources;
|
std::vector<TrackedResource> m_resources;
|
||||||
|
|
||||||
std::atomic<bool> m_submitted = { false };
|
|
||||||
std::atomic<bool> m_warned = { false };
|
|
||||||
|
|
||||||
void TrackResourceSequenceNumber(
|
void TrackResourceSequenceNumber(
|
||||||
const D3D11ResourceRef& Resource,
|
const D3D11ResourceRef& Resource,
|
||||||
uint64_t Seq);
|
uint64_t Seq);
|
||||||
|
|
||||||
void MarkSubmitted();
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ namespace dxvk {
|
|||||||
D3D11Device* pParent,
|
D3D11Device* pParent,
|
||||||
const Rc<DxvkDevice>& Device,
|
const Rc<DxvkDevice>& Device,
|
||||||
UINT ContextFlags)
|
UINT ContextFlags)
|
||||||
: D3D11CommonContext<D3D11DeferredContext>(pParent, Device, ContextFlags, GetCsChunkFlags(pParent)),
|
: D3D11CommonContext<D3D11DeferredContext>(pParent, Device, ContextFlags, 0u),
|
||||||
m_commandList (CreateCommandList()) {
|
m_commandList (CreateCommandList()) {
|
||||||
ResetContextState();
|
ResetContextState();
|
||||||
}
|
}
|
||||||
@ -436,12 +436,4 @@ namespace dxvk {
|
|||||||
m_mappedResources.push_back({ Cookie, MapInfo });
|
m_mappedResources.push_back({ Cookie, MapInfo });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
DxvkCsChunkFlags D3D11DeferredContext::GetCsChunkFlags(
|
|
||||||
D3D11Device* pDevice) {
|
|
||||||
return pDevice->GetOptions()->dcSingleUseMode
|
|
||||||
? DxvkCsChunkFlags(DxvkCsChunkFlag::SingleUse)
|
|
||||||
: DxvkCsChunkFlags();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
@ -13,7 +13,6 @@ namespace dxvk {
|
|||||||
}
|
}
|
||||||
|
|
||||||
D3D11Options::D3D11Options(const Config& config) {
|
D3D11Options::D3D11Options(const Config& config) {
|
||||||
this->dcSingleUseMode = config.getOption<bool>("d3d11.dcSingleUseMode", true);
|
|
||||||
this->zeroInitWorkgroupMemory = config.getOption<bool>("d3d11.zeroInitWorkgroupMemory", false);
|
this->zeroInitWorkgroupMemory = config.getOption<bool>("d3d11.zeroInitWorkgroupMemory", false);
|
||||||
this->forceVolatileTgsmAccess = config.getOption<bool>("d3d11.forceVolatileTgsmAccess", false);
|
this->forceVolatileTgsmAccess = config.getOption<bool>("d3d11.forceVolatileTgsmAccess", false);
|
||||||
this->relaxedBarriers = config.getOption<bool>("d3d11.relaxedBarriers", false);
|
this->relaxedBarriers = config.getOption<bool>("d3d11.relaxedBarriers", false);
|
||||||
|
@ -13,13 +13,6 @@ namespace dxvk {
|
|||||||
struct D3D11Options {
|
struct D3D11Options {
|
||||||
D3D11Options(const Config& config);
|
D3D11Options(const Config& config);
|
||||||
|
|
||||||
/// Enables speed hack for mapping on deferred contexts
|
|
||||||
///
|
|
||||||
/// This can substantially speed up some games, but may
|
|
||||||
/// cause issues if the game submits command lists more
|
|
||||||
/// than once.
|
|
||||||
bool dcSingleUseMode = false;
|
|
||||||
|
|
||||||
/// Zero-initialize workgroup memory
|
/// Zero-initialize workgroup memory
|
||||||
///
|
///
|
||||||
/// Workargound for games that don't initialize
|
/// Workargound for games that don't initialize
|
||||||
|
@ -82,7 +82,6 @@ namespace dxvk {
|
|||||||
/* The Evil Within: Submits command lists *
|
/* The Evil Within: Submits command lists *
|
||||||
* multiple times */
|
* multiple times */
|
||||||
{ R"(\\EvilWithin(Demo)?\.exe$)", {{
|
{ R"(\\EvilWithin(Demo)?\.exe$)", {{
|
||||||
{ "d3d11.dcSingleUseMode", "False" },
|
|
||||||
{ "d3d11.cachedDynamicResources", "vi" },
|
{ "d3d11.cachedDynamicResources", "vi" },
|
||||||
}} },
|
}} },
|
||||||
/* Far Cry 3: Assumes clear(0.5) on an UNORM *
|
/* Far Cry 3: Assumes clear(0.5) on an UNORM *
|
||||||
@ -161,10 +160,6 @@ namespace dxvk {
|
|||||||
{ R"(\\NieR Replicant ver\.1\.22474487139\.exe)", {{
|
{ R"(\\NieR Replicant ver\.1\.22474487139\.exe)", {{
|
||||||
{ "d3d11.cachedDynamicResources", "vi" },
|
{ "d3d11.cachedDynamicResources", "vi" },
|
||||||
}} },
|
}} },
|
||||||
/* SteamVR performance test */
|
|
||||||
{ R"(\\vr\.exe$)", {{
|
|
||||||
{ "d3d11.dcSingleUseMode", "False" },
|
|
||||||
}} },
|
|
||||||
/* Hitman 2 - requires AGS library */
|
/* Hitman 2 - requires AGS library */
|
||||||
{ R"(\\HITMAN2\.exe$)", {{
|
{ R"(\\HITMAN2\.exe$)", {{
|
||||||
{ "dxgi.customVendorId", "10de" },
|
{ "dxgi.customVendorId", "10de" },
|
||||||
@ -350,11 +345,6 @@ namespace dxvk {
|
|||||||
{ R"(\\MSFC\.exe$)", {{
|
{ R"(\\MSFC\.exe$)", {{
|
||||||
{ "dxgi.maxFrameRate", "60" },
|
{ "dxgi.maxFrameRate", "60" },
|
||||||
}} },
|
}} },
|
||||||
/* Cardfight!! Vanguard Dear Days: *
|
|
||||||
* Submits command lists multiple times */
|
|
||||||
{ R"(\\VG2\.exe$)", {{
|
|
||||||
{ "d3d11.dcSingleUseMode", "False" },
|
|
||||||
}} },
|
|
||||||
/* Battlefield: Bad Company 2 *
|
/* Battlefield: Bad Company 2 *
|
||||||
* Gets rid of black flickering */
|
* Gets rid of black flickering */
|
||||||
{ R"(\\BFBC2Game\.exe$)", {{
|
{ R"(\\BFBC2Game\.exe$)", {{
|
||||||
@ -383,10 +373,6 @@ namespace dxvk {
|
|||||||
{ R"(\\CrashBandicootNSaneTrilogy\.exe$)", {{
|
{ R"(\\CrashBandicootNSaneTrilogy\.exe$)", {{
|
||||||
{ "dxgi.syncInterval", "1" },
|
{ "dxgi.syncInterval", "1" },
|
||||||
}} },
|
}} },
|
||||||
/* SnowRunner */
|
|
||||||
{ R"(\\SnowRunner\.exe$)", {{
|
|
||||||
{ "d3d11.dcSingleUseMode", "False" },
|
|
||||||
}} },
|
|
||||||
/* Fallout 76
|
/* Fallout 76
|
||||||
* Game tries to be too "smart" and changes sync
|
* Game tries to be too "smart" and changes sync
|
||||||
* interval based on performance (in fullscreen)
|
* interval based on performance (in fullscreen)
|
||||||
@ -408,10 +394,6 @@ namespace dxvk {
|
|||||||
{ R"(\\BLADESTORM Nightmare\\Launch_(EA|JP)\.exe$)", {{
|
{ R"(\\BLADESTORM Nightmare\\Launch_(EA|JP)\.exe$)", {{
|
||||||
{ "dxgi.maxFrameRate", "60" },
|
{ "dxgi.maxFrameRate", "60" },
|
||||||
}} },
|
}} },
|
||||||
/* Ghost Recon Wildlands */
|
|
||||||
{ R"(\\GRW\.exe$)", {{
|
|
||||||
{ "d3d11.dcSingleUseMode", "False" },
|
|
||||||
}} },
|
|
||||||
/* Vindictus d3d11 CPU bound perf, and work *
|
/* Vindictus d3d11 CPU bound perf, and work *
|
||||||
* around the game not properly initializing *
|
* around the game not properly initializing *
|
||||||
* some of its constant buffers after discard */
|
* some of its constant buffers after discard */
|
||||||
@ -476,11 +458,6 @@ namespace dxvk {
|
|||||||
{ R"(\\FarCry(5|NewDawn)\.exe$)", {{
|
{ R"(\\FarCry(5|NewDawn)\.exe$)", {{
|
||||||
{ "d3d11.zeroInitWorkgroupMemory", "True" },
|
{ "d3d11.zeroInitWorkgroupMemory", "True" },
|
||||||
}} },
|
}} },
|
||||||
/* Cardfight!! Vanguard Dear Days 2 - Broken *
|
|
||||||
* effects and Invisible cards in battles */
|
|
||||||
{ R"(\\VGDD2\.exe$)", {{
|
|
||||||
{ "d3d11.dcSingleUseMode", "False" },
|
|
||||||
}} },
|
|
||||||
|
|
||||||
/**********************************************/
|
/**********************************************/
|
||||||
/* D3D9 GAMES */
|
/* D3D9 GAMES */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user