mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-01-19 14:52:10 +01:00
[dxbc] Drop workarounds for unsupported drivers
This commit is contained in:
parent
223a4fd186
commit
1dd3f24b43
@ -5366,11 +5366,8 @@ namespace dxvk {
|
|||||||
result.type.ctype = DxbcScalarType::Sint32;
|
result.type.ctype = DxbcScalarType::Sint32;
|
||||||
result.type.ccount = 1;
|
result.type.ccount = 1;
|
||||||
|
|
||||||
const uint32_t typeId = getVectorTypeId(result.type);
|
uint32_t typeId = getVectorTypeId(result.type);
|
||||||
|
uint32_t offset = m_module.opShiftRightLogical(typeId, structOffset.id, m_module.consti32(2));
|
||||||
uint32_t offset = m_moduleInfo.options.useSdivForBufferIndex
|
|
||||||
? m_module.opSDiv (typeId, structOffset.id, m_module.consti32(4))
|
|
||||||
: m_module.opShiftRightLogical(typeId, structOffset.id, m_module.consti32(2));
|
|
||||||
|
|
||||||
result.id = m_module.opIAdd(typeId,
|
result.id = m_module.opIAdd(typeId,
|
||||||
m_module.opIMul(typeId, structId.id, m_module.consti32(structStride / 4)),
|
m_module.opIMul(typeId, structId.id, m_module.consti32(structStride / 4)),
|
||||||
@ -5386,10 +5383,7 @@ namespace dxvk {
|
|||||||
result.type.ccount = 1;
|
result.type.ccount = 1;
|
||||||
|
|
||||||
uint32_t typeId = getVectorTypeId(result.type);
|
uint32_t typeId = getVectorTypeId(result.type);
|
||||||
|
result.id = m_module.opShiftRightLogical(typeId, byteOffset.id, m_module.consti32(2));
|
||||||
result.id = m_moduleInfo.options.useSdivForBufferIndex
|
|
||||||
? m_module.opSDiv (typeId, byteOffset.id, m_module.consti32(4))
|
|
||||||
: m_module.opShiftRightLogical(typeId, byteOffset.id, m_module.consti32(2));
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,8 +28,6 @@ namespace dxvk {
|
|||||||
= (devInfo.vk11.subgroupSize >= 4)
|
= (devInfo.vk11.subgroupSize >= 4)
|
||||||
&& (devInfo.vk11.subgroupSupportedStages & VK_SHADER_STAGE_FRAGMENT_BIT)
|
&& (devInfo.vk11.subgroupSupportedStages & VK_SHADER_STAGE_FRAGMENT_BIT)
|
||||||
&& (devInfo.vk11.subgroupSupportedOperations & VK_SUBGROUP_FEATURE_BALLOT_BIT);
|
&& (devInfo.vk11.subgroupSupportedOperations & VK_SUBGROUP_FEATURE_BALLOT_BIT);
|
||||||
useSdivForBufferIndex
|
|
||||||
= adapter->matchesDriver(VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR, 0, 0);
|
|
||||||
|
|
||||||
switch (device->config().useRawSsbo) {
|
switch (device->config().useRawSsbo) {
|
||||||
case Tristate::Auto: minSsboAlignment = devInfo.core.properties.limits.minStorageBufferOffsetAlignment; break;
|
case Tristate::Auto: minSsboAlignment = devInfo.core.properties.limits.minStorageBufferOffsetAlignment; break;
|
||||||
@ -43,10 +41,6 @@ namespace dxvk {
|
|||||||
forceTgsmBarriers = options.forceTgsmBarriers;
|
forceTgsmBarriers = options.forceTgsmBarriers;
|
||||||
disableMsaa = options.disableMsaa;
|
disableMsaa = options.disableMsaa;
|
||||||
|
|
||||||
// Disable subgroup early discard on Nvidia because it may hurt performance
|
|
||||||
if (adapter->matchesDriver(VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR, 0, 0))
|
|
||||||
useSubgroupOpsForEarlyDiscard = false;
|
|
||||||
|
|
||||||
// Figure out float control flags to match D3D11 rules
|
// Figure out float control flags to match D3D11 rules
|
||||||
if (options.floatControls) {
|
if (options.floatControls) {
|
||||||
if (devInfo.vk12.shaderSignedZeroInfNanPreserveFloat32)
|
if (devInfo.vk12.shaderSignedZeroInfNanPreserveFloat32)
|
||||||
@ -62,8 +56,7 @@ namespace dxvk {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!devInfo.vk12.shaderSignedZeroInfNanPreserveFloat32
|
if (!devInfo.vk12.shaderSignedZeroInfNanPreserveFloat32)
|
||||||
|| adapter->matchesDriver(VK_DRIVER_ID_MESA_RADV_KHR, 0, VK_MAKE_VERSION(20, 3, 0)))
|
|
||||||
enableRtOutputNanFixup = true;
|
enableRtOutputNanFixup = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,10 +37,6 @@ namespace dxvk {
|
|||||||
/// shader invocations if derivatives remain valid.
|
/// shader invocations if derivatives remain valid.
|
||||||
bool useSubgroupOpsForEarlyDiscard = false;
|
bool useSubgroupOpsForEarlyDiscard = false;
|
||||||
|
|
||||||
/// Use SDiv instead of SHR to converte byte offsets to
|
|
||||||
/// dword offsets. Fixes RE2 and DMC5 on Nvidia drivers.
|
|
||||||
bool useSdivForBufferIndex = false;
|
|
||||||
|
|
||||||
/// Enables NaN fixup for render target outputs
|
/// Enables NaN fixup for render target outputs
|
||||||
bool enableRtOutputNanFixup = false;
|
bool enableRtOutputNanFixup = false;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user