DRW: Use new gpu::TexturePool inside TextureFromPool

Follow up to #134403.
This commit is contained in:
Clément Foucault
2025-02-11 19:00:43 +01:00
parent 6138ee64a9
commit db2610f2e4
2 changed files with 10 additions and 6 deletions

View File

@@ -73,6 +73,7 @@
#include "GPU_framebuffer.hh"
#include "GPU_storage_buffer.hh"
#include "GPU_texture.hh"
#include "GPU_texture_pool.hh"
#include "GPU_uniform_buffer.hh"
namespace blender::draw {
@@ -1062,8 +1063,7 @@ class TextureFromPool : public Texture, NonMovable {
{
BLI_assert(this->tx_ == nullptr);
this->tx_ = DRW_texture_pool_texture_acquire(
DST.vmempool->texture_pool, UNPACK2(extent), format, usage);
this->tx_ = gpu::TexturePool::get().acquire_texture(UNPACK2(extent), format, usage);
if (G.debug & G_DEBUG_GPU) {
debug_clear();
@@ -1076,7 +1076,7 @@ class TextureFromPool : public Texture, NonMovable {
if (this->tx_ == nullptr) {
return;
}
DRW_texture_pool_texture_release(DST.vmempool->texture_pool, this->tx_);
gpu::TexturePool::get().release_texture(this->tx_);
this->tx_ = nullptr;
}
@@ -1087,8 +1087,8 @@ class TextureFromPool : public Texture, NonMovable {
static void swap(TextureFromPool &a, Texture &b)
{
Texture::swap(a, b);
DRW_texture_pool_give_texture_ownership(DST.vmempool->texture_pool, a);
DRW_texture_pool_take_texture_ownership(DST.vmempool->texture_pool, b);
gpu::TexturePool::get().give_texture_ownership(a);
gpu::TexturePool::get().take_texture_ownership(b);
}
static void swap(Texture &a, TextureFromPool &b)
{

View File

@@ -353,6 +353,7 @@ static void drw_viewport_data_reset(DRWData *drw_data)
DRW_instance_data_list_resize(drw_data->idatalist);
DRW_instance_data_list_reset(drw_data->idatalist);
DRW_texture_pool_reset(drw_data->texture_pool);
blender::gpu::TexturePool::get().reset();
}
void DRW_viewport_data_free(DRWData *drw_data)
@@ -1793,6 +1794,7 @@ void DRW_render_gpencil(RenderEngine *engine, Depsgraph *depsgraph)
GPU_depth_test(GPU_DEPTH_NONE);
blender::gpu::TexturePool::get().reset(true);
drw_manager_exit(&DST);
/* Restore Drawing area. */
@@ -1880,6 +1882,8 @@ void DRW_render_to_image(RenderEngine *engine, Depsgraph *depsgraph)
DRW_smoke_exit(DST.vmempool);
blender::gpu::TexturePool::get().reset(true);
drw_manager_exit(&DST);
DRW_cache_free_old_subdiv();
@@ -1966,7 +1970,6 @@ void DRW_custom_pipeline_begin(DrawEngineType *draw_engine_type, Depsgraph *deps
void DRW_custom_pipeline_end()
{
DRW_smoke_exit(DST.vmempool);
GPU_framebuffer_restore();
@@ -1980,6 +1983,7 @@ void DRW_custom_pipeline_end()
GPU_finish();
}
blender::gpu::TexturePool::get().reset(true);
drw_manager_exit(&DST);
}