st/nine: Fix crash when deleting non-implicit swapchain
The implicit swapchains are destroyed when the device instance is destroyed. However for non-implicit swapchains, it is not the case, and the application can have kept an reference on the swapchain buffers to reuse them. Fixes problems with battle.net launcher. Cc: "10.4" <mesa-stable@lists.freedesktop.org> Tested-by: Nick Sarnie <commendsarnex@gmail.com> Reviewed-by: Ilia Mirkin <imirkin@alum.mit.edu> Reviewed-by: David Heidelberg <david@ixit.cz> Signed-off-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:
@@ -467,7 +467,7 @@ NineSwapChain9_dtor( struct NineSwapChain9 *This )
|
||||
|
||||
if (This->buffers) {
|
||||
for (i = 0; i < This->params.BackBufferCount; i++) {
|
||||
NineUnknown_Destroy(NineUnknown(This->buffers[i]));
|
||||
NineUnknown_Release(NineUnknown(This->buffers[i]));
|
||||
ID3DPresent_DestroyD3DWindowBuffer(This->present, This->present_handles[i]);
|
||||
if (This->present_buffers)
|
||||
pipe_resource_reference(&(This->present_buffers[i]), NULL);
|
||||
|
||||
Reference in New Issue
Block a user