So I am putting my ignorance on full display here. Sorry in advance!
According to the manual, just loading a raw file into memory uses 128 bits(4x32) per pixel. For each module to engage in its processing, it needs an additional 256 bits (128 for both input and output).
Based upon the fact that exported sizes change relative to the number (and itype?) of modules as well as if there are lots of masks, I assume that these factors also effect the amount of memory dt uses during the editing process in darkroom.
For example: A 20mp image
BaseMemory = 128*20mil = 320MB
-Exposure module start (add .7ev) uses 620MB + 320MB during the process and some residual extra # of bits are added into BaseMemory to hold the new file data. For calculation sake lets stipulate 10MB (not real numbers)
-Filmic starts but now uses 320+10=330MB in BaseMemory and the input/output now needs 660MB.
I don’t believe so. darktable operates on a region of interest (ROI), so all operations are performed on the down scaled whole or on a specific portion of the image. The case where this isn’t true is if you have high quality processing enabled in which case operations are conducted on the whole.
As operations are conducted, the memory used by the preceding operation is released, which the pixelpipe caching the most current “state”.
Thanks Bill! I assumed the processes released memory when they complete (that is a way more succint way to say it compared to my bumbling!), but I totally forgot about the scaling.
Introducing how scaling effects the memory usage during rendering process only confuses me more. lol. If scaling effects memory usage in the input/output side of the equation, does the information in the manual only pertain to those times when downscaling is not performed?
The information in the manual describes what the modules do. In order to make the UI responsive, the operation is applied to what is visible (in most cases). Therefore, what you see in the UI is not always exactly what you get when viewed at 100% with HQ processing enabled. IIRC diffuse or sharpen is a module some people say shows differences.
I don’t really notice any difference, but I don’t pixel peep either .