[Memory/Unloading]
; Master flag - enable the resource runtime unloading system
; This system is using refcounting instead of the Garbage Collector
EnableUnloading = 0

; How many cleanup iterations we should do in one purge
; To few - we may risk delaying destruction of resources to much
; To much - stalls. Should not be bigger than the biggest dependency chain any way (which is around 10)
MaxCleanupIterations = 10

; Minimal amount of frames between each resource purge
AutoPurgeDelay = 30

; Resource grace period - resource will not be released even if it has no references for this amount of frames
GracePeriod = 30

; Validation that the resources we thing we can free we can really free
; This is done by dependency scannig (kind of like in the GC) - VERY SLOW
EnableValidation = 0

; Report potential memory leaks - objects that were referenced from the resources that we freed but did not get deleted
EnableLeakCheck = 0


[ResourceLoading]
; Size of the file queue during game (when loading screen is not there)
; The bigger, the better
FileQueueSizeGame = 100

; Size of the file queue during loading perios (when loading screen is there)
; The bigger, the better
FileQueueSizeLoading = 500

; Number of files to load for which we do not bother with starting fully async process
; Basicaly - if we only have to load few file it does not matter if we use prefetching or not
AsyncLoadingFileCountTreshold = 1

; Do we allow async loading to be used
UseAsyncLoading = true

; Should we use dependency cache
UseDependencyCache = true

; Streaming offset distance in meters (stream in Xm before autohide distance kicks in to allow dissolve to work)
StreamingOffset = 2;

[ResourceLoading/Decompression]
; Maximum number of AsyncIO requests that can be in flight from the resource loading system
; Note that anything more than 50 has a HIGH CHANCE of crashing/freezing the game
; The internal maximum number of pending async requests is 64 and we need to leave some slots avaiable for other systems (caches)
MaxRequests = 32

; Reserved number of AsyncIO requests per priority
; Non zero value guarantees that there'll always be some free slots to service high priority trafic
RequestsPriorityReserve = 4

; Maximum memory budget for compressed data
; The bigger, the faster the loading
; Note: the memory is not pre allocated, it's just tracked and limited
MaxCompressedBudget = 30

; Maximum number of compressed blocks that are in-flight
; In general does not matter that much, do not make it to small
MaxCompressedBlocks = 4096

; Maximum memory budget for uncompressed data
; The bigger, the faster the loading
; Note: the memory is not pre allocated, it's just tracked and limited
; Note2: this should always be bigger than MaxCompressedBudget value, usually x2.5 times (average compression ratio)
MaxUncmpressedBudget = 70

; Maximum number of uncompressed blocks that are in-flight
; In general does not matter that much, do not make it to small
MaxUncompressedBlocks = 4096
