...
 
Commits (2)
......@@ -394,6 +394,7 @@ namespace dxvk {
const D3D9Options& options) {
m_dfSupport = options.supportDFFormats;
m_x4r4g4b4Support = options.supportX4R4G4B4;
m_d32supportFinal = options.supportD32;
// AMD do not support 24-bit depth buffers on Vulkan,
// so we have to fall back to a 32-bit depth format.
......@@ -430,6 +431,9 @@ namespace dxvk {
if (Format == D3D9Format::DF24 && !m_dfSupport)
return D3D9_VK_FORMAT_MAPPING();
if (Format == D3D9Format::D32 && !m_d32supportFinal)
return D3D9_VK_FORMAT_MAPPING();
if (!m_d24s8Support && mapping.FormatColor == VK_FORMAT_D24_UNORM_S8_UINT)
mapping.FormatColor = VK_FORMAT_D32_SFLOAT_S8_UINT;
......
......@@ -209,6 +209,7 @@ namespace dxvk {
bool m_dfSupport;
bool m_x4r4g4b4Support;
bool m_d32supportFinal;
};
}
\ No newline at end of file
......@@ -52,6 +52,7 @@ namespace dxvk {
this->maxAvailableMemory = config.getOption<uint32_t>("d3d9.maxAvailableMemory", UINT32_MAX);
this->supportDFFormats = config.getOption<bool> ("d3d9.supportDFFormats", true);
this->supportX4R4G4B4 = config.getOption<bool> ("d3d9.supportX4R4G4B4", true);
this->supportD32 = config.getOption<bool> ("d3d9.supportD32", true);
this->swvpFloatCount = config.getOption<uint32_t>("d3d9.swvpFloatCount", caps::MaxFloatConstantsSoftware);
this->swvpIntCount = config.getOption<uint32_t>("d3d9.swvpIntCount", caps::MaxOtherConstantsSoftware);
this->swvpBoolCount = config.getOption<uint32_t>("d3d9.swvpBoolCount", caps::MaxOtherConstantsSoftware);
......
......@@ -83,6 +83,9 @@ namespace dxvk {
/// Support X4R4G4B4
bool supportX4R4G4B4;
/// Support D32
bool supportD32;
/// SWVP Constant Limits
uint32_t swvpFloatCount;
uint32_t swvpIntCount;
......
......@@ -256,6 +256,10 @@ namespace dxvk {
{ R"(\\SKShinoviVersus\.exe$)", {{
{ "d3d9.forceAspectRatio", "16:9" },
}} },
/* Metal Slug X */
{ R"(\\mslugx\.exe$)", {{
{ "d3d9.supportD32", "False" },
}} },
}};
......