mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-27 04:54:15 +01:00
[d3d9] Enable longMad behaviour by default
And remove the respective config option.
This commit is contained in:
parent
60e04503a6
commit
1e5b78e8ea
12
dxvk.conf
12
dxvk.conf
@ -517,18 +517,6 @@
|
|||||||
# d3d9.forceSwapchainMSAA = -1
|
# d3d9.forceSwapchainMSAA = -1
|
||||||
|
|
||||||
|
|
||||||
# Long Mad
|
|
||||||
#
|
|
||||||
# Should we make our Mads a FFma or do it the long way with an FMul and an FAdd?
|
|
||||||
# This solves some rendering bugs in games that have z-pass shaders which
|
|
||||||
# don't match entirely to the regular vertex shader in this way.
|
|
||||||
#
|
|
||||||
# Supported values:
|
|
||||||
# - True/False
|
|
||||||
|
|
||||||
# d3d9.longMad = False
|
|
||||||
|
|
||||||
|
|
||||||
# Device Local Constant Buffers
|
# Device Local Constant Buffers
|
||||||
#
|
#
|
||||||
# Enables using device local, host accessible memory for constant buffers in D3D9.
|
# Enables using device local, host accessible memory for constant buffers in D3D9.
|
||||||
|
@ -67,7 +67,6 @@ namespace dxvk {
|
|||||||
this->forceSampleRateShading = config.getOption<bool> ("d3d9.forceSampleRateShading", false);
|
this->forceSampleRateShading = config.getOption<bool> ("d3d9.forceSampleRateShading", false);
|
||||||
this->forceAspectRatio = config.getOption<std::string> ("d3d9.forceAspectRatio", "");
|
this->forceAspectRatio = config.getOption<std::string> ("d3d9.forceAspectRatio", "");
|
||||||
this->enumerateByDisplays = config.getOption<bool> ("d3d9.enumerateByDisplays", true);
|
this->enumerateByDisplays = config.getOption<bool> ("d3d9.enumerateByDisplays", true);
|
||||||
this->longMad = config.getOption<bool> ("d3d9.longMad", false);
|
|
||||||
this->cachedDynamicBuffers = config.getOption<bool> ("d3d9.cachedDynamicBuffers", false);
|
this->cachedDynamicBuffers = config.getOption<bool> ("d3d9.cachedDynamicBuffers", false);
|
||||||
this->deviceLocalConstantBuffers = config.getOption<bool> ("d3d9.deviceLocalConstantBuffers", false);
|
this->deviceLocalConstantBuffers = config.getOption<bool> ("d3d9.deviceLocalConstantBuffers", false);
|
||||||
this->allowDirectBufferMapping = config.getOption<bool> ("d3d9.allowDirectBufferMapping", true);
|
this->allowDirectBufferMapping = config.getOption<bool> ("d3d9.allowDirectBufferMapping", true);
|
||||||
|
@ -119,11 +119,6 @@ namespace dxvk {
|
|||||||
/// Enumerate adapters by displays
|
/// Enumerate adapters by displays
|
||||||
bool enumerateByDisplays;
|
bool enumerateByDisplays;
|
||||||
|
|
||||||
/// Should we make our Mads a FFma or do it the long way with an FMul and an FAdd?
|
|
||||||
/// This solves some rendering bugs in games that have z-pass shaders which
|
|
||||||
/// don't match entirely to the regular vertex shader in this way.
|
|
||||||
bool longMad;
|
|
||||||
|
|
||||||
/// Cached dynamic buffers: Maps all buffers in cached memory.
|
/// Cached dynamic buffers: Maps all buffers in cached memory.
|
||||||
bool cachedDynamicBuffers;
|
bool cachedDynamicBuffers;
|
||||||
|
|
||||||
|
@ -1932,21 +1932,13 @@ namespace dxvk {
|
|||||||
emitRegisterLoad(src[1], mask).id);
|
emitRegisterLoad(src[1], mask).id);
|
||||||
break;
|
break;
|
||||||
case DxsoOpcode::Mad:
|
case DxsoOpcode::Mad:
|
||||||
if (!m_moduleInfo.options.longMad) {
|
result.id = emitMul(
|
||||||
result.id = emitFma(
|
emitRegisterLoad(src[0], mask),
|
||||||
emitRegisterLoad(src[0], mask),
|
emitRegisterLoad(src[1], mask)).id;
|
||||||
emitRegisterLoad(src[1], mask),
|
|
||||||
emitRegisterLoad(src[2], mask)).id;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
result.id = emitMul(
|
|
||||||
emitRegisterLoad(src[0], mask),
|
|
||||||
emitRegisterLoad(src[1], mask)).id;
|
|
||||||
|
|
||||||
result.id = m_module.opFAdd(typeId,
|
result.id = m_module.opFAdd(typeId,
|
||||||
result.id,
|
result.id,
|
||||||
emitRegisterLoad(src[2], mask).id);
|
emitRegisterLoad(src[2], mask).id);
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case DxsoOpcode::Mul:
|
case DxsoOpcode::Mul:
|
||||||
result.id = emitMul(
|
result.id = emitMul(
|
||||||
|
@ -29,7 +29,6 @@ namespace dxvk {
|
|||||||
|
|
||||||
vertexFloatConstantBufferAsSSBO = pDevice->GetVertexConstantLayout().floatSize() > devInfo.core.properties.limits.maxUniformBufferRange;
|
vertexFloatConstantBufferAsSSBO = pDevice->GetVertexConstantLayout().floatSize() > devInfo.core.properties.limits.maxUniformBufferRange;
|
||||||
|
|
||||||
longMad = options.longMad;
|
|
||||||
robustness2Supported = devFeatures.extRobustness2.robustBufferAccess2;
|
robustness2Supported = devFeatures.extRobustness2.robustBufferAccess2;
|
||||||
|
|
||||||
drefScaling = options.drefScaling;
|
drefScaling = options.drefScaling;
|
||||||
|
@ -42,11 +42,6 @@ namespace dxvk {
|
|||||||
/// Should the SWVP float constant buffer be a SSBO (because of the size on NV)
|
/// Should the SWVP float constant buffer be a SSBO (because of the size on NV)
|
||||||
bool vertexFloatConstantBufferAsSSBO;
|
bool vertexFloatConstantBufferAsSSBO;
|
||||||
|
|
||||||
/// Should we make our Mads a FFma or do it the long way with an FMul and an FAdd?
|
|
||||||
/// This solves some rendering bugs in games that have z-pass shaders which
|
|
||||||
/// don't match entirely to the regular vertex shader in this way.
|
|
||||||
bool longMad;
|
|
||||||
|
|
||||||
/// Whether or not we can rely on robustness2 to handle oob constant access
|
/// Whether or not we can rely on robustness2 to handle oob constant access
|
||||||
bool robustness2Supported;
|
bool robustness2Supported;
|
||||||
|
|
||||||
|
@ -611,7 +611,6 @@ namespace dxvk {
|
|||||||
* like a game bug that d3d9 drivers work *
|
* like a game bug that d3d9 drivers work *
|
||||||
* around. */
|
* around. */
|
||||||
{ R"(\\(BF2|BF2142)\.exe$)", {{
|
{ R"(\\(BF2|BF2142)\.exe$)", {{
|
||||||
{ "d3d9.longMad", "True" },
|
|
||||||
{ "d3d9.deviceLossOnFocusLoss", "True" },
|
{ "d3d9.deviceLossOnFocusLoss", "True" },
|
||||||
{ "d3d9.countLosableResources", "False"},
|
{ "d3d9.countLosableResources", "False"},
|
||||||
}} },
|
}} },
|
||||||
@ -627,7 +626,6 @@ namespace dxvk {
|
|||||||
{ R"(\\(trl|tra|tru)\.exe$)", {{
|
{ R"(\\(trl|tra|tru)\.exe$)", {{
|
||||||
{ "d3d9.cachedDynamicBuffers", "True" },
|
{ "d3d9.cachedDynamicBuffers", "True" },
|
||||||
{ "d3d9.maxFrameRate", "60" },
|
{ "d3d9.maxFrameRate", "60" },
|
||||||
{ "d3d9.longMad", "True" },
|
|
||||||
}} },
|
}} },
|
||||||
/* Everquest */
|
/* Everquest */
|
||||||
{ R"(\\eqgame\.exe$)", {{
|
{ R"(\\eqgame\.exe$)", {{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user