Fix for allocation problems
- Double allocation because of missing break
This commit is contained in:
parent
8dc4f794b3
commit
36e2314f35
@ -49,7 +49,7 @@ typedef struct {
|
|||||||
|
|
||||||
RT_CVAR_S(rt_AssetDirectory, "Name of the asset directory. Default: assets", "assets");
|
RT_CVAR_S(rt_AssetDirectory, "Name of the asset directory. Default: assets", "assets");
|
||||||
RT_CVAR_I(rt_AssetDBSize, "Size of the asset database. Default: 1024", 1024);
|
RT_CVAR_I(rt_AssetDBSize, "Size of the asset database. Default: 1024", 1024);
|
||||||
RT_CVAR_I(rt_AssetProcessingThreads, "Number of asset processing threads. Default: 4", 1);
|
RT_CVAR_I(rt_AssetProcessingThreads, "Number of asset processing threads. Default: 4", 4);
|
||||||
RT_CVAR_I(rt_AssetProcessorArenaSize,
|
RT_CVAR_I(rt_AssetProcessorArenaSize,
|
||||||
"Size of the per-thread asset processor arena. Default: 128 MiB",
|
"Size of the per-thread asset processor arena. Default: 128 MiB",
|
||||||
(int)RT_MB(128));
|
(int)RT_MB(128));
|
||||||
@ -421,6 +421,7 @@ rt_loaded_asset LoadAsset(rt_file_id file) {
|
|||||||
rtLog("AC", "Failed to allocate buffer for loading %s.", path);
|
rtLog("AC", "Failed to allocate buffer for loading %s.", path);
|
||||||
return (rt_loaded_asset){.buffer = NULL, .size = 0};
|
return (rt_loaded_asset){.buffer = NULL, .size = 0};
|
||||||
}
|
}
|
||||||
|
rtLog("AC", "Allocated %p for %s", buffer, path);
|
||||||
|
|
||||||
rt_aio_state load_state = rtSubmitSingleLoadSync((rt_file_load){
|
rt_aio_state load_state = rtSubmitSingleLoadSync((rt_file_load){
|
||||||
.file = file,
|
.file = file,
|
||||||
|
@ -504,6 +504,7 @@ RT_ASSET_PROCESSOR_FN(PipelineProcessor) {
|
|||||||
*new_resource_count = 1 + pipeline.shader_count;
|
*new_resource_count = 1 + pipeline.shader_count;
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
|
rtLog("AC", "Released %p", asset.buffer);
|
||||||
rtReleaseBuffer(asset.buffer, asset.size);
|
rtReleaseBuffer(asset.buffer, asset.size);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
@ -103,6 +103,7 @@ RT_DLLEXPORT void *rtAllocBuffer(size_t size) {
|
|||||||
_bitmap[dword] |= mask;
|
_bitmap[dword] |= mask;
|
||||||
result = _memory + i * BLOCK_SIZE;
|
result = _memory + i * BLOCK_SIZE;
|
||||||
first_block = i;
|
first_block = i;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
else if (lzcnt32(_bitmap[dword]) >= alloc_blocks) {
|
else if (lzcnt32(_bitmap[dword]) >= alloc_blocks) {
|
||||||
size_t first = (_bitmap[dword] != 0) ? 32 - lzcnt32(_bitmap[dword]) : 0;
|
size_t first = (_bitmap[dword] != 0) ? 32 - lzcnt32(_bitmap[dword]) : 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user