gl: Move ownership of the global blitter object from texture cache to global

This commit is contained in:
kd-11
2026-03-09 21:09:25 +03:00
committed by kd-11
parent 0869ef421d
commit ef70a6e825
4 changed files with 13 additions and 9 deletions
+1
View File
@@ -398,6 +398,7 @@ void GLGSRender::on_init_thread()
m_ui_renderer.create(); m_ui_renderer.create();
m_video_output_pass.create(); m_video_output_pass.create();
gl::init_global_texture_resources();
m_gl_texture_cache.initialize(); m_gl_texture_cache.initialize();
m_prog_buffer.initialize m_prog_buffer.initialize
+9
View File
@@ -22,6 +22,13 @@ namespace gl
legacy_ring_buffer g_upload_transfer_buffer; legacy_ring_buffer g_upload_transfer_buffer;
scratch_ring_buffer g_compute_decode_buffer; scratch_ring_buffer g_compute_decode_buffer;
scratch_ring_buffer g_deswizzle_scratch_buffer; scratch_ring_buffer g_deswizzle_scratch_buffer;
blitter g_blitter;
void init_global_texture_resources()
{
g_blitter.init();
g_hw_blitter = &g_blitter;
}
void destroy_global_texture_resources() void destroy_global_texture_resources()
{ {
@@ -29,6 +36,8 @@ namespace gl
g_upload_transfer_buffer.remove(); g_upload_transfer_buffer.remove();
g_compute_decode_buffer.remove(); g_compute_decode_buffer.remove();
g_deswizzle_scratch_buffer.remove(); g_deswizzle_scratch_buffer.remove();
g_blitter.destroy();
g_hw_blitter = nullptr;
} }
template <typename WordType, bool SwapBytes> template <typename WordType, bool SwapBytes>
+1
View File
@@ -86,5 +86,6 @@ namespace gl
extern std::unique_ptr<texture> g_vis_texture; extern std::unique_ptr<texture> g_vis_texture;
} }
void init_global_texture_resources();
void destroy_global_texture_resources(); void destroy_global_texture_resources();
} }
+2 -9
View File
@@ -431,9 +431,7 @@ namespace gl
using gl::viewable_image::viewable_image; using gl::viewable_image::viewable_image;
}; };
blitter m_hw_blitter;
std::vector<std::unique_ptr<temporary_image_t>> m_temporary_surfaces; std::vector<std::unique_ptr<temporary_image_t>> m_temporary_surfaces;
const u32 max_cached_image_pool_size = 256; const u32 max_cached_image_pool_size = 256;
private: private:
@@ -815,16 +813,11 @@ namespace gl
using baseclass::texture_cache; using baseclass::texture_cache;
void initialize() void initialize()
{ {}
m_hw_blitter.init();
g_hw_blitter = &m_hw_blitter;
}
void destroy() override void destroy() override
{ {
clear(); clear();
g_hw_blitter = nullptr;
m_hw_blitter.destroy();
} }
bool is_depth_texture(u32 rsx_address, u32 rsx_size) override bool is_depth_texture(u32 rsx_address, u32 rsx_size) override
@@ -870,7 +863,7 @@ namespace gl
bool blit(gl::command_context& cmd, const rsx::blit_src_info& src, const rsx::blit_dst_info& dst, bool linear_interpolate, gl_render_targets& m_rtts) bool blit(gl::command_context& cmd, const rsx::blit_src_info& src, const rsx::blit_dst_info& dst, bool linear_interpolate, gl_render_targets& m_rtts)
{ {
auto result = upload_scaled_image(src, dst, linear_interpolate, cmd, m_rtts, m_hw_blitter); auto result = upload_scaled_image(src, dst, linear_interpolate, cmd, m_rtts, *g_hw_blitter);
if (result.succeeded) if (result.succeeded)
{ {