mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-13 19:29:14 +01:00
[dxvk] Default to fragment shader resolved on official AMD drivers
Improves performance of MSAA resolves. RADV does not benefit.
This commit is contained in:
parent
5d7b5b0e35
commit
0c0d582f24
@ -1594,9 +1594,16 @@ namespace dxvk {
|
||||
|
||||
if (format == VK_FORMAT_UNDEFINED)
|
||||
format = srcImage->info().format;
|
||||
|
||||
if (srcImage->info().format == format
|
||||
&& dstImage->info().format == format) {
|
||||
|
||||
bool useFb = srcImage->info().format != format
|
||||
|| dstImage->info().format != format;
|
||||
|
||||
if (m_device->perfHints().preferFbResolve) {
|
||||
useFb |= (dstImage->info().usage & VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT)
|
||||
&& (srcImage->info().usage & VK_IMAGE_USAGE_SAMPLED_BIT);
|
||||
}
|
||||
|
||||
if (!useFb) {
|
||||
this->resolveImageHw(
|
||||
dstImage, srcImage, region);
|
||||
} else {
|
||||
|
@ -261,6 +261,9 @@ namespace dxvk {
|
||||
&& (m_adapter->matchesDriver(DxvkGpuVendor::Amd, VK_DRIVER_ID_MESA_RADV_KHR, 0, 0)
|
||||
|| m_adapter->matchesDriver(DxvkGpuVendor::Amd, VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR, 0, 0)
|
||||
|| m_adapter->matchesDriver(DxvkGpuVendor::Amd, VK_DRIVER_ID_AMD_PROPRIETARY_KHR, 0, 0));
|
||||
hints.preferFbResolve = m_extensions.amdShaderFragmentMask
|
||||
&& (m_adapter->matchesDriver(DxvkGpuVendor::Amd, VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR, 0, 0)
|
||||
|| m_adapter->matchesDriver(DxvkGpuVendor::Amd, VK_DRIVER_ID_AMD_PROPRIETARY_KHR, 0, 0));
|
||||
return hints;
|
||||
}
|
||||
|
||||
|
@ -42,6 +42,7 @@ namespace dxvk {
|
||||
*/
|
||||
struct DxvkDevicePerfHints {
|
||||
VkBool32 preferFbDepthStencilCopy : 1;
|
||||
VkBool32 preferFbResolve : 1;
|
||||
};
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user