Skip to content

Commit eed29fa

Browse files
committed
more ICPUBuffer fixes
Signed-off-by: Ali Cheraghi <alichraghi@proton.me>
1 parent 3398802 commit eed29fa

File tree

4 files changed

+9
-4
lines changed

4 files changed

+9
-4
lines changed

include/nbl/asset/ICPUBuffer.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,11 @@ class ICPUBuffer final : public asset::IBuffer, public IPreHashed
130130
asset::IBuffer({ params.size, EUF_TRANSFER_DST_BIT }), m_data(params.data),
131131
m_mem_resource(params.memoryResource), m_alignment(params.alignment) {}
132132

133+
~ICPUBuffer() override {
134+
if (m_data)
135+
m_mem_resource->deallocate(m_data, m_creationParams.size, m_alignment);
136+
}
137+
133138
void* m_data;
134139
core::smart_refctd_ptr<core::refctd_memory_resource> m_mem_resource;
135140
size_t m_alignment;

include/nbl/core/alloc/refctd_memory_resource.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class refctd_memory_resource : public core::IReferenceCounted
3535

3636
NBL_API2 smart_refctd_ptr<refctd_memory_resource> getNullMemoryResource();
3737
NBL_API2 smart_refctd_ptr<refctd_memory_resource> getDefaultMemoryResource();
38-
NBL_API2 void setDefaultMemoryResource(smart_refctd_ptr<refctd_memory_resource> memoryResource);
38+
NBL_API2 void setDefaultMemoryResource(refctd_memory_resource* memoryResource);
3939

4040
}
4141

src/nbl/asset/ICPUImage.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ class CFlattenRegionsStreamHashImageFilter : public CMatchedSizeInOutImageFilter
122122

123123
auto getScratchAsBuffer = [&memory = state->scratch.memory](size_t size, size_t offset = 0ull)
124124
{
125-
return ICPUBuffer::create({ .size = size, .data = (uint8_t*)memory + offset }, core::adopt_memory); // adopt memory & don't free it on exit
125+
return ICPUBuffer::create({ .size = size, .data = (uint8_t*)memory + offset, .memoryResource = core::getNullMemoryResource() }, core::adopt_memory); // adopt memory & don't free it on exit
126126
};
127127

128128
/*

src/nbl/core/alloc/refctd_memory_resource.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ smart_refctd_ptr<refctd_memory_resource> core::getDefaultMemoryResource()
2424
return default_memory_resource;
2525
}
2626

27-
void core::setDefaultMemoryResource(smart_refctd_ptr<refctd_memory_resource> memoryResource)
27+
void core::setDefaultMemoryResource(refctd_memory_resource* memoryResource)
2828
{
29-
default_memory_resource = memoryResource;
29+
default_memory_resource = smart_refctd_ptr<refctd_memory_resource>(memoryResource, dont_grab);
3030
}

0 commit comments

Comments
 (0)