On Tue, 26 Apr 2022 at 14:04, Stefan Dösinger <wine(a)gitlab.winehq.org> wrote:
From: Stefan Dösinger <stefan(a)codeweavers.com>
On Radeon GPUs VK_IMAGE_LAYOUT_GENERAL images don't use Delta Color Compression, but SRC/DST optimal images do. Transitioning from GENERAL to SRC/DST causes a big performance hit.
As a next step we should try harder to avoid VK_IMAGE_LAYOUT_GENERAL.
Signed-off-by: Stefan Dösinger <stefan(a)codeweavers.com>
---
This improves Rocket League from 50fps to 67fps when it is GPU limited. Using VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL instead of GENERAL further improves it to 80 fps. Switching from COLOR_ATTACHMENT_OPTIMAL to SRC/DST optimal seems cheap (it just stays compressed), but first we need logic to transition BIND_RENDER_TARGET | BIND_SHADER_RESOURCE textures between COLOR_ATTACHMENT_OPTIMAL and SHADER_READ_ONLY_OPTIMAL. --- dlls/wined3d/texture.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-)
For the benefit of the mailing list, nothing seems particularly wrong about this patch, but Stefan found it causes a regression in an application. So this patch is effectively pending until that is figured out.