Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
pixelpipe_process.h
Go to the documentation of this file.
1/*
2 Private pixelpipe process API shared by pixelpipe_hb.c, pixelpipe_cpu.c and pixelpipe_gpu.c.
3*/
4
5#ifndef DT_DEVELOP_PIXELPIPE_PROCESS_H
6#define DT_DEVELOP_PIXELPIPE_PROCESS_H
7
8#include "system/macros.h"
10#include "develop/tiling.h"
11
12#include <glib.h>
13#include <string.h>
14
27
34
57
68{
69 if(IS_NULL_PTR(piece)) return;
70
71 memset(&piece->cache_entry, 0, sizeof(piece->cache_entry));
73 memset(&piece->cache_entry_prev, 0, sizeof(piece->cache_entry_prev));
74 piece->cache_entry_prev.hash = DT_PIXELPIPE_CACHE_HASH_INVALID;
75}
76
78 gboolean is_cl, const dt_iop_buffer_dsc_t *in_dsc,
79 const dt_iop_buffer_dsc_t *out_dsc, const dt_iop_roi_t *roi_in,
80 const dt_iop_roi_t *roi_out, size_t in_bpp, size_t out_bpp,
81 int cst_before, int cst_after);
82
85 const dt_iop_buffer_dsc_t *output_dsc);
86
88 const dt_pixel_cache_entry_t *cache_entry);
89#endif // DT_DEVELOP_PIXELPIPE_PROCESS_H
static const dt_dev_pixelpipe_t * pipe
Definition layers.h:49
static const dt_dev_pixelpipe_t const dt_dev_pixelpipe_iop_t * piece
Definition layers.h:50
#define IS_NULL_PTR(p)
C is way too permissive with !=, == and if(var) checks, which can mean too many things depending on w...
Definition macros.h:96
#define DT_PIXELPIPE_CACHE_HASH_INVALID
dt_pixelpipe_flow_t
@ PIXELPIPE_FLOW_HISTOGRAM_ON_GPU
@ PIXELPIPE_FLOW_HISTOGRAM_NONE
@ PIXELPIPE_FLOW_PROCESSED_ON_CPU
@ PIXELPIPE_FLOW_PROCESSED_WITH_TILING
@ PIXELPIPE_FLOW_PROCESSED_ON_GPU
@ PIXELPIPE_FLOW_NONE
@ PIXELPIPE_FLOW_BLENDED_ON_CPU
@ PIXELPIPE_FLOW_HISTOGRAM_ON_CPU
@ PIXELPIPE_FLOW_BLENDED_ON_GPU
static void _reset_piece_cache_entry(dt_dev_pixelpipe_iop_t *piece)
Drop the writable-reuse snapshot attached to a pipeline piece.
gboolean dt_dev_pixelpipe_cache_gpu_device_buffer(const dt_dev_pixelpipe_t *pipe, const dt_pixel_cache_entry_t *cache_entry)
void dt_dev_pixelpipe_debug_dump_module_io(dt_dev_pixelpipe_t *pipe, dt_iop_module_t *module, const char *stage, gboolean is_cl, const dt_iop_buffer_dsc_t *in_dsc, const dt_iop_buffer_dsc_t *out_dsc, const dt_iop_roi_t *roi_in, const dt_iop_roi_t *roi_out, size_t in_bpp, size_t out_bpp, int cst_before, int cst_after)
static gboolean _bypass_cache(const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece)
Tell whether the current pipeline state forbids keeping this module output in cache.
dt_pixelpipe_blend_transform_t
@ DT_DEV_PIXELPIPE_BLEND_TRANSFORM_INPUT
@ DT_DEV_PIXELPIPE_BLEND_TRANSFORM_NONE
@ DT_DEV_PIXELPIPE_BLEND_TRANSFORM_OUTPUT
dt_pixelpipe_blend_transform_t dt_dev_pixelpipe_transform_for_blend(const dt_iop_module_t *self, const dt_dev_pixelpipe_iop_t *piece, const dt_iop_buffer_dsc_t *output_dsc)
dt_atomic_uint64 hash
Region of interest passed through the pixelpipe.
Definition format.h:49