1
0
mirror of https://github.com/EduApps-CDG/OpenDX synced 2024-12-30 09:45:37 +01:00

[dxbc] Remove packDrefValueIntoCoordinates hack

Causes more issues than it solves when the coordinate vector
gets too big.
This commit is contained in:
Philip Rebohle 2018-02-28 06:44:55 +01:00
parent fcb2b6d2d8
commit 8bfd12067a
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
3 changed files with 0 additions and 33 deletions

View File

@ -2633,17 +2633,6 @@ namespace dxvk {
DxbcRegMask(true, false, false, false))
: DxbcRegisterValue();
if (isDepthCompare && m_options.packDrefValueIntoCoordinates) {
const std::array<uint32_t, 2> packedCoordIds
= {{ coord.id, referenceValue.id }};
coord.type.ccount += 1;
coord.id = m_module.opCompositeConstruct(
getVectorTypeId(coord.type),
packedCoordIds.size(),
packedCoordIds.data());
}
// Determine the sampled image type based on the opcode.
const uint32_t sampledImageType = isDepthCompare
? m_module.defSampledImageType(m_textures.at(textureId).depthTypeId)
@ -2758,17 +2747,6 @@ namespace dxvk {
? emitRegisterLoad(ins.src[3], DxbcRegMask(true, false, false, false))
: DxbcRegisterValue();
if (isDepthCompare && m_options.packDrefValueIntoCoordinates) {
const std::array<uint32_t, 2> packedCoordIds
= {{ coord.id, referenceValue.id }};
coord.type.ccount += 1;
coord.id = m_module.opCompositeConstruct(
getVectorTypeId(coord.type),
packedCoordIds.size(),
packedCoordIds.data());
}
// Load explicit gradients for sample operations that require them
const bool hasExplicitGradients = ins.op == DxbcOpcode::SampleD;

View File

@ -12,18 +12,11 @@ namespace dxvk {
if (vendor == DxvkGpuVendor::Nvidia) {
// From vkd3d: NMin/NMax/NClamp crash the driver.
this->useSimpleMinMaxClamp = true;
// From vkd3d: Nvidia expects the depth reference
// value to be packed into the coordinate vector.
this->packDrefValueIntoCoordinates = true;
}
// Inform the user about which workarounds are enabled
if (this->useSimpleMinMaxClamp)
Logger::warn("DxbcOptions: Using FMin/FMax/FClamp instead of NMin/NMax/NClamp");
if (this->packDrefValueIntoCoordinates)
Logger::warn("DxbcOptions: Packing depth reference value into coordinate vector");
}
}

View File

@ -17,10 +17,6 @@ namespace dxvk {
/// Use Fmin/Fmax instead of Nmin/Nmax.
bool useSimpleMinMaxClamp = false;
/// Pack the depth reference value into the
/// coordinate vector for depth-compare ops.
bool packDrefValueIntoCoordinates = false;
};
}