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#pragma once
6
7#include "common/darktable.h"
9#include "develop/tiling.h"
10
11#include <string.h>
12
25
32
51static inline gboolean _bypass_cache(const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece)
52{
53 return pipe->reentry || pipe->no_cache || (!IS_NULL_PTR(piece) ? piece->bypass_cache : pipe->bypass_cache);
54}
55
66{
67 if(IS_NULL_PTR(piece)) return;
68
69 memset(&piece->cache_entry, 0, sizeof(piece->cache_entry));
71}
72
74 gboolean is_cl, const dt_iop_buffer_dsc_t *in_dsc,
75 const dt_iop_buffer_dsc_t *out_dsc, const dt_iop_roi_t *roi_in,
76 const dt_iop_roi_t *roi_out, size_t in_bpp, size_t out_bpp,
77 int cst_before, int cst_after);
78
80 const dt_dev_pixelpipe_iop_t *piece,
81 const dt_iop_buffer_dsc_t *output_dsc);
82
84 const dt_pixel_cache_entry_t *cache_entry);
#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 darktable.h:281
#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_pixel_cache_entry_t cache_entry
Region of interest passed through the pixelpipe.
Definition imageop.h:72
uint64_t hash