1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2024-12-02 10:24:12 +01:00

[dxbc] Check for RADV/Nvidia drivers explicitly using the new function

This way, only RADV gets locked out of using early discard whereas
AMDVLK and -PRO are able to use it.
This commit is contained in:
Philip Rebohle 2018-12-12 16:27:01 +01:00
parent 598280dc3f
commit f276bcd0e7
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99

View File

@ -10,8 +10,10 @@ namespace dxvk {
DxbcOptions::DxbcOptions(const Rc<DxvkDevice>& device, const D3D11Options& options) {
const Rc<DxvkAdapter> adapter = device->adapter();
const DxvkDeviceFeatures& devFeatures = device->features();
const DxvkDeviceInfo& devInfo = device->adapter()->devicePropertiesExt();
const DxvkDeviceInfo& devInfo = adapter->devicePropertiesExt();
useStorageImageReadWithoutFormat
= devFeatures.core.features.shaderStorageImageReadWithoutFormat;
@ -24,10 +26,8 @@ namespace dxvk {
// Disable early discard on AMD due to GPU hangs
// Disable early discard on Nvidia because it may hurt performance
auto vendor = DxvkGpuVendor(devInfo.core.properties.vendorID);
if (vendor == DxvkGpuVendor::Amd
|| vendor == DxvkGpuVendor::Nvidia)
if (adapter->matchesDriver(DxvkGpuVendor::Amd, VK_DRIVER_ID_MESA_RADV_KHR, 0, 0)
|| adapter->matchesDriver(DxvkGpuVendor::Nvidia, VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR, 0, 0))
useSubgroupOpsForEarlyDiscard = false;
}