1
0
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:
Philip Rebohle 2020-05-19 18:54:25 +02:00
parent 5d7b5b0e35
commit 0c0d582f24
No known key found for this signature in database
GPG Key ID: C8CC613427A31C99
3 changed files with 14 additions and 3 deletions

View File

@ -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 {

View File

@ -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;
}

View File

@ -42,6 +42,7 @@ namespace dxvk {
*/
struct DxvkDevicePerfHints {
VkBool32 preferFbDepthStencilCopy : 1;
VkBool32 preferFbResolve : 1;
};
/**