[PATCH 4/7] wined3d: Avoid using destroyed context.

Józef Kucia joseph.kucia at gmail.com
Mon Oct 3 10:27:26 CDT 2016


03.10.2016 3:47 PM "Henri Verbeet" <hverbeet at gmail.com>:
> I think it may be harder to fix than this. If state_unbind_resources()
> can end up destroying the (primary) swapchain, it's not safe to call
> context_acquire() afterwards. Which means it's unsafe to unload
> resources or even unload a different SRV. The reason destroying the
> RTVs is currently safe, is that we unloaded resources earlier, so
> releasing the references to the resources for those views shouldn't
> acquire a context to destroy e.g. the GL texture again, but that's
> already more fragile than I'd like. Perhaps we should just delay
> destroying the context until leaving the last level.

I think this fix is correct. The device keeps a reference to the implicit
swapchain. The implicit swapchain is destroyed just before leaving from
wined3d_device_uninit_3d() so it should be safe to call context_acquire().

This problem occurs only for additional swapchains and that's why it
happens only in test_swapchain_flip().
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20161003/980ed462/attachment.html>


More information about the wine-devel mailing list