On Tue Aug 18 12:07:01 2026 +0000, Stian Low wrote:
NieR Automata no longer crashes after skipping `wined3d_swapchain_rendertarget_view_gl_rotate` so it seems UAVs are not involved and may still be handled separately. NieR seems to expose a bug for latest patch that none of the tests nor any of the many games tested seem to catch. I will resolve NieR crashes before pushing any more changes. Yeah, leave UAVs and SRVs out of this patch - lets get what you have over the finish line.
Did you investigate Elizabeth's swapchain rotate index? I'll try to look into it myself later today. As I understand it the idea is like instead of using `view_gl->gl_view[0]`and rotating the gl_view pointer array do (pseudo code, I don't have the wined3d source code open right now) ``` static inline struct gl_view * wined3d_current_gl_view(const struct wined3d_rendertarget_view_gl *rtv_gl) { if (!rtv_gl->texture->swapchain) return &rtv_gl->gl_view[0]; return &rtv_gl->gl_view[rtv_gl->texture->swapchain->rotate_count]; } ``` then swapchain_view_rotate becomes a simple wrapping increment: ``` swapchain->rotate_count++; if (swapchain->rotate_count == swapchain->back_buffer_count) swapchain->rotate_count = 0; ``` This keeps the data structures simpler and no need for complicated pointer rotation. There are probably some details missing: e.g. before looking up texture->swapchain a check is needed if the view is actually targeting a 2D texture. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10567#note_149160