Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
mipmap_cache.c File Reference

shit ahead. More...

#include "caches/mipmap_cache.h"
#include "common/paths.h"
#include "system/sys_resources.h"
#include "caches/pixelpipe_cache_alloc.h"
#include "common/file_location.h"
#include "common/grealpath.h"
#include "common/image_extensions.h"
#include "caches/image_cache.h"
#include "develop/pixelpipe_hb.h"
#include "develop/supervisor.h"
#include "imageio/imageio_core.h"
#include "imageio/imageio_jpeg.h"
#include "imageio/imageio_module.h"
#include "control/jobs.h"
#include "develop/imageop_math.h"
#include <assert.h>
#include <glib.h>
#include <glib/gstdio.h>
#include <inttypes.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include "database/database.h"
#include "win/statvfs.h"
+ Include dependency graph for mipmap_cache.c:

Go to the source code of this file.

Data Structures

struct  dt_mipmap_cache_one_t
 
struct  dt_mipmap_cache_t
 
struct  dt_mipmap_buffer_dsc
 
struct  _dummy_data_t
 

Macros

#define _cache_print(channel, ...)
 
#define DT_MIPMAP_CACHE_FILE_MAGIC   0xD71337
 
#define DT_MIPMAP_CACHE_FILE_VERSION   23
 
#define DT_MIPMAP_CACHE_DEFAULT_FILE_NAME   "mipmaps"
 
#define X   0xffffffffu
 
#define o   0u
 

Typedefs

typedef struct dt_mipmap_cache_one_t dt_mipmap_cache_one_t
 
typedef struct dt_mipmap_cache_t dt_mipmap_cache_t
 
typedef enum dt_mipmap_buffer_dsc_flags dt_mipmap_buffer_dsc_flags
 
typedef struct _dummy_data_t _dummy_data_t
 

Enumerations

enum  dt_mipmap_buffer_dsc_flags {
  DT_MIPMAP_BUFFER_DSC_FLAG_NONE = 0 ,
  DT_MIPMAP_BUFFER_DSC_FLAG_GENERATE = 1 << 0 ,
  DT_MIPMAP_BUFFER_DSC_FLAG_INVALIDATE = 1 << 1 ,
  DT_MIPMAP_BUFFER_DSC_FLAG_ON_DISK = 1 << 2 ,
  DT_MIPMAP_BUFFER_DSC_FLAG_RETRIED = 1 << 3
}
 

Functions

static void _settings_lock_ensure (void)
 
static dt_mipmap_cache_settings_t _settings_get (void)
 
void dt_mipmap_cache_get_settings (dt_mipmap_cache_settings_t *settings)
 Read back the settings in force. Snapshot, taken under the same lock the setter takes, so the four fields are always consistent with each other.
 
void dt_mipmap_cache_set_settings (const dt_mipmap_cache_settings_t *settings)
 Apply new settings to a running cache.
 
struct dt_mipmap_buffer_dsc __attribute__ ((packed, aligned(DT_CACHELINE_BYTES)))
 
static const size_t dt_mipmap_buffer_dsc_size __attribute__ ((unused))
 
static uint8_t * _get_buffer_from_dsc (struct dt_mipmap_buffer_dsc *dsc)
 
static void * dead_image_8 (struct dt_mipmap_buffer_dsc *dsc)
 
static int32_t get_key (const int32_t imgid, const dt_mipmap_size_t size)
 
static uint32_t get_imgid (const uint32_t key)
 
static dt_mipmap_size_t get_size (const uint32_t key)
 
void dt_mipmap_get_cache_dir (char path[DT_PATH_MAX], dt_mipmap_size_t mip)
 
void dt_mipmap_get_cache_filename (char path[DT_PATH_MAX], dt_mipmap_size_t mip, const int32_t imgid)
 
static int dt_mipmap_cache_get_filename (gchar *mipmapfilename, size_t size)
 
static void _get_thumbnail_input (const int32_t imgid, char *filename, char *ext, gboolean *input_exists, gboolean *is_jpg_input, gboolean *altered, gboolean *may_be_raw)
 Return what choosing the source of a thumbnail needs: the input file, whether it exists on the filesystem, whether it is a JPEG, whether the image was edited, and whether it may be a raw.
 
static void _init_f (dt_mipmap_buffer_t *mipmap_buf, float *buf, uint32_t *width, uint32_t *height, float *iscale, const int32_t imgid)
 
static dt_imageio_retval_t _init_8 (struct dt_mipmap_buffer_dsc *dsc, const int32_t imgid, const dt_mipmap_size_t size, const int embedded_jpg_mode, dt_atomic_int *shutdown)
 Render an 8-bit thumbnail into the buffer of dsc, from a larger cached thumbnail, an embedded or companion JPEG, or a full pipeline run, in that order of preference.
 
struct dt_mipmap_buffer_dsc * _get_dsc_from_entry (dt_cache_entry_t *entry)
 
static void _sync_dsc_to_buf (dt_mipmap_buffer_t *buf, struct dt_mipmap_buffer_dsc *dsc, const int32_t imgid, const dt_mipmap_size_t mip)
 
static void _invalidate_buffer (dt_mipmap_buffer_t *buf)
 
static size_t _get_entry_size (const size_t buffer_size)
 
void dt_mipmap_cache_update_buffer_addresses (dt_cache_entry_t *entry, struct dt_mipmap_buffer_dsc **dsc, const size_t width, const size_t height, const size_t buffer_size)
 Resync all references to all references.
 
void * dt_mipmap_cache_alloc (dt_mipmap_buffer_t *buf, const dt_image_t *img)
 
void dt_mipmap_cache_allocate_dynamic (void *data, dt_cache_entry_t *entry)
 
static void dt_mipmap_cache_unlink_ondisk_thumbnail (void *data, int32_t imgid, dt_mipmap_size_t mip)
 
static gboolean _disk_has_room_for_a_thumbnail (const char *dirname)
 Is there room on the filesystem holding dirname for one more thumbnail?
 
static void _write_thumbnail_to_disk_cache (struct dt_mipmap_buffer_dsc *dsc, const int32_t imgid, const dt_mipmap_size_t mip)
 Serialise one generated thumbnail into the on-disk cache.
 
void dt_mipmap_cache_deallocate_dynamic (void *data, dt_cache_entry_t *entry)
 
void dt_mipmap_cache_init (const dt_mipmap_cache_settings_t *settings, const gboolean verbose)
 Initialise the cache.
 
void dt_mipmap_cache_flush_to_disk (void)
 Write the resident thumbnails to the disk cache and drop them from RAM; the cache stays usable.
 
void dt_mipmap_cache_cleanup (void)
 
void dt_mipmap_cache_print (void)
 
static void _mipmap_subcache_collect (dt_cache_t *c, GArray *out)
 
void dt_mipmap_cache_get_usage (size_t *current, size_t *max)
 
GArray * dt_mipmap_cache_get_entries_stats (void)
 
static dt_mipmap_cache_one_t * _get_cache (dt_mipmap_cache_t *cache, const dt_mipmap_size_t mip)
 
static void _paint_skulls (dt_mipmap_buffer_t *buf, struct dt_mipmap_buffer_dsc *dsc, const int32_t imgid, const dt_mipmap_size_t mip)
 
static void _validate_buffer (dt_mipmap_buffer_t *buf, struct dt_mipmap_buffer_dsc *dsc, const int32_t imgid, const dt_mipmap_size_t mip)
 
static gboolean _get_image_copy (const int32_t imgid, dt_image_t *buffered_image)
 
static void _generate_blocking (dt_cache_entry_t *entry, dt_mipmap_buffer_t *buf, const int32_t imgid, const dt_mipmap_size_t mip, dt_atomic_int *shutdown)
 
void dt_mipmap_cache_get_with_caller (dt_mipmap_buffer_t *buf, const int32_t imgid, const dt_mipmap_size_t mip, const dt_mipmap_get_flags_t flags, const char mode, const char *file, int line)
 
void dt_mipmap_cache_get_with_caller_and_shutdown (dt_mipmap_buffer_t *buf, const int32_t imgid, const dt_mipmap_size_t mip, const dt_mipmap_get_flags_t flags, const char mode, dt_atomic_int *shutdown, const char *file, int line)
 
void dt_mipmap_cache_write_get_with_caller (dt_mipmap_buffer_t *buf, const int32_t imgid, const int mip, const char *file, int line)
 
void dt_mipmap_cache_release_with_caller (dt_mipmap_buffer_t *buf, const char *file, int line)
 
dt_mipmap_size_t dt_mipmap_cache_get_matching_size (const int32_t width, const int32_t height, const uint32_t imgid)
 
dt_mipmap_size_t dt_mipmap_cache_get_fitting_size (const int32_t width, const int32_t height, const uint32_t imgid)
 
void dt_mipmap_cache_swap_at_size (const int32_t imgid, const dt_mipmap_size_t mip, const uint8_t *const in, const int32_t width, const int32_t height, dt_colorspaces_color_profile_type_t profile)
 
void dt_mipmap_cache_remove_at_size (const int32_t imgid, const dt_mipmap_size_t mip, const gboolean flush_disk)
 
void dt_mipmap_cache_remove (const int32_t imgid, const gboolean flush_disk)
 
static void _remove_one_size (const int32_t imgid, const dt_mipmap_size_t mip)
 
void dt_mipmap_cache_remove_all_sizes (const int32_t imgid, const gboolean flush_disk)
 
void dt_mimap_cache_evict (const int32_t imgid)
 
static int _levels (dt_imageio_module_data_t *data)
 
static int _bpp (dt_imageio_module_data_t *data)
 
static int _write_image (dt_imageio_module_data_t *data, const char *filename, const void *in, dt_colorspaces_color_profile_type_t over_type, const char *over_filename, void *exif, int exif_len, int32_t imgid, int num, int total, dt_dev_pixelpipe_t *pipe, const gboolean export_masks)
 
static int _load_jpg (const char *filename, const int32_t imgid, const uint32_t wd, const uint32_t ht, const dt_mipmap_size_t size, const dt_image_orientation_t orientation, uint8_t *buf, uint32_t *width, uint32_t *height, dt_colorspaces_color_profile_type_t *color_space)
 
static int _find_sidecar_jpg (const char *filename, const char *ext, char *sidecar)
 
void dt_mipmap_cache_copy_thumbnails (const uint32_t dst_imgid, const uint32_t src_imgid)
 

Variables

static gboolean _verbose = FALSE
 
static dt_mipmap_cache_t * _mipmap_cache = NULL
 
static dt_mipmap_cache_settings_t _settings = { 0 }
 
static dt_pthread_mutex_t _settings_lock
 
static gsize _settings_lock_inited = 0
 
static const uint8_t dt_mipmap_cache_exif_data_srgb []
 
static const uint8_t dt_mipmap_cache_exif_data_adobergb []
 
static const int dt_mipmap_cache_exif_data_srgb_length = sizeof(dt_mipmap_cache_exif_data_srgb) / sizeof(*dt_mipmap_cache_exif_data_srgb)
 
static const int dt_mipmap_cache_exif_data_adobergb_length = sizeof(dt_mipmap_cache_exif_data_adobergb) / sizeof(*dt_mipmap_cache_exif_data_adobergb)
 
uint32_t width
 
uint32_t height
 
float iscale
 
size_t size
 
dt_mipmap_buffer_dsc_flags flags
 
dt_colorspaces_color_profile_type_t color_space
 
dt_imageio_retval_t status
 
static const uint32_t _skull_8[64] DT_ALIGNED_ARRAY
 

Detailed Description

shit ahead.

So, (dt_mipmap_buffer_t *buf)->cache_entry holds a back-reference to the cache entry dt_cache_entry_t *entry. (dt_cache_entry_t *entry)->data is a reference to the dt_mipmap_buffer_dsc *dsc, which is mostly a duplicate of dt_mipmap_buffer_t *buf, adding state flags and then 64-bytes memory padding.

entry->data is an opaque, manually-handled, memory buffer holding (in this order):

  • the dt_mipmap_buffer_dsc dsc structure,
  • memory padding for 64-bytes alignment,
  • the actual pixel buffer buf->buf (aligned to 64 bytes);

So the only way of accessing the buf->buf memory is by shifting the entry->data pointer by the size of one dt_mipmap_buffer_dsc structure.

But we need to resync the dt_mipmap_buffer_dsc dsc values with those in dt_mipmap_buffer_t *buf all the fucking time (namely, width, height, scale, color space). And then, we need to resync the buffer sizes between entry->data_size and dsc->size. But beware, because buf->size is actually the integer enum member of mipmap fixed sizes.

All in all, this clever design guarantees a maximum number of opportunities for mistakes, along with non-uniforms accesses, sometimes to dsc, sometimes to buf.

From the rest of the app, we access only dt_mipmap_buffer_t *buf, so this is our way of communicating stuff out there.

Definition in file mipmap_cache.c.

Macro Definition Documentation

◆ _cache_print

#define _cache_print (   channel,
  ... 
)
Value:
do { \
if(_verbose) dt_print((channel), __VA_ARGS__); \
} while(0)
void dt_print(dt_debug_thread_t thread, const char *msg,...) __attribute__((format(printf
Print to stdout when thread is enabled, prefixed with seconds since startup.
static gboolean _verbose

Definition at line 81 of file mipmap_cache.c.

◆ DT_MIPMAP_CACHE_DEFAULT_FILE_NAME

#define DT_MIPMAP_CACHE_DEFAULT_FILE_NAME   "mipmaps"

Definition at line 183 of file mipmap_cache.c.

◆ DT_MIPMAP_CACHE_FILE_MAGIC

#define DT_MIPMAP_CACHE_FILE_MAGIC   0xD71337

Definition at line 181 of file mipmap_cache.c.

◆ DT_MIPMAP_CACHE_FILE_VERSION

#define DT_MIPMAP_CACHE_FILE_VERSION   23

Definition at line 182 of file mipmap_cache.c.

◆ o

#define o   0u

Definition at line 247 of file mipmap_cache.c.

◆ X

#define X   0xffffffffu

Definition at line 246 of file mipmap_cache.c.

Typedef Documentation

◆ _dummy_data_t

typedef struct _dummy_data_t _dummy_data_t

◆ dt_mipmap_buffer_dsc_flags

◆ dt_mipmap_cache_one_t

◆ dt_mipmap_cache_t

Enumeration Type Documentation

◆ dt_mipmap_buffer_dsc_flags

Enumerator
DT_MIPMAP_BUFFER_DSC_FLAG_NONE 
DT_MIPMAP_BUFFER_DSC_FLAG_GENERATE 
DT_MIPMAP_BUFFER_DSC_FLAG_INVALIDATE 
DT_MIPMAP_BUFFER_DSC_FLAG_ON_DISK 
DT_MIPMAP_BUFFER_DSC_FLAG_RETRIED 

Definition at line 185 of file mipmap_cache.c.

Function Documentation

◆ __attribute__() [1/2]

struct dt_mipmap_buffer_dsc __attribute__ ( (packed, aligned(DT_CACHELINE_BYTES))  )

◆ __attribute__() [2/2]

static const size_t dt_mipmap_buffer_dsc_size __attribute__ ( (unused)  )
static

◆ _bpp()

static int _bpp ( dt_imageio_module_data_t *  data)
static

Definition at line 1650 of file mipmap_cache.c.

Referenced by _init_8().

◆ _disk_has_room_for_a_thumbnail()

static gboolean _disk_has_room_for_a_thumbnail ( const char *  dirname)
static

Is there room on the filesystem holding dirname for one more thumbnail?

A probe that cannot answer says yes, and lets the write itself fail if it must.

Definition at line 730 of file mipmap_cache.c.

References statvfs::f_bavail, statvfs::f_frsize, FALSE, and TRUE.

Referenced by _write_thumbnail_to_disk_cache().

◆ _find_sidecar_jpg()

static int _find_sidecar_jpg ( const char *  filename,
const char *  ext,
char *  sidecar 
)
static

Definition at line 1687 of file mipmap_cache.c.

References DT_PATH_MAX, and i.

Referenced by _init_8().

◆ _generate_blocking()

◆ _get_buffer_from_dsc()

◆ _get_cache()

◆ _get_dsc_from_entry()

◆ _get_entry_size()

static size_t _get_entry_size ( const size_t  buffer_size)
static

◆ _get_image_copy()

static gboolean _get_image_copy ( const int32_t  imgid,
dt_image_t *  buffered_image 
)
static

Definition at line 1064 of file mipmap_cache.c.

References dt_image_cache_get(), dt_image_cache_read_release(), FALSE, and TRUE.

Referenced by _generate_blocking().

◆ _get_thumbnail_input()

static void _get_thumbnail_input ( const int32_t  imgid,
char *  filename,
char *  ext,
gboolean *  input_exists,
gboolean *  is_jpg_input,
gboolean *  altered,
gboolean *  may_be_raw 
)
static

Return what choosing the source of a thumbnail needs: the input file, whether it exists on the filesystem, whether it is a JPEG, whether the image was edited, and whether it may be a raw.

Parameters
imgidDatabase SQL ID of the image
filenameFilename of the input file, empty when there is none.
extExtension of the input file, with its dot.
input_existsWhether the file can be found on the filesystem.
is_jpg_inputWhether the file is a JPEG.
alteredWhether the image has a history, which embedded JPEG mode 1 asks.
may_be_rawWhether the image is a raw, or, before its first decode, has a raw extension, which the embedded JPEG modes ask.

Definition at line 356 of file mipmap_cache.c.

References dt_image_cache_get(), dt_image_cache_read_release(), dt_image_choose_input_path(), dt_image_ext_is_raw(), dt_image_is_hdr(), dt_image_is_ldr(), dt_image_needs_rawprepare(), DT_IMAGE_PATH_NONE, DT_PATH_MAX, FALSE, dt_image_t::history_items, and IS_NULL_PTR.

Referenced by _init_8().

◆ _init_8()

static dt_imageio_retval_t _init_8 ( struct dt_mipmap_buffer_dsc *  dsc,
const int32_t  imgid,
const dt_mipmap_size_t  size,
const int  embedded_jpg_mode,
dt_atomic_int *  shutdown 
)
static

Render an 8-bit thumbnail into the buffer of dsc, from a larger cached thumbnail, an embedded or companion JPEG, or a full pipeline run, in that order of preference.

On entry, the width and height of dsc are the box the thumbnail must fit; on success, dsc holds the size, scale and colour space of what was rendered.

Parameters
embedded_jpg_modethe embedded JPEG mode to render in, read once by the caller, which keeps the result only if the mode has not changed meanwhile.
Returns
DT_IMAGEIO_OK, or why the width and height of dsc were set to 0 – which the caller paints as a skull, and keeps so the GUI can say why over it.

Definition at line 1725 of file mipmap_cache.c.

References _bpp(), _cache_print, _find_sidecar_jpg(), _get_buffer_from_dsc(), _get_thumbnail_input(), _levels(), _load_jpg(), _write_image(), _dummy_data_t::buf, dt_mipmap_buffer_t::buf, dt_mipmap_buffer_dsc::color_space, dt_mipmap_buffer_t::color_space, DT_COLORSPACE_ADOBERGB, DT_COLORSPACE_NONE, DT_DEBUG_CACHE, dt_image_cache_get(), dt_image_cache_read_release(), dt_image_resolve_usercrop(), dt_imageio_crop_thumbnail(), dt_imageio_export_with_flags(), DT_IMAGEIO_FILE_NOT_FOUND, dt_imageio_large_thumbnail(), DT_IMAGEIO_NO_EMBEDDED_THUMBNAIL, DT_IMAGEIO_OK, DT_INTENT_LAST, dt_iop_flip_and_zoom_8(), dt_mipmap_cache_get, dt_mipmap_cache_release, DT_MIPMAP_F, DT_MIPMAP_TESTLOCK, DT_PATH_MAX, dt_pixelpipe_cache_free_align, FALSE, _dummy_data_t::head, dt_mipmap_buffer_dsc::height, dt_mipmap_buffer_t::height, dt_imageio_module_data_t::height, IS_NULL_PTR, dt_mipmap_buffer_dsc::iscale, k, dt_imageio_module_data_t::max_height, dt_imageio_module_data_t::max_width, dt_image_t::orientation, ORIENTATION_NONE, ORIENTATION_NULL, res, size, status, TRUE, dt_mipmap_buffer_dsc::width, dt_mipmap_buffer_t::width, and dt_imageio_module_data_t::width.

Referenced by _generate_blocking().

◆ _init_f()

◆ _invalidate_buffer()

◆ _levels()

static int _levels ( dt_imageio_module_data_t *  data)
static

Definition at line 1645 of file mipmap_cache.c.

References IMAGEIO_INT8, and IMAGEIO_RGB.

Referenced by _init_8().

◆ _load_jpg()

static int _load_jpg ( const char *  filename,
const int32_t  imgid,
const uint32_t  wd,
const uint32_t  ht,
const dt_mipmap_size_t  size,
const dt_image_orientation_t  orientation,
uint8_t *  buf,
uint32_t *  width,
uint32_t *  height,
dt_colorspaces_color_profile_type_t *  color_space 
)
static

◆ _mipmap_subcache_collect()

◆ _paint_skulls()

static void _paint_skulls ( dt_mipmap_buffer_t *  buf,
struct dt_mipmap_buffer_dsc *  dsc,
const int32_t  imgid,
const dt_mipmap_size_t  mip 
)
static

◆ _remove_one_size()

◆ _settings_get()

◆ _settings_lock_ensure()

static void _settings_lock_ensure ( void  )
inlinestatic

◆ _sync_dsc_to_buf()

◆ _validate_buffer()

static void _validate_buffer ( dt_mipmap_buffer_t *  buf,
struct dt_mipmap_buffer_dsc *  dsc,
const int32_t  imgid,
const dt_mipmap_size_t  mip 
)
static

◆ _write_image()

static int _write_image ( dt_imageio_module_data_t *  data,
const char *  filename,
const void *  in,
dt_colorspaces_color_profile_type_t  over_type,
const char *  over_filename,
void *  exif,
int  exif_len,
int32_t  imgid,
int  num,
int  total,
dt_dev_pixelpipe_t *  pipe,
const gboolean  export_masks 
)
static

Definition at line 1655 of file mipmap_cache.c.

References d, dt_imageio_module_data_t::height, and dt_imageio_module_data_t::width.

Referenced by _init_8().

◆ _write_thumbnail_to_disk_cache()

◆ dead_image_8()

◆ dt_mimap_cache_evict()

void dt_mimap_cache_evict ( const int32_t  imgid)

◆ dt_mipmap_cache_alloc()

◆ dt_mipmap_cache_allocate_dynamic()

◆ dt_mipmap_cache_cleanup()

◆ dt_mipmap_cache_copy_thumbnails()

void dt_mipmap_cache_copy_thumbnails ( const uint32_t  dst_imgid,
const uint32_t  src_imgid 
)

◆ dt_mipmap_cache_deallocate_dynamic()

◆ dt_mipmap_cache_flush_to_disk()

void dt_mipmap_cache_flush_to_disk ( void  )

Write the resident thumbnails to the disk cache and drop them from RAM; the cache stays usable.

A thumbnail reaches the disk cache only when its entry is released: on LRU eviction, or in dt_mipmap_cache_cleanup(). Call this before the part of a shutdown that can fail. Entries another thread holds are skipped, not waited for; they, and whatever is generated afterwards, are written by dt_mipmap_cache_cleanup().

Definition at line 898 of file mipmap_cache.c.

References _cache_print, _mipmap_cache, dt_mipmap_cache_one_t::cache, dt_cache_gc(), DT_DEBUG_CACHE, IS_NULL_PTR, and dt_mipmap_cache_t::mip_thumbs.

Referenced by dt_cleanup().

◆ dt_mipmap_cache_get_entries_stats()

◆ dt_mipmap_cache_get_filename()

static int dt_mipmap_cache_get_filename ( gchar *  mipmapfilename,
size_t  size 
)
static

◆ dt_mipmap_cache_get_fitting_size()

dt_mipmap_size_t dt_mipmap_cache_get_fitting_size ( const int32_t  width,
const int32_t  height,
const uint32_t  imgid 
)

◆ dt_mipmap_cache_get_matching_size()

dt_mipmap_size_t dt_mipmap_cache_get_matching_size ( const int32_t  width,
const int32_t  height,
const uint32_t  imgid 
)

◆ dt_mipmap_cache_get_settings()

void dt_mipmap_cache_get_settings ( dt_mipmap_cache_settings_t *  settings)

Read back the settings in force. Snapshot, taken under the same lock the setter takes, so the four fields are always consistent with each other.

Definition at line 161 of file mipmap_cache.c.

References _settings_get(), and IS_NULL_PTR.

Referenced by _jpg_combobox_changed().

◆ dt_mipmap_cache_get_usage()

void dt_mipmap_cache_get_usage ( size_t *  current,
size_t *  max 
)

◆ dt_mipmap_cache_get_with_caller()

void dt_mipmap_cache_get_with_caller ( dt_mipmap_buffer_t *  buf,
const int32_t  imgid,
const dt_mipmap_size_t  mip,
const dt_mipmap_get_flags_t  flags,
const char  mode,
const char *  file,
int  line 
)

◆ dt_mipmap_cache_get_with_caller_and_shutdown()

◆ dt_mipmap_cache_init()

void dt_mipmap_cache_init ( const dt_mipmap_cache_settings_t *  settings,
const gboolean  verbose 
)

Initialise the cache.

Parameters
verbosewhether this cache traces to the log. Read ONCE, here, from the session's debug flags by the orchestrator – the cache does not consult them itself, so it neither depends on the debug machinery at runtime nor changes behaviour halfway through a session. -d cache still works: darktable.c turns it into this argument.
settingsthe user's choices; see dt_mipmap_cache_settings_t. NULL uses zeroes, which is only sensible in a test.

Definition at line 829 of file mipmap_cache.c.

References _get_entry_size(), _mipmap_cache, _settings_get(), _verbose, dt_mipmap_cache_t::buffer_size, dt_mipmap_cache_one_t::cache, dt_mipmap_cache_t::cachedir, dt_cache_init(), dt_cache_set_allocate_callback(), dt_cache_set_cleanup_callback(), DT_CTL_WORKER_RESERVED, DT_MIPMAP_2, dt_mipmap_cache_allocate_dynamic(), dt_mipmap_cache_deallocate_dynamic(), dt_mipmap_cache_get_filename(), dt_mipmap_cache_set_settings(), DT_MIPMAP_F, DT_MIPMAP_FULL, dt_worker_threads(), IS_NULL_PTR, k, dt_mipmap_cache_t::max_height, dt_mipmap_cache_t::max_width, dt_mipmap_cache_t::mip_f, dt_mipmap_cache_t::mip_full, dt_mipmap_cache_t::mip_thumbs, dt_mipmap_cache_one_t::stats_fetches, dt_mipmap_cache_one_t::stats_misses, dt_mipmap_cache_one_t::stats_near_match, dt_mipmap_cache_one_t::stats_requests, and dt_mipmap_cache_one_t::stats_standin.

Referenced by dt_init().

◆ dt_mipmap_cache_print()

◆ dt_mipmap_cache_release_with_caller()

◆ dt_mipmap_cache_remove()

◆ dt_mipmap_cache_remove_all_sizes()

void dt_mipmap_cache_remove_all_sizes ( const int32_t  imgid,
const gboolean  flush_disk 
)

Definition at line 1525 of file mipmap_cache.c.

References _remove_one_size(), dt_mipmap_cache_remove(), DT_MIPMAP_F, and DT_MIPMAP_FULL.

Referenced by _image_remove().

◆ dt_mipmap_cache_remove_at_size()

◆ dt_mipmap_cache_set_settings()

void dt_mipmap_cache_set_settings ( const dt_mipmap_cache_settings_t *  settings)

Apply new settings to a running cache.

Every field takes effect immediately, including ::max_memory – the LRU quota is soft, so lowering it makes the next insertions evict harder rather than freeing anything synchronously. Call it whenever the user changes one of the four; the application does that from its DT_SIGNAL_PREFERENCES_CHANGE handler, and the thumbnail menu of the lighttable (gui/actions/display.c) for ::embedded_jpg, which it changes without that signal. Writing the conf key alone changes nothing: the cache keeps rendering in the mode it was told. A thumbnail still rendering in the previous ::embedded_jpg is not kept: its entry stays to be generated, and the next request renders it in the new mode.

Parameters
settingsthe new values. NULL is a no-op.

Definition at line 166 of file mipmap_cache.c.

References _mipmap_cache, _settings, _settings_lock, _settings_lock_ensure(), dt_mipmap_cache_one_t::cache, dt_cache_t::cost_quota, dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), IS_NULL_PTR, dt_mipmap_cache_settings_t::max_memory, and dt_mipmap_cache_t::mip_thumbs.

Referenced by _jpg_combobox_changed(), _preferences_changed(), and dt_mipmap_cache_init().

◆ dt_mipmap_cache_swap_at_size()

◆ dt_mipmap_cache_unlink_ondisk_thumbnail()

static void dt_mipmap_cache_unlink_ondisk_thumbnail ( void *  data,
int32_t  imgid,
dt_mipmap_size_t  mip 
)
static

◆ dt_mipmap_cache_update_buffer_addresses()

void dt_mipmap_cache_update_buffer_addresses ( dt_cache_entry_t *  entry,
struct dt_mipmap_buffer_dsc **  dsc,
const size_t  width,
const size_t  height,
const size_t  buffer_size 
)

Resync all references to all references.

Parameters
entryCache entry.
dsc
buf

Definition at line 473 of file mipmap_cache.c.

References _get_dsc_from_entry(), _get_entry_size(), dt_cache_entry_t::data, dt_cache_entry_t::data_size, DT_COLORSPACE_NONE, DT_IMAGEIO_OK, DT_MIPMAP_BUFFER_DSC_FLAG_GENERATE, height, IS_NULL_PTR, and width.

Referenced by dt_mipmap_cache_alloc(), and dt_mipmap_cache_allocate_dynamic().

◆ dt_mipmap_cache_write_get_with_caller()

void dt_mipmap_cache_write_get_with_caller ( dt_mipmap_buffer_t *  buf,
const int32_t  imgid,
const int  mip,
const char *  file,
int  line 
)

Definition at line 1370 of file mipmap_cache.c.

References DT_MIPMAP_BLOCKING, and dt_mipmap_cache_get_with_caller().

◆ dt_mipmap_get_cache_dir()

void dt_mipmap_get_cache_dir ( char  path[DT_PATH_MAX],
dt_mipmap_size_t  mip 
)

◆ dt_mipmap_get_cache_filename()

◆ get_imgid()

static uint32_t get_imgid ( const uint32_t  key)
inlinestatic

◆ get_key()

static int32_t get_key ( const int32_t  imgid,
const dt_mipmap_size_t  size 
)
inlinestatic

◆ get_size()

static dt_mipmap_size_t get_size ( const uint32_t  key)
inlinestatic

Variable Documentation

◆ _mipmap_cache

◆ _settings

dt_mipmap_cache_settings_t _settings = { 0 }
static

Definition at line 139 of file mipmap_cache.c.

Referenced by _settings_get(), and dt_mipmap_cache_set_settings().

◆ _settings_lock

dt_pthread_mutex_t _settings_lock
static

◆ _settings_lock_inited

gsize _settings_lock_inited = 0
static

Definition at line 141 of file mipmap_cache.c.

Referenced by _settings_lock_ensure().

◆ _verbose

gboolean _verbose = FALSE
static

Definition at line 77 of file mipmap_cache.c.

Referenced by dt_mipmap_cache_init().

◆ color_space

◆ DT_ALIGNED_ARRAY

const uint32_t _skull_8 [64] DT_ALIGNED_ARRAY
static
Initial value:
= { 0u , 0u , 0u , 0u , 0u , 0u , 0u , 0u ,
0u , 0u , 0xffffffffu , 0xffffffffu , 0xffffffffu , 0xffffffffu , 0u , 0u ,
0u , 0xffffffffu , 0u , 0xffffffffu , 0xffffffffu , 0u , 0xffffffffu , 0u ,
0u , 0xffffffffu , 0xffffffffu , 0xffffffffu , 0xffffffffu , 0xffffffffu , 0xffffffffu , 0u ,
0u , 0u , 0xffffffffu , 0u , 0u , 0xffffffffu , 0u , 0u ,
0u , 0u , 0u , 0u , 0u , 0u , 0u , 0u ,
0u , 0u , 0xffffffffu , 0xffffffffu , 0xffffffffu , 0xffffffffu , 0u , 0u ,
0u , 0u , 0u , 0u , 0u , 0u , 0u , 0u }

Definition at line 248 of file mipmap_cache.c.

◆ dt_mipmap_cache_exif_data_adobergb

const uint8_t dt_mipmap_cache_exif_data_adobergb[]
static
Initial value:
= {
0x45, 0x78, 0x69, 0x66, 0x00, 0x00, 0x49, 0x49, 0x2a, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69,
0x87, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x01, 0xa0, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}

Definition at line 204 of file mipmap_cache.c.

Referenced by _write_thumbnail_to_disk_cache().

◆ dt_mipmap_cache_exif_data_adobergb_length

const int dt_mipmap_cache_exif_data_adobergb_length = sizeof(dt_mipmap_cache_exif_data_adobergb) / sizeof(*dt_mipmap_cache_exif_data_adobergb)
static

Definition at line 211 of file mipmap_cache.c.

Referenced by _write_thumbnail_to_disk_cache().

◆ dt_mipmap_cache_exif_data_srgb

const uint8_t dt_mipmap_cache_exif_data_srgb[]
static
Initial value:
= {
0x45, 0x78, 0x69, 0x66, 0x00, 0x00, 0x49, 0x49, 0x2a, 0x00, 0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x69,
0x87, 0x04, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x01, 0xa0, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}

Definition at line 199 of file mipmap_cache.c.

Referenced by _write_thumbnail_to_disk_cache().

◆ dt_mipmap_cache_exif_data_srgb_length

const int dt_mipmap_cache_exif_data_srgb_length = sizeof(dt_mipmap_cache_exif_data_srgb) / sizeof(*dt_mipmap_cache_exif_data_srgb)
static

Definition at line 209 of file mipmap_cache.c.

Referenced by _write_thumbnail_to_disk_cache().

◆ flags

Definition at line 4 of file mipmap_cache.c.

Referenced by _add_generic_accel(), _add_widget_accel(), _altered_clicked(), _button_draw(), _colorlabel_clicked(), _count_two_rows(), _crawl_image(), _draw_triangle(), _dt_opencl_alloc_image2d(), _ellipse_sanitize_config(), _has_flags(), _image_cache_self_hash(), _image_import_internal(), _image_properties_json(), _image_with_flags(), _metadata_view_update_values(), _move_text_sidecar_if_present(), _pop_menu_dictionary_edit_tag(), _rating_clicked(), _row_tooltip_setup(), _thumbnail_btn_draw(), _togglebutton_draw(), _tree_tagname_show(), _unaltered_clicked(), _update_altered_filters(), _update_colors_filter(), _update_rating_filter(), _upgrade_library_schema_step(), cht_state_callback(), dt_accels_init(), dt_atomic_and_int(), dt_atomic_or_int(), dt_collection_reset(), dt_collection_set_filter_flags(), dt_collection_set_query_flags(), dt_colorspaces_prepare_conversion(), dt_dev_pixelpipe_cache_get_cl_buffer(), dt_dev_pixelpipe_cache_get_pinned_image(), dt_dev_pixelpipe_or_changed(), dt_dng_opcode_process_opcode_list_2(), dt_draw_paint_to_pixbuf(), dt_gui_gtk_init(), dt_gui_hist_dialog_new(), dt_history_module_skip_copy(), dt_image_get_xmp_rating_from_flags(), dt_image_print_debug_info(), dt_image_repository_insert_import(), dt_image_repository_set_flags(), dt_iop_module_supports_drawn_mask(), dt_lib_export_metadata_configuration_dialog(), dt_lib_export_metadata_default_flags(), dt_lib_export_metadata_get_conf_flags(), dt_mipmap_cache_get_with_caller(), dt_mipmap_cache_get_with_caller_and_shutdown(), dt_opencl_alloc_device_buffer_with_flags(), dt_opencl_alloc_device_use_host_pointer(), dt_opencl_get_mem_flags(), dt_opencl_is_pinned_memory(), dt_opencl_map_buffer(), dt_opencl_map_image(), dt_tag_export(), dt_tag_get_hierarchical_export(), dt_tag_get_list_export(), dt_tag_get_tag_order_by_id(), dt_tag_repository_get_flags(), dt_tag_repository_set_flags(), dt_tag_set_flags(), dt_tag_set_tag_order_by_id(), dt_variables_set_tags_flags(), dtgtk_cairo_paint_alignment(), dtgtk_cairo_paint_altered(), dtgtk_cairo_paint_arrow(), dtgtk_cairo_paint_aspectflip(), dtgtk_cairo_paint_bulb(), dtgtk_cairo_paint_colorpicker(), dtgtk_cairo_paint_cut_forms(), dtgtk_cairo_paint_display_wavelet_scale(), dtgtk_cairo_paint_eye(), dtgtk_cairo_paint_eye_toggle(), dtgtk_cairo_paint_flip(), dtgtk_cairo_paint_grouping(), dtgtk_cairo_paint_label(), dtgtk_cairo_paint_label_flower(), dtgtk_cairo_paint_label_sel(), dtgtk_cairo_paint_line_arrow(), dtgtk_cairo_paint_local_copy(), dtgtk_cairo_paint_masks_drawn_and_parametric(), dtgtk_cairo_paint_masks_parametric(), dtgtk_cairo_paint_module_switch(), dtgtk_cairo_paint_perspective(), dtgtk_cairo_paint_plus(), dtgtk_cairo_paint_plusminus(), dtgtk_cairo_paint_rawoverexposed(), dtgtk_cairo_paint_refresh(), dtgtk_cairo_paint_reject(), dtgtk_cairo_paint_solid_arrow(), dtgtk_cairo_paint_solid_triangle(), dtgtk_cairo_paint_sortby(), dtgtk_cairo_paint_styles(), dtgtk_cairo_paint_triangle(), dtgtk_cairo_paint_unaltered(), dtgtk_cell_renderer_button_activate(), legacy_params(), and main().

◆ height

uint32_t height

Definition at line 1 of file mipmap_cache.c.

Referenced by __attribute__(), __attribute__(), __attribute__(), __attribute__(), __attribute__(), _align_pos(), _apply_lcms2(), _apply_mono_grain_kernel(), _apply_tonecurves(), _area_button_press_callback(), _area_button_press_callback(), _area_draw_callback(), _area_draw_callback(), _area_draw_callback(), _area_motion_notify_callback(), _area_motion_notify_callback(), _area_motion_notify_callback(), _auto_levels(), _bar_draw(), _bin_pickers_histogram(), _bin_pickers_vectorscope(), _bin_pickers_waveforms(), _bin_pixels_waveform(), _bin_vectorscope(), _bottom_area_draw_callback(), _brush_bounding_box(), _brush_get_area(), _brush_get_mask(), _brush_get_source_area(), _brush_profile_cell_rect(), _brush_profile_geometry(), _bspline_vertical_pass(), _build_preview_fallback_surface(), _build_projection(), _button_draw(), _cache_entry_materialize_host_data_locked(), _canvas_acquire(), _canvas_begin(), _circle_get_area(), _circle_get_mask(), _circle_get_mask_roi(), _circle_get_source_area(), _clipping_derive(), _color_picker_geometry(), _compute_effective_height(), _create_pdf(), _create_waveform_image(), _current_preview_luminance_hash(), _darkroom_compose_key(), _darkroom_edge_pan_apply(), _darkroom_edge_pan_update_state(), _darkroom_pickers_draw(), _darkroom_prepare_image_surface(), _darkroom_preview_fallback_valid(), _default_format_dimension(), _default_process_tiling_cl_ptp(), _default_process_tiling_cl_roi(), _default_process_tiling_ptp(), _default_process_tiling_roi(), _dev_translate_roi(), _develop_blend_process_feather(), _downsample_guided_laplacian_apply(), _downsample_guided_laplacian_fit(), _downsample_guided_laplacian_postfilter(), _downsample_guided_laplacian_postfilter_cl(), _draw_background(), _draw_color_picker(), _draw_image(), _draw_location(), _draw_placeholder(), _draw_preview_fallback(), _draw_transient_image(), _drawlayer_run_premult_over_kernel(), _drawlayer_sync_host_image_to_device(), _dt_focus_cdf22_wtf(), _dt_opencl_alloc_image2d(), _ellipse_get_area(), _ellipse_get_mask(), _ellipse_get_source_area(), _ensure_heartbeat_batch_buffers(), _export_and_setup_pos(), _export_convert_output(), _extract_luminance_kernel(), _extract_patches(), _extract_rgb_kernels(), _fill_box_values(), _filmstrip_configure_dims(), _filmstrip_update_content_size(), _finalize_color_grain_kernel(), _get_allocation_size(), _get_area(), _get_area(), _get_auto_exp_histogram(), _get_combobox_popup_height(), _get_container_row_heigth(), _get_export_size(), _get_max_output_dimension(), _get_max_scale(), _get_page_dimension(), _get_preferred_height(), _get_selected_area(), _get_selected_area(), _get_structure(), _gradient_get_area(), _gradient_get_mask(), _grid_configure(), _grid_configure_dims(), _grid_update_content_size(), _group_get_mask(), _group_get_mask_roi(), _harmonic_reconstruct_cl(), _harmonic_reconstruct_host(), _harmonic_reconstruct_regions(), _heal_add(), _heal_laplace_iteration(), _heal_laplace_loop(), _heal_sub(), _height_changed(), _hl_cl_clip(), _hl_cl_count_clipped(), _hl_cl_lch_bayer(), _hl_cl_lch_xtrans(), _hl_cl_visualize(), _hl_gauss_get(), _hl_knee_apply_cfa(), _hl_knee_apply_cfa_cl(), _hl_knee_estimate(), _hl_knee_estimate_cl(), _hscreen_to_mm(), _image_cache_self_hash(), _import_get_thumbnail(), _init_f(), _init_widgets(), _interpolate_and_mask(), _interpolate_and_mask_passthrough(), _interpolate_and_mask_xtrans(), _interpolation_resample_plain(), _inverse_mask(), _ioporder_draw_rounded_rect(), _is_in_frame(), _k_assemble(), _k_blend_crop(), _knee_blur(), _knee_cl_selftest(), _lib_navigation_compose(), _lib_navigation_draw_callback(), _lib_navigation_picture_key(), _load_jpg(), _mm_to_hscreen(), _mm_to_vscreen(), _mouse_scroll(), _needs_recompute(), _on_configure(), _on_row_selected(), _origin_color_draw(), _overlay_apply_transform(), _paint_mask_backdrop(), _paint_waveform(), _pairing_is_coherent(), _paper_changed(), _paper_size(), _picker_initialize_geometry_raw(), _pixel_cache_clmem_get(), _plane_acquire(), _polygon_bounding_box(), _polygon_get_area(), _polygon_get_mask(), _polygon_get_mask_roi(), _polygon_get_source_area(), _prepare_blur_context(), _print_job_run(), _print_size_from_pixels(), _process_histogram(), _process_restricted_text(), _process_vectorscope(), _redraw_surface(), _region_guided_filter_cl_selftest(), _remosaic_and_replace(), _remosaic_and_replace_passthrough(), _remosaic_and_replace_xtrans(), _remove_outliers(), _render_brush_profile_cell(), _render_preview_surface(), _render_surface(), _resizable_area_resize(), _resizable_scroll_apply(), _restore_geometry(), _sample_draw_callback(), _sample_picker_luminance_mask(), _scan_directories(), _segment_clipped_regions(), _set_directory_tags(), _set_paper_size(), _set_printer(), _shape_manager_popup_restore_geometry(), _shape_manager_popup_save_geometry(), _simulate_channel(), _simulate_channel_cl(), _simulate_color(), _slideshow_request_slot(), _splash_draw(), _studio_configure_dev_roi(), _studio_style_load_icon(), _target_color_draw(), _thumb_draw_image(), _thumbtable_drag_set_icon(), _togglebutton_draw(), _transform_from_to_rgb_lab_lcms2(), _transform_lab_to_rgb_matrix(), _transform_matrix_rgb(), _transform_rgb_to_lab_matrix(), _transform_rgba8_to_bgra8(), _treeview_visible_height(), _trigger_recompute(), _ui_panel_size_changed(), _uint8_to_float(), _unet_forward(), _unet_forward_cl(), _validate_dimensions(), _view_image_get_surface_internal(), _view_map_drag_set_icon(), _view_map_motion_notify_callback(), _view_surface_matches(), _vscreen_to_mm(), _widget_set_size(), _write_page(), amaze_demosaic_RT(), ambient_light(), ambient_light_cl(), apply_correction(), apply_curve(), apply_legacy_curve(), area_button_press(), area_draw(), area_motion_notify(), auto_detect_WB(), autoset(), blur_2D_Bspline(), blur_2D_Bspline(), blur_horizontal_1ch(), blur_horizontal_2ch(), blur_horizontal_4ch(), blur_vertical_16wide(), blur_vertical_16wide_Kahan(), blur_vertical_1ch(), blur_vertical_1wide(), blur_vertical_1wide_Kahan(), blur_vertical_4wide(), blur_vertical_4wide_Kahan(), box_max_1ch(), box_max_cl(), box_mean_2ch(), box_mean_vert_1ch_Kahan(), box_min_1ch(), box_min_cl(), build_gui_kernel(), build_mask(), build_pixel_kernel(), cairo_surface_create_from_xyz_data(), capture_histogram(), checker_button_press(), checker_draw(), checker_motion_notify(), cl_box_mean(), cl_covariances(), cl_generate_result(), cl_solve(), cl_split_rgb(), cl_update_covariance(), cl_variances(), cluster_preview_draw(), collect_runs(), color_smoothing_cl(), compute_luminance_mask(), compute_norm(), compute_ratios(), compute_slice_height(), configure(), create_gauss_kernel(), create_global_distortion_map(), create_lens_kernel(), decompose_2D_Bspline(), dehaze_cl(), demosaic_ppg(), denoiseprofile_button_press(), denoiseprofile_draw(), denoiseprofile_motion_notify(), detail_enhance(), dimension(), display_mask(), draw_no_image(), draw_slider_line(), dt_apply_printer_profile(), dt_bauhaus_show_popup(), dt_bilateral_grid_size(), dt_bilateral_init(), dt_bilateral_init_cl(), dt_bilateral_memory_use(), dt_bilateral_memory_use2(), dt_bilateral_singlebuffer_size(), dt_bilateral_singlebuffer_size2(), dt_bilateral_slice(), dt_bilateral_slice_to_output(), dt_box_max(), dt_box_mean(), dt_box_mean_1ch(), dt_box_mean_4ch(), dt_box_mean_4ch_Kahan(), dt_box_mean_vertical(), dt_box_min(), dt_cairo_image_surface_create(), dt_cairo_image_surface_create_for_data(), dt_cairo_sharpen_surface_rgb24(), dt_cairo_surface_create_at_scale(), dt_cairo_surface_create_for_data_at_scale(), dt_color_checker_get_coordinates(), dt_color_checker_get_index(), dt_colorprofiles_bgra8_to_adobergb_rgba8(), dt_colorprofiles_rgba8_to_display_bgra8(), dt_colorprofiles_srgb_to_display_strided(), dt_colorspaces_apply_conversion(), dt_colorspaces_apply_conversion_hooked(), dt_colorspaces_apply_profile(), dt_colorspaces_apply_profile_cl(), dt_colorspaces_transform_rgba_float_image(), dt_control_draw_busy_msg(), dt_control_expose(), dt_dev_clip_roi(), dt_dev_draw_iso12646_border(), dt_dev_draw_profile_mode_label(), dt_dev_geometry_get_processed_size(), dt_dev_geometry_get_raw_size(), dt_dev_geometry_set_processed_size(), dt_dev_geometry_set_raw_size(), dt_dev_get_image_box_in_widget(), dt_dev_lock_pipe_surface(), dt_dev_paint_main_backbuf(), dt_dev_pixelpipe_cache_borrow_cl_payload(), dt_dev_pixelpipe_cache_get_pinned_image(), dt_dev_pixelpipe_get_roi_out(), dt_dev_pixelpipe_has_preview_output(), dt_dev_pixelpipe_set_input(), dt_dev_processed_size_gui(), dt_dev_render_locked_surface(), dt_dev_rescale_roi(), dt_dev_rescale_roi_to_input(), dt_dev_set_backbuf(), dt_dev_snapshot_draw(), dt_draw_cairo_to_gdk_pixbuf(), dt_draw_get_pixbuf_from_cairo(), dt_draw_grid(), dt_draw_grid_zoomed(), dt_draw_horizontal_lines(), dt_draw_loglog_grid(), dt_draw_rounded_rectangle_path(), dt_draw_semilog_x_grid(), dt_draw_semilog_y_grid(), dt_drawlayer_brush_rasterize(), dt_drawlayer_brush_rasterize_batch(), dt_drawlayer_brush_rasterize_dab_argb8(), dt_drawlayer_brush_rasterize_dab_rgbaf(), dt_drawlayer_cache_ensure_mask_buffer(), dt_drawlayer_cache_ensure_process_patch_buffer(), dt_drawlayer_cache_patch_alloc_shared(), dt_drawlayer_io_load_flat_rgba(), dt_drawlayer_layer_canvas(), dt_drawlayer_layer_canvas_for_pipe(), dt_drawlayer_paint_runtime_ensure_smudge_pixels(), dt_drawlayer_paint_runtime_prepare_dab_context(), dt_drawlayer_widgets_draw_brush_profiles(), dt_drawlayer_widgets_draw_picker(), dt_drawlayer_widgets_draw_swatch(), dt_drawlayer_widgets_pick_history_color(), dt_dwt_init(), dt_dwt_init_cl(), dt_exif_get_thumbnail(), dt_focus_draw_clusters(), dt_gaussian_blur(), dt_gaussian_blur_cl(), dt_gaussian_init(), dt_gaussian_init_cl(), dt_gaussian_memory_use(), dt_gaussian_memory_use_cl(), dt_gaussian_singlebuffer_size(), dt_geometry_chain_processed_size(), dt_get_svg_dimension(), dt_gui_draw_rounded_rectangle(), dt_gui_gtk_write_config(), dt_gui_preferences_show(), dt_gui_symbolic_icon_pixbuf(), dt_guides_draw(), dt_guides_draw_harmonious_triangles(), dt_guides_draw_rules_of_thirds(), dt_guides_q_rect(), dt_heal(), dt_heal_cl(), dt_image_distance_transform(), dt_imageio_crop_thumbnail(), dt_imageio_export_with_flags(), dt_imageio_jpeg_compress(), dt_imageio_jpeg_write(), dt_imageio_jpeg_write_with_icc_profile(), dt_imageio_large_thumbnail(), dt_imageio_open_avif(), dt_imageio_open_heif(), dt_imageio_open_png(), dt_imageio_open_rawspeed_sraw(), dt_imageio_tiff_decode_blob(), dt_interpolation_compute_pixel4c(), dt_interpolation_compute_sample(), dt_interpolation_resample_cl(), dt_iop_basecurve_draw(), dt_iop_basecurve_motion_notify(), dt_iop_colorcorrection_draw(), dt_iop_colorcorrection_motion_notify(), dt_iop_colorreconstruct_bilateral_memory_use(), dt_iop_colorreconstruct_bilateral_singlebuffer_size(), dt_iop_equalizer_iwtf(), dt_iop_equalizer_wtf(), dt_iop_flip_and_zoom_8(), dt_iop_image_add_const(), dt_iop_image_add_image(), dt_iop_image_alloc(), dt_iop_image_copy_by_size(), dt_iop_image_div_const(), dt_iop_image_fill(), dt_iop_image_invert(), dt_iop_image_linear_blend(), dt_iop_image_mul_const(), dt_iop_image_scaled_copy(), dt_iop_image_sub_image(), dt_iop_levels_area_draw(), dt_iop_levels_motion_notify(), dt_iop_monochrome_button_press(), dt_iop_monochrome_draw(), dt_iop_monochrome_motion_notify(), dt_iop_tonecurve_draw(), dt_iop_tonecurve_draw(), dt_iop_tonecurve_motion_notify(), dt_iop_zonesystem_bar_draw(), dt_iop_zonesystem_bar_motion_notify(), dt_iop_zonesystem_preview_draw(), dt_ioppr_transform_image_colorspace_rgb(), dt_ioppr_transform_image_colorspace_rgb_cl(), dt_ioppr_transform_lcms2(), dt_ioppr_transform_matrix(), dt_local_laplacian_init_cl(), dt_masks_blur_9x9(), dt_masks_calc_detail_mask(), dt_masks_calc_rawdetail_mask(), dt_masks_debug_rasterise(), dt_masks_debug_write_png(), dt_masks_events_post_expose(), dt_masks_events_post_expose_with(), dt_masks_extend_border(), dt_masks_points_bounding_box(), dt_masks_touched_full(), dt_masks_touched_set(), dt_mipmap_cache_get_fitting_size(), dt_mipmap_cache_get_matching_size(), dt_mipmap_cache_swap_at_size(), dt_mipmap_cache_update_buffer_addresses(), dt_nn_unet_apply(), dt_nn_unet_apply_stage(), dt_nn_unet_apply_stage_cl(), dt_nn_unet_scratch_bytes(), dt_opencl_alloc_device(), dt_opencl_alloc_device_use_host_pointer(), dt_opencl_copy_device_to_host(), dt_opencl_copy_host_to_device(), dt_opencl_copy_host_to_device_rowpitch(), dt_opencl_get_device_max_image_size(), dt_opencl_image_fits_device(), dt_opencl_image_fits_device_reason(), dt_opencl_map_image(), dt_opencl_read_host_from_device(), dt_opencl_read_host_from_device_non_blocking(), dt_opencl_read_host_from_device_rowpitch(), dt_opencl_read_host_from_device_rowpitch_non_blocking(), dt_opencl_write_host_to_device(), dt_opencl_write_host_to_device_non_blocking(), dt_opencl_write_host_to_device_rowpitch(), dt_opencl_write_host_to_device_rowpitch_non_blocking(), dt_osx_autoset_dpi(), dt_pdf_add_image(), dt_pdf_add_page(), dt_pdf_parse_paper_size(), dt_pdf_start(), dt_printing_setup_box(), dt_printing_setup_image(), dt_render_svg(), dt_supervisor_thumbnail(), dt_thumbnail_resize(), dt_tiling_piece_fits_host_memory(), dt_ui_resizable_drawing_area(), dt_view_image_get_surface(), dt_view_image_get_surface_async(), dt_view_manager_configure(), dt_view_manager_expose(), dtgtk_cairo_paint_flowchart(), dtgtk_cairo_paint_focus_peaking(), dual_demosaic(), dual_demosaic_cl(), dwt_add_layer_cl(), dwt_decompose_horiz(), dwt_decompose_vert(), dwt_denoise(), dwt_denoise_horiz_1ch(), dwt_denoise_vert_1ch(), dwt_interleave_rows(), dwt_subtract_layer_cl(), dwt_wavelet_decompose_cl(), eaw_decompose(), eaw_dn_decompose(), eaw_synthesize(), edge_enhance(), edge_enhance_1d(), eigf_variance_analysis(), eigf_variance_analysis_no_mask(), expand_2D_Bspline(), expose(), expose(), expose_print_page(), fast_eigf_surface_blur(), fast_surface_blur(), filmic_agx(), filmic_chroma_v1(), filmic_chroma_v2_v3(), filmic_chroma_v4(), filmic_split_v1(), filmic_split_v2_v3(), filmic_split_v4(), filmic_v5(), gamma_correct(), get_luminance_at_norm(), get_luminance_from_buffer(), get_manifolds(), green_equilibration_cl(), green_equilibration_favg(), green_equilibration_lavg(), gui_init(), gui_post_expose(), gui_post_expose(), gui_post_expose(), guide_laplacians(), guided_filter(), guided_filter_cl(), guided_filter_cl_fallback(), guided_filter_cl_impl(), guided_filter_tiling(), heat_PDE_diffusion(), heat_PDE_diffusion(), homography(), illuminant_color_draw(), image_lab2rgb(), image_lab_to_xyz(), image_rgb2lab(), init_column_sums(), init_kernel(), init_reconstruct(), init_reconstruct(), inpaint_mask(), inpaint_noise(), kmeans(), legacy_params(), legacy_params(), lin_interpolate(), line_detect(), linearize_16bit(), linearize_8bit(), lmmse_demosaic(), loop_switch(), lowlight_button_press(), lowlight_draw(), lowlight_motion_notify(), luminance_entry_fits(), main(), make_noise(), map_mouse_to_0_1(), mask_clipped_pixels(), model_fitness(), modify_roi_in(), modify_roi_out(), new_gray_image(), nlmeans_cl_accu(), nlmeans_cl_horiz(), nlmeans_cl_init(), nlmeans_cl_run(), nlmeans_denoise(), normalize(), normalize_manifolds(), open_image(), origin_color_draw(), preload_auto_callback(), process(), process(), process(), process(), process(), process(), process_cl(), process_cl(), process_cl(), process_cl(), process_cl(), process_clusters(), process_common_cleanup(), process_default_cl(), process_floyd_steinberg(), process_harmonic(), process_harmonic_cl(), process_laplacian(), process_laplacian_bayer_cl(), process_laplacian_passthrough_cl(), process_laplacian_xtrans_cl(), process_lch_xtrans(), process_markesteijn_cl(), process_nlmeans_cl(), process_random(), process_rcd_cl(), process_visualize(), process_vng_cl(), process_wavelets(), process_wavelets(), process_wavelets_cl(), rawdenoise_button_press(), rawdenoise_draw(), rawdenoise_motion_notify(), rcd_demosaic(), rcd_ppg_border(), read_pfm(), recommended_dimension(), reconstruct_highlights_cl(), reduce_2D_Bspline(), reduce_artifacts(), restore_ratios(), rgb2grey256(), RGBE_ReadHeader(), rt_adjust_levels(), rt_adjust_levels_cl(), rt_process_stats(), rt_process_stats_cl(), set_offset_and_scale(), show_pango_text(), target_color_draw(), test_field_by_field_read_crosses_publications(), testimg_alloc(), testimg_gen_all_black(), testimg_gen_all_grey(), testimg_gen_all_white(), testimg_gen_grey_max_dr(), testimg_gen_grey_space(), testimg_gen_rgb_space(), testimg_gen_single_color_space(), testimg_gen_three_color_space(), tiling_callback(), transition_map_cl(), update_histogram(), variance_analyse(), vng_interpolate(), wavelet_denoise(), wavelet_denoise_xtrans(), wavelets_detail_level(), wavelets_process(), wavelets_process(), wavelets_process_cl(), wavelets_process_cl(), wavelets_reconstruct_ratios(), wavelets_reconstruct_RGB(), write_image(), write_image(), write_image(), write_pfm(), xtrans_fdc_interpolate(), and xtrans_markesteijn_interpolate().

◆ iscale

◆ size

size_t size

Definition at line 3 of file mipmap_cache.c.

Referenced by __attribute__(), _ask_for_maintenance(), _bar_legend_block(), _bar_tooltip(), _blob_read(), _borders_map_size(), _brush_get_interaction_value(), _cache_try_rekey_reuse_locked(), _cf_harmonic_fill_cl_n(), _cf_stage_cl(), _color_picker_geometry(), _colorspaces_create_transfer(), _column_blob(), _compass_star(), _darkroom_edge_pan_velocity(), _draw_ellipse(), _draw_rectangle(), _dt_masks_dynbuf_growto(), _format_picker_brightness_position(), _free_space_to_alloc(), _get_max_scale(), _harmonic_reconstruct_host(), _hf_stage_cl(), _init_8(), _init_image_pin(), _init_place_pin(), _iop_zonesystem_calculate_zonemap(), _iop_zonesystem_zone_index_from_lightness(), _ioporder_add_preset(), _load_jpg(), _measure(), _menu_icon_draw(), _observe_delete(), _observe_read(), _on_row_selected(), _outline_cells_build(), _own_cgroup_path(), _paint_cursor_arrow(), _panel_handle_resize(), _pixelpipe_cache_create_entry_locked(), _polygon_get_interaction_value(), _print_trace(), _quantise_profile(), _test_public_delete_source_requires_successful_copy(), _update_display_profile(), _update_params(), _util_get_svg_img(), _view_map_images_count(), _wire_conv(), _write_cb(), ambient_light(), PermutohedralLattice< D, VD >::blur(), color_picker_helper_4ch(), color_picker_helper_4ch_converted_parallel(), color_picker_helper_4ch_converted_seq(), color_picker_helper_4ch_parallel(), color_picker_helper_4ch_seq(), color_picker_helper_bayer(), color_picker_helper_xtrans(), commit_params(), dark_channel(), decimated_bspline_size(), dl(), dl(), draw_rectangle(), draw_triangle(), dt_alloc_align(), dt_alloc_align_internal(), dt_bauhaus_draw_indicator(), dt_box_mean_1ch(), dt_box_mean_4ch(), dt_cache_arena_alloc(), dt_cache_arena_calc(), dt_cache_arena_free(), dt_cache_arena_trim(), dt_calloc_align(), dt_colorspaces_get_profile_name(), dt_colorspaces_get_rgb_profile_from_mem(), dt_colorspaces_pseudoinverse(), dt_dev_pixelpipe_cache_get(), dt_dev_pixelpipe_cache_get_writable(), dt_dev_pixelpipe_set_input(), dt_display_profile_read(), dt_draw_get_pixbuf_from_cairo(), dt_draw_paint_to_pixbuf(), dt_draw_plus_sign(), dt_exif_get_color_space(), dt_exif_get_datetime_taken(), dt_exif_get_thumbnail(), dt_exif_read_from_blob(), dt_exif_write_blob(), dt_get_papers(), dt_gui_set_symbolic_icon(), dt_gui_symbolic_icon_pixbuf(), dt_gui_update_em(), dt_hash(), dt_image_cache_init(), dt_imageio_avif_read_profile(), dt_imageio_export_with_flags(), dt_imageio_heif_read_profile(), dt_iop_alloc_image_buffers(), dt_ioppr_deserialize_iop_order_list(), dt_ioppr_serialize_iop_order_list(), dt_masks_dynbuf_init(), dt_masks_shape_menu_item_new(), dt_mipmap_cache_get_filename(), dt_opencl_alloc_device_buffer(), dt_opencl_alloc_device_buffer_with_flags(), dt_opencl_copy_host_to_device_constant(), dt_opencl_dev_roundup_height(), dt_opencl_dev_roundup_width(), dt_opencl_enqueue_copy_buffer_to_buffer(), dt_opencl_get_image_element_size(), dt_opencl_get_image_height(), dt_opencl_get_image_width(), dt_opencl_get_mem_object_size(), dt_opencl_get_mem_record(), dt_opencl_map_buffer(), dt_opencl_memory_statistics(), dt_opencl_read_buffer_from_device(), dt_opencl_set_kernel_arg(), dt_opencl_write_buffer_to_device(), dt_pdf_add_icc_from_data(), dt_pdf_finish(), dt_pixel_cache_new_entry(), dt_pixelpipe_cache_alloc_align_cache_impl(), dt_round_size(), dt_round_size_sse(), dt_supervisor_backbuf(), dt_supervisor_cacheline_create(), dt_supervisor_cacheline_delete(), dt_supervisor_cacheline_read(), dt_supervisor_thumbnail(), dt_ui_panel_get_size(), dt_util_get_logo(), dt_util_get_logo_text(), dwt_wavelet_decompose(), get_key(), get_params(), get_scales(), gui_post_expose(), guided_filter_tiling(), init_presets(), legacy_params(), lin_interpolate(), main(), main(), matrice_pseudoinverse(), max_val_matrix(), memset_zero(), PermutohedralLattice< D, VD >::merge_splat_threads(), normalize_array(), process(), process_common_cleanup(), process_harmonic(), process_laplacian(), process_vng_cl(), rt_adjust_levels(), rt_process_stats(), set_params(), set_params(), set_params(), set_params(), split_path(), transition_map(), wavelet_denoise(), and wavelet_denoise_xtrans().

◆ status

◆ width

uint32_t width

Definition at line 0 of file mipmap_cache.c.

Referenced by __attribute__(), __attribute__(), __attribute__(), __attribute__(), __attribute__(), _align_pos(), _apply_lcms2(), _apply_mono_grain_kernel(), _apply_tonecurves(), _area_button_press_callback(), _area_button_press_callback(), _area_draw_callback(), _area_draw_callback(), _area_draw_callback(), _area_motion_notify_callback(), _area_motion_notify_callback(), _area_motion_notify_callback(), _auto_levels(), _bar_draw(), _bar_segment_span(), _bar_tooltip(), _bh_get_active_region(), _bin_pickers_histogram(), _bin_pickers_vectorscope(), _bin_pickers_waveforms(), _bin_pixels_vectorscope_in_roi(), _bin_pixels_waveform(), _bin_vectorscope(), _bottom_area_draw_callback(), _brush_bounding_box(), _brush_get_area(), _brush_get_mask(), _brush_get_source_area(), _brush_profile_cell_rect(), _brush_profile_geometry(), _bspline_horizontal(), _bspline_horizontal_decimated(), _bspline_vertical_pass(), _build_preview_fallback_surface(), _build_projection(), _button_draw(), _cache_entry_materialize_host_data_locked(), _canvas_acquire(), _canvas_begin(), _circle_get_area(), _circle_get_mask(), _circle_get_mask_roi(), _circle_get_source_area(), _clipping_derive(), _collect_color_runs(), _color_picker_direct_hsl(), _color_picker_direct_lch_or_jzczhz(), _color_picker_geometry(), _color_picker_hsl(), _color_picker_jzczhz(), _color_picker_lch(), _color_picker_rgb_or_lab(), _combine_masks_union_box(), _copy_mask_batch_from_locked_patch(), _copy_rgba_batch_from_locked_patch(), _create_pdf(), _create_waveform_image(), _current_preview_luminance_hash(), _darkroom_compose_key(), _darkroom_edge_pan_apply(), _darkroom_edge_pan_update_state(), _darkroom_pickers_draw(), _darkroom_prepare_image_surface(), _darkroom_preview_fallback_valid(), _default_format_dimension(), _default_process_tiling_cl_ptp(), _default_process_tiling_cl_roi(), _default_process_tiling_ptp(), _default_process_tiling_roi(), _dev_translate_roi(), _develop_blend_process_feather(), _downsample_guided_laplacian_apply(), _downsample_guided_laplacian_fit(), _downsample_guided_laplacian_postfilter(), _downsample_guided_laplacian_postfilter_cl(), _draw_background(), _draw_color_picker(), _draw_image(), _draw_location(), _draw_placeholder(), _draw_preview_fallback(), _draw_transient_image(), _drawlayer_run_premult_over_kernel(), _drawlayer_sync_host_image_to_device(), _dt_focus_cdf22_wtf(), _dt_opencl_alloc_image2d(), _ellipse_get_area(), _ellipse_get_mask(), _ellipse_get_source_area(), _ensure_heartbeat_batch_buffers(), _export_and_setup_pos(), _export_convert_output(), _extract_luminance_kernel(), _extract_patches(), _extract_rgb_kernels(), _falloff_bridge_stamp(), _fill_box_values(), _filmstrip_configure_dims(), _filmstrip_update_content_size(), _finalize_color_grain_kernel(), _get_allocation_size(), _get_area(), _get_area(), _get_auto_exp_histogram(), _get_combobox_max_width(), _get_export_size(), _get_max_output_dimension(), _get_max_scale(), _get_page_dimension(), _get_selected_area(), _get_selected_area(), _get_structure(), _gradient_get_area(), _gradient_get_mask(), _grid_configure(), _grid_configure_dims(), _group_get_mask(), _group_get_mask_roi(), _harmonic_reconstruct_cl(), _harmonic_reconstruct_host(), _harmonic_reconstruct_regions(), _heal_add(), _heal_laplace_iteration(), _heal_laplace_loop(), _heal_sub(), _hl_cl_clip(), _hl_cl_count_clipped(), _hl_cl_lch_bayer(), _hl_cl_lch_xtrans(), _hl_cl_visualize(), _hl_gauss_get(), _hl_knee_apply_cfa(), _hl_knee_apply_cfa_cl(), _hl_knee_estimate(), _hl_knee_estimate_cl(), _hscreen_to_mm(), _image_cache_self_hash(), _import_get_thumbnail(), _init_f(), _init_widgets(), _interpolate_and_mask(), _interpolate_and_mask_passthrough(), _interpolate_and_mask_xtrans(), _interpolation_resample_plain(), _inverse_mask(), _ioporder_draw_rounded_rect(), _is_in_frame(), _k_assemble(), _k_blend_crop(), _knee_blur(), _knee_cl_selftest(), _lens_fill_vignette_row(), _lib_navigation_compose(), _lib_navigation_draw_callback(), _lib_navigation_picture_key(), _load_jpg(), _mm_to_hscreen(), _mm_to_vscreen(), _mouse_scroll(), _needs_recompute(), _on_configure(), _on_row_selected(), _orient_scope_buf(), _origin_color_draw(), _overlay_apply_transform(), _overlay_patch_row_rgba(), _paint_mask_backdrop(), _paint_waveform(), _pairing_is_coherent(), _paper_changed(), _paper_size(), _picker_initialize_geometry_raw(), _pixel_cache_clmem_get(), _plane_acquire(), _polygon_bounding_box(), _polygon_get_area(), _polygon_get_mask(), _polygon_get_mask_roi(), _polygon_get_source_area(), _prepare_blur_context(), _print_job_run(), _print_size_from_pixels(), _process_histogram(), _process_vectorscope(), _read_scanline_rgba(), _redraw_surface(), _region_composite(), _region_gather(), _region_guided_filter(), _region_guided_filter_cl_selftest(), _remosaic_and_replace(), _remosaic_and_replace_passthrough(), _remosaic_and_replace_xtrans(), _remove_outliers(), _rename_module_resize(), _render_brush_profile_cell(), _render_preview_surface(), _render_surface(), _restore_geometry(), _sample_draw_callback(), _sample_picker_luminance_mask(), _scan_directories(), _segment_clipped_regions(), _set_directory_tags(), _set_paper_size(), _set_printer(), _shape_manager_popup_restore_geometry(), _shape_manager_popup_save_geometry(), _simulate_channel(), _simulate_channel_cl(), _simulate_color(), _slideshow_request_slot(), _solid(), _splash_draw(), _srgb_to_display_row(), _studio_configure_dev_roi(), _studio_style_load_icon(), _target_color_draw(), _thumb_draw_image(), _thumb_resize_overlays(), _thumbtable_drag_set_icon(), _togglebutton_draw(), _transform_from_to_rgb_lab_lcms2(), _transform_lab_to_rgb_matrix(), _transform_matrix_rgb(), _transform_rgb_to_lab_matrix(), _transform_rgba8_to_bgra8(), _trigger_recompute(), _uint8_to_float(), _unet_forward(), _unet_forward_cl(), _validate_dimensions(), _view_image_get_surface_internal(), _view_map_get_entry_at_pos(), _view_map_get_imgs_at_pos(), _view_map_motion_notify_callback(), _view_surface_matches(), _vscreen_to_mm(), _widget_set_size(), _width_changed(), _write_page(), amaze_demosaic_RT(), ambient_light(), ambient_light_cl(), apply_correction(), apply_curve(), apply_legacy_curve(), area_button_press(), area_draw(), area_motion_notify(), auto_detect_WB(), autoset(), blur_2D_Bspline(), blur_2D_Bspline(), blur_horizontal_1ch(), blur_horizontal_2ch(), blur_horizontal_4ch(), blur_horizontal_4ch_Kahan(), blur_horizontal_Nch_Kahan(), blur_vertical_16wide(), blur_vertical_16wide_Kahan(), blur_vertical_1ch(), blur_vertical_1wide(), blur_vertical_1wide_Kahan(), blur_vertical_4wide(), blur_vertical_4wide_Kahan(), box_max_1ch(), box_max_cl(), box_mean_2ch(), box_mean_vert_1ch_Kahan(), box_min_1ch(), box_min_cl(), build_gui_kernel(), build_mask(), build_pixel_kernel(), cairo_surface_create_from_xyz_data(), capture_histogram(), checker_button_press(), checker_draw(), checker_motion_notify(), cl_box_mean(), cl_covariances(), cl_generate_result(), cl_solve(), cl_split_rgb(), cl_update_covariance(), cl_variances(), cluster_preview_draw(), collect_runs(), color_picker_helper_4ch_converted_parallel(), color_picker_helper_4ch_converted_seq(), color_picker_helper_4ch_parallel(), color_picker_helper_4ch_seq(), color_picker_helper_bayer_parallel(), color_picker_helper_bayer_seq(), color_picker_helper_xtrans_parallel(), color_picker_helper_xtrans_seq(), color_smoothing_cl(), compute_center_pixel_norm(), compute_luminance_mask(), compute_norm(), compute_ratios(), compute_slice_width(), configure(), create_gauss_kernel(), create_global_distortion_map(), create_lens_kernel(), create_motion_kernel(), decompose_2D_Bspline(), dehaze_cl(), demosaic_ppg(), denoiseprofile_button_press(), denoiseprofile_draw(), denoiseprofile_motion_notify(), detail_enhance(), dimension(), display_mask(), draw_no_image(), draw_slider_line(), dt_apply_printer_profile(), dt_bauhaus_combobox_button_press(), dt_bauhaus_draw_baseline(), dt_bauhaus_show_popup(), dt_bilateral_grid_size(), dt_bilateral_init(), dt_bilateral_init_cl(), dt_bilateral_memory_use(), dt_bilateral_memory_use2(), dt_bilateral_singlebuffer_size(), dt_bilateral_singlebuffer_size2(), dt_bilateral_slice(), dt_bilateral_slice_to_output(), dt_box_max(), dt_box_mean(), dt_box_mean_1ch(), dt_box_mean_4ch(), dt_box_mean_4ch_Kahan(), dt_box_mean_horizontal(), dt_box_mean_vertical(), dt_box_min(), dt_cairo_image_surface_create(), dt_cairo_image_surface_create_for_data(), dt_cairo_sharpen_surface_rgb24(), dt_cairo_surface_create_at_scale(), dt_cairo_surface_create_for_data_at_scale(), dt_colorprofiles_bgra8_to_adobergb_rgba8(), dt_colorprofiles_rgba8_to_display_bgra8(), dt_colorprofiles_srgb_to_display_strided(), dt_colorspaces_apply_conversion(), dt_colorspaces_apply_conversion_hooked(), dt_colorspaces_apply_profile(), dt_colorspaces_apply_profile_cl(), dt_colorspaces_transform_rgba_float_image(), dt_colorspaces_transform_rgba_float_row(), dt_control_draw_busy_msg(), dt_control_expose(), dt_dev_clip_roi(), dt_dev_draw_iso12646_border(), dt_dev_geometry_get_processed_size(), dt_dev_geometry_get_raw_size(), dt_dev_geometry_set_processed_size(), dt_dev_geometry_set_raw_size(), dt_dev_get_image_box_in_widget(), dt_dev_lock_pipe_surface(), dt_dev_paint_main_backbuf(), dt_dev_pixelpipe_cache_borrow_cl_payload(), dt_dev_pixelpipe_cache_get_pinned_image(), dt_dev_pixelpipe_get_roi_out(), dt_dev_pixelpipe_has_preview_output(), dt_dev_pixelpipe_set_input(), dt_dev_processed_size_gui(), dt_dev_render_locked_surface(), dt_dev_rescale_roi(), dt_dev_rescale_roi_to_input(), dt_dev_set_backbuf(), dt_dev_snapshot_draw(), dt_draw_cairo_to_gdk_pixbuf(), dt_draw_get_pixbuf_from_cairo(), dt_draw_grid(), dt_draw_grid_zoomed(), dt_draw_loglog_grid(), dt_draw_rounded_rectangle_path(), dt_draw_semilog_x_grid(), dt_draw_semilog_y_grid(), dt_draw_vertical_lines(), dt_drawlayer_brush_rasterize(), dt_drawlayer_brush_rasterize_batch(), dt_drawlayer_brush_rasterize_dab_argb8(), dt_drawlayer_brush_rasterize_dab_rgbaf(), dt_drawlayer_cache_ensure_mask_buffer(), dt_drawlayer_cache_ensure_process_patch_buffer(), dt_drawlayer_cache_patch_alloc_shared(), dt_drawlayer_io_load_flat_rgba(), dt_drawlayer_layer_canvas(), dt_drawlayer_layer_canvas_for_pipe(), dt_drawlayer_paint_runtime_ensure_smudge_pixels(), dt_drawlayer_paint_runtime_prepare_dab_context(), dt_drawlayer_widgets_draw_brush_profiles(), dt_drawlayer_widgets_draw_picker(), dt_drawlayer_widgets_draw_swatch(), dt_drawlayer_widgets_pick_history_color(), dt_dwt_init(), dt_dwt_init_cl(), dt_exif_get_thumbnail(), dt_focus_draw_clusters(), dt_gaussian_blur(), dt_gaussian_blur_cl(), dt_gaussian_init(), dt_gaussian_init_cl(), dt_gaussian_memory_use(), dt_gaussian_memory_use_cl(), dt_gaussian_singlebuffer_size(), dt_geometry_chain_processed_size(), dt_get_svg_dimension(), dt_gui_draw_rounded_rectangle(), dt_gui_gtk_write_config(), dt_gui_symbolic_icon_pixbuf(), dt_guides_draw(), dt_guides_draw_harmonious_triangles(), dt_guides_draw_rules_of_thirds(), dt_guides_q_rect(), dt_heal(), dt_heal_cl(), dt_image_distance_transform(), dt_imageio_crop_thumbnail(), dt_imageio_export_with_flags(), dt_imageio_jpeg_compress(), dt_imageio_jpeg_write(), dt_imageio_jpeg_write_with_icc_profile(), dt_imageio_large_thumbnail(), dt_imageio_open_avif(), dt_imageio_open_heif(), dt_imageio_open_png(), dt_imageio_open_rawspeed_sraw(), dt_imageio_tiff_decode_blob(), dt_interpolation_compute_pixel4c(), dt_interpolation_compute_sample(), dt_interpolation_resample_cl(), dt_iop_basecurve_button_press(), dt_iop_basecurve_draw(), dt_iop_basecurve_motion_notify(), dt_iop_colorcorrection_draw(), dt_iop_colorcorrection_motion_notify(), dt_iop_colorreconstruct_bilateral_memory_use(), dt_iop_colorreconstruct_bilateral_singlebuffer_size(), dt_iop_equalizer_iwtf(), dt_iop_equalizer_wtf(), dt_iop_flip_and_zoom_8(), dt_iop_image_add_const(), dt_iop_image_add_image(), dt_iop_image_alloc(), dt_iop_image_copy_by_size(), dt_iop_image_div_const(), dt_iop_image_fill(), dt_iop_image_invert(), dt_iop_image_linear_blend(), dt_iop_image_mul_const(), dt_iop_image_scaled_copy(), dt_iop_image_sub_image(), dt_iop_levels_area_draw(), dt_iop_levels_motion_notify(), dt_iop_monochrome_button_press(), dt_iop_monochrome_draw(), dt_iop_monochrome_motion_notify(), dt_iop_tonecurve_button_press(), dt_iop_tonecurve_draw(), dt_iop_tonecurve_draw(), dt_iop_tonecurve_motion_notify(), dt_iop_zonesystem_bar_button_press(), dt_iop_zonesystem_bar_draw(), dt_iop_zonesystem_bar_motion_notify(), dt_iop_zonesystem_preview_draw(), dt_ioppr_transform_image_colorspace_rgb(), dt_ioppr_transform_image_colorspace_rgb_cl(), dt_ioppr_transform_lcms2(), dt_ioppr_transform_matrix(), dt_local_laplacian_init_cl(), dt_masks_blur_9x9(), dt_masks_calc_detail_mask(), dt_masks_calc_rawdetail_mask(), dt_masks_create_menu(), dt_masks_debug_rasterise(), dt_masks_debug_write_png(), dt_masks_events_post_expose(), dt_masks_events_post_expose_with(), dt_masks_extend_border(), dt_masks_points_bounding_box(), dt_masks_touched_clear(), dt_masks_touched_full(), dt_masks_touched_set(), dt_mipmap_cache_get_fitting_size(), dt_mipmap_cache_get_matching_size(), dt_mipmap_cache_swap_at_size(), dt_mipmap_cache_update_buffer_addresses(), dt_nn_unet_apply(), dt_nn_unet_apply_stage(), dt_nn_unet_apply_stage_cl(), dt_nn_unet_scratch_bytes(), dt_opencl_alloc_device(), dt_opencl_alloc_device_use_host_pointer(), dt_opencl_copy_device_to_host(), dt_opencl_copy_host_to_device(), dt_opencl_copy_host_to_device_rowpitch(), dt_opencl_get_device_max_image_size(), dt_opencl_image_fits_device(), dt_opencl_image_fits_device_reason(), dt_opencl_map_image(), dt_opencl_read_host_from_device(), dt_opencl_read_host_from_device_non_blocking(), dt_opencl_read_host_from_device_rowpitch(), dt_opencl_read_host_from_device_rowpitch_non_blocking(), dt_opencl_write_host_to_device(), dt_opencl_write_host_to_device_non_blocking(), dt_opencl_write_host_to_device_rowpitch(), dt_opencl_write_host_to_device_rowpitch_non_blocking(), dt_osx_autoset_dpi(), dt_pdf_add_image(), dt_pdf_add_page(), dt_pdf_parse_paper_size(), dt_pdf_start(), dt_printing_setup_box(), dt_printing_setup_image(), dt_render_svg(), dt_supervisor_thumbnail(), dt_thumbnail_resize(), dt_tiling_piece_fits_host_memory(), dt_view_image_get_surface(), dt_view_image_get_surface_async(), dt_view_manager_configure(), dt_view_manager_expose(), dt_widget_set_min_panel_width(), dtgtk_cairo_paint_flowchart(), dtgtk_cairo_paint_focus_peaking(), dual_demosaic(), dual_demosaic_cl(), dwt_add_layer_cl(), dwt_decompose_horiz(), dwt_decompose_vert(), dwt_denoise(), dwt_denoise_horiz_1ch(), dwt_denoise_vert_1ch(), dwt_subtract_layer_cl(), dwt_wavelet_decompose_cl(), eaw_decompose(), eaw_dn_decompose(), eaw_synthesize(), edge_enhance(), edge_enhance_1d(), eigf_variance_analysis(), eigf_variance_analysis_no_mask(), expand_2D_Bspline(), expose(), expose(), expose_print_page(), fast_eigf_surface_blur(), fast_surface_blur(), filmic_agx(), filmic_chroma_v1(), filmic_chroma_v2_v3(), filmic_chroma_v4(), filmic_split_v1(), filmic_split_v2_v3(), filmic_split_v4(), filmic_v5(), gamma_correct(), get_luminance_at_norm(), get_luminance_from_buffer(), get_manifolds(), green_equilibration_cl(), green_equilibration_favg(), green_equilibration_lavg(), gui_post_expose(), gui_post_expose(), gui_post_expose(), guide_laplacians(), guided_filter(), guided_filter_cl(), guided_filter_cl_fallback(), guided_filter_cl_impl(), guided_filter_tiling(), heat_PDE_diffusion(), heat_PDE_diffusion(), homography(), illuminant_color_draw(), image_lab2rgb(), image_lab_to_xyz(), image_rgb2lab(), init_bounding_box(), init_column_sums(), init_kernel(), init_reconstruct(), init_reconstruct(), inpaint_mask(), inpaint_noise(), kmeans(), legacy_params(), legacy_params(), lin_interpolate(), line_detect(), linearize_16bit(), linearize_8bit(), lmmse_demosaic(), loop_switch(), lowlight_button_press(), lowlight_draw(), lowlight_motion_notify(), luminance_entry_fits(), main(), make_noise(), map_mouse_to_0_1(), mask_clipped_pixels(), model_fitness(), modify_roi_in(), modify_roi_out(), new_gray_image(), nlmeans_cl_accu(), nlmeans_cl_horiz(), nlmeans_cl_init(), nlmeans_cl_run(), nlmeans_denoise(), normalize(), normalize_manifolds(), open_image(), origin_color_draw(), preload_auto_callback(), process(), process(), process(), process(), process(), process(), process_bayer(), process_cl(), process_cl(), process_cl(), process_cl(), process_cl(), process_clusters(), process_common_cleanup(), process_default_cl(), process_floyd_steinberg(), process_harmonic(), process_harmonic_cl(), process_laplacian(), process_laplacian_bayer_cl(), process_laplacian_passthrough_cl(), process_laplacian_xtrans_cl(), process_markesteijn_cl(), process_nlmeans_cl(), process_random(), process_rcd_cl(), process_visualize(), process_vng_cl(), process_wavelets(), process_wavelets(), process_wavelets_cl(), process_xtrans(), rawdenoise_button_press(), rawdenoise_draw(), rawdenoise_motion_notify(), rcd_demosaic(), rcd_ppg_border(), read_pfm(), recommended_dimension(), reconstruct_highlights_cl(), reduce_2D_Bspline(), reduce_artifacts(), restore_ratios(), rgb2grey256(), RGBE_ReadHeader(), rt_adjust_levels(), rt_adjust_levels_cl(), rt_process_stats(), rt_process_stats_cl(), set_line_width(), set_offset_and_scale(), show_pango_text(), target_color_draw(), test_field_by_field_read_crosses_publications(), testimg_alloc(), testimg_gen_all_black(), testimg_gen_all_grey(), testimg_gen_all_white(), testimg_gen_grey_max_dr(), testimg_gen_grey_space(), testimg_gen_grey_with_rgb_clipping(), testimg_gen_rgb_space(), testimg_gen_single_color_space(), testimg_gen_three_color_space(), tiling_callback(), transition_map_cl(), update_histogram(), variance_analyse(), vng_interpolate(), wavelet_denoise(), wavelet_denoise_xtrans(), wavelets_detail_level(), wavelets_process(), wavelets_process(), wavelets_process_cl(), wavelets_process_cl(), wavelets_reconstruct_ratios(), wavelets_reconstruct_RGB(), write_image(), write_image(), write_image(), write_pfm(), xtrans_fdc_interpolate(), and xtrans_markesteijn_interpolate().