@hverbeet do you remember how to reproduce whatever bug the wine-staging patch was supposed to fix?
It addressed the UI flashing/flickering in some (mainly Qt based) applications like the Steam store/library page when using D3D to render/composite the UI. I'm not entirely sure whether that change is still needed; I haven't tried in a while, and these applications update all the time. It should be noted that the patch isn't entirely correct/complete either though; it will make test_flip() from d3d9/tests/visual.c fail. That's also the reason the wined3d_swapchain_gl_rotate()/wined3d_swapchain_vk_rotate() can't simply be removed; we have tests that show rotation is required in at least some cases. For d3d10/11 that's test_swapchain_flip() in d3d11/tests/d3d11.c and d3d10core/tests/d3d10core.c. It seems likely that the exact conditions under which rotation is supposed to happen will need some tweaking, but it also seems likely that swapchain views will just need to deal with rotation in one way or another. This will be a bit annoying, but perhaps ultimately not too hard; I imagine we could create multiple GL/Vulkan views for RTVs on swapchain resources, and rotate among them when needed using a mechanism similar to the wined3d_bo_user list. Taking a bit of a step back, there's a lot of text in both this MR and the associated bug reports, and I'm afraid I haven't quite kept up with reading all of it. For the benefit of my understanding, could you answer the following questions for me? - These are all Direct3D 11 applications, right? So Direct3D 9 state like WINED3D_RS_SRGBWRITEENABLE and WINED3D_SAMP_SRGB_TEXTURE shouldn't apply, correct? - With current upstream Wine, the applications print the "Swapchain views not supported." FIXME with both the GL renderer and the Vulkan renderer, correct? I.e., the basic issue is that the applications end up rendering to the texture's "default" view, which differs from the RTV's format in terms of sRGB. - In the GL case, which blitter ends up being used for swapchain_blit(), and why? I think you're hinting it's the GLSL blitter, but we'd normally expect the FBO blitter (fbo_blitter_blit()) to be used here. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10567#note_139804