Skip to content

Commit

Permalink
HostDisplay: Fix cursor texture leak
Browse files Browse the repository at this point in the history
  • Loading branch information
stenzek committed Feb 7, 2023
1 parent 9e9b0e2 commit befbc7b
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 1 deletion.
5 changes: 5 additions & 0 deletions src/core/host_display.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@ RenderAPI HostDisplay::GetPreferredAPI()
#endif
}

void HostDisplay::DestroyResources()
{
m_cursor_texture.reset();
}

bool HostDisplay::UpdateTexture(GPUTexture* texture, u32 x, u32 y, u32 width, u32 height, const void* data, u32 pitch)
{
void* map_ptr;
Expand Down
2 changes: 1 addition & 1 deletion src/core/host_display.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ class HostDisplay
virtual bool SetFullscreen(bool fullscreen, u32 width, u32 height, float refresh_rate) = 0;
virtual AdapterAndModeList GetAdapterAndModeList() = 0;
virtual bool CreateResources() = 0;
virtual void DestroyResources() = 0;
virtual void DestroyResources();

virtual bool SetPostProcessingChain(const std::string_view& config) = 0;

Expand Down
2 changes: 2 additions & 0 deletions src/frontend-common/d3d11_host_display.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -633,6 +633,8 @@ bool D3D11HostDisplay::CreateResources()

void D3D11HostDisplay::DestroyResources()
{
HostDisplay::DestroyResources();

m_post_processing_chain.ClearStages();
m_post_processing_input_texture.Destroy();
m_post_processing_stages.clear();
Expand Down
2 changes: 2 additions & 0 deletions src/frontend-common/d3d12_host_display.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -545,6 +545,8 @@ bool D3D12HostDisplay::CreateResources()

void D3D12HostDisplay::DestroyResources()
{
HostDisplay::DestroyResources();

m_post_processing_cbuffer.Destroy(false);
m_post_processing_chain.ClearStages();
m_post_processing_input_texture.Destroy();
Expand Down
2 changes: 2 additions & 0 deletions src/frontend-common/opengl_host_display.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -617,6 +617,8 @@ void main()

void OpenGLHostDisplay::DestroyResources()
{
HostDisplay::DestroyResources();

m_post_processing_chain.ClearStages();
m_post_processing_input_texture.Destroy();
m_post_processing_ubo.reset();
Expand Down
2 changes: 2 additions & 0 deletions src/frontend-common/vulkan_host_display.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -545,6 +545,8 @@ void main()

void VulkanHostDisplay::DestroyResources()
{
HostDisplay::DestroyResources();

Vulkan::Util::SafeDestroyPipelineLayout(m_post_process_pipeline_layout);
Vulkan::Util::SafeDestroyPipelineLayout(m_post_process_ubo_pipeline_layout);
Vulkan::Util::SafeDestroyDescriptorSetLayout(m_post_process_descriptor_set_layout);
Expand Down

0 comments on commit befbc7b

Please sign in to comment.