On Fri, 16 Aug 2019 at 04:42, Christopher Cifra christopher.cifra@ni.com wrote:
That makes sense and matches what I am seeing. The swapchain does have the correct window set on it by way of wined3d_swapchain_set_window. But in wined3d_context_gl_acquire we get into the rendering offscreen case:
if (current_context && current_context->current_rt.texture == texture) { ... } else if (texture && !wined3d_resource_is_offscreen(&texture->resource)) { ... } else { TRACE("Rendering offscreen.\n"); /* Stay with the current context if possible. Otherwise use the * context for the primary swapchain. */ if (current_context && current_context->device == device) context = current_context; else if (!(context = swapchain_get_context(device->swapchains[0]))) return NULL; }
Just to make sure, are you using wine-4.13 or later? What you should be seeing is that swapchain_gl_present()[1] calls context_acquire() with swapchain->frontbuffer, which is always considered onscreen by wined3d_resource_is_offscreen()[2].
Henri
[1] https://source.winehq.org/git/wine.git/blob/wine-4.13:/dlls/wined3d/swapchai... [2] https://source.winehq.org/git/wine.git/blob/wine-4.13:/dlls/wined3d/resource...