mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-14 22:29:15 +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)
|
if (format == VK_FORMAT_UNDEFINED)
|
||||||
format = srcImage->info().format;
|
format = srcImage->info().format;
|
||||||
|
|
||||||
if (srcImage->info().format == format
|
bool useFb = srcImage->info().format != format
|
||||||
&& dstImage->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(
|
this->resolveImageHw(
|
||||||
dstImage, srcImage, region);
|
dstImage, srcImage, region);
|
||||||
} else {
|
} 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_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_OPEN_SOURCE_KHR, 0, 0)
|
||||||
|| m_adapter->matchesDriver(DxvkGpuVendor::Amd, VK_DRIVER_ID_AMD_PROPRIETARY_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;
|
return hints;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,6 +42,7 @@ namespace dxvk {
|
|||||||
*/
|
*/
|
||||||
struct DxvkDevicePerfHints {
|
struct DxvkDevicePerfHints {
|
||||||
VkBool32 preferFbDepthStencilCopy : 1;
|
VkBool32 preferFbDepthStencilCopy : 1;
|
||||||
|
VkBool32 preferFbResolve : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user