![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/darktable.h"#include "develop/pixelpipe_hb.h"#include "develop/tiling.h"#include <string.h>
Include dependency graph for pixelpipe_process.h:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Typedefs | |
| typedef enum dt_pixelpipe_flow_t | dt_pixelpipe_flow_t |
| typedef enum dt_pixelpipe_blend_transform_t | dt_pixelpipe_blend_transform_t |
Enumerations | |
| enum | dt_pixelpipe_flow_t { PIXELPIPE_FLOW_NONE = 0 , PIXELPIPE_FLOW_HISTOGRAM_NONE = 1 << 0 , PIXELPIPE_FLOW_HISTOGRAM_ON_CPU = 1 << 1 , PIXELPIPE_FLOW_HISTOGRAM_ON_GPU = 1 << 2 , PIXELPIPE_FLOW_PROCESSED_ON_CPU = 1 << 3 , PIXELPIPE_FLOW_PROCESSED_ON_GPU = 1 << 4 , PIXELPIPE_FLOW_PROCESSED_WITH_TILING = 1 << 5 , PIXELPIPE_FLOW_BLENDED_ON_CPU = 1 << 6 , PIXELPIPE_FLOW_BLENDED_ON_GPU = 1 << 7 } |
| enum | dt_pixelpipe_blend_transform_t { DT_DEV_PIXELPIPE_BLEND_TRANSFORM_NONE = 0 , DT_DEV_PIXELPIPE_BLEND_TRANSFORM_INPUT = 1 << 0 , DT_DEV_PIXELPIPE_BLEND_TRANSFORM_OUTPUT = 1 << 1 } |
Functions | |
| 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. | |
| static void | _reset_piece_cache_entry (dt_dev_pixelpipe_iop_t *piece) |
| Drop the writable-reuse snapshot attached to a pipeline piece. | |
| 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) |
| 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) |
| gboolean | dt_dev_pixelpipe_cache_gpu_device_buffer (const dt_dev_pixelpipe_t *pipe, const dt_pixel_cache_entry_t *cache_entry) |
| typedef enum dt_pixelpipe_flow_t dt_pixelpipe_flow_t |
| enum dt_pixelpipe_flow_t |
|
inlinestatic |
Tell whether the current pipeline state forbids keeping this module output in cache.
This aggregates all pipeline-wide and module-local policy switches that turn cache lines into disposable buffers:
References dt_dev_pixelpipe_iop_t::bypass_cache, dt_dev_pixelpipe_t::bypass_cache, dt_dev_pixelpipe_t::no_cache, and dt_dev_pixelpipe_t::reentry.
Referenced by dt_dev_pixelpipe_cache_gpu_device_buffer(), dt_dev_pixelpipe_process(), and dt_dev_pixelpipe_process_rec().
|
inlinestatic |
Drop the writable-reuse snapshot attached to a pipeline piece.
piece->cache_entry is only a hint telling the cache that a previously published cacheline may be rekeyed and fully overwritten on a later pass. If we decide to keep the current module output as a long-term cacheline instead, that hint must disappear completely so no stale pointer, serial, lock or metadata survives the decision.
References dt_dev_pixelpipe_iop_t::cache_entry, DT_PIXELPIPE_CACHE_HASH_INVALID, dt_pixel_cache_entry_t::hash, and IS_NULL_PTR.
Referenced by _abort_module_shutdown_cleanup(), dt_dev_pixelpipe_create_nodes(), and dt_dev_pixelpipe_process_rec().
| gboolean dt_dev_pixelpipe_cache_gpu_device_buffer | ( | const dt_dev_pixelpipe_t * | pipe, |
| const dt_pixel_cache_entry_t * | cache_entry | ||
| ) |
References _bypass_cache(), dt_pixel_cache_entry_get_data(), IS_NULL_PTR, and dt_dev_pixelpipe_t::realtime.
Referenced by _gpu_early_cpu_fallback_if_unsupported(), and pixelpipe_process_on_GPU().
| 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 | ||
| ) |
References _debug_cst_to_string(), _debug_type_to_string(), dt_iop_buffer_dsc_t::channels, dt_iop_buffer_dsc_t::cst, darktable, dt_iop_buffer_dsc_t::datatype, DT_DEBUG_PIPE, DT_DEBUG_VERBOSE, dt_pixelpipe_get_pipe_name(), dt_print(), dt_iop_roi_t::height, IS_NULL_PTR, dt_dev_pixelpipe_t::type, darktable_t::unmuted, and dt_iop_roi_t::width.
Referenced by pixelpipe_process_on_CPU(), and pixelpipe_process_on_GPU().
| 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 | ||
| ) |
References dt_dev_pixelpipe_iop_t::blendop_data, dt_iop_buffer_dsc_t::cst, d, DEVELOP_MASK_DISABLED, dt_dev_pixelpipe_iop_t::dsc_in, DT_DEV_PIXELPIPE_BLEND_TRANSFORM_INPUT, DT_DEV_PIXELPIPE_BLEND_TRANSFORM_NONE, DT_DEV_PIXELPIPE_BLEND_TRANSFORM_OUTPUT, dt_develop_blend_colorspace(), dt_iop_colorspace_is_rgb(), IOP_FLAGS_SUPPORTS_BLENDING, and IS_NULL_PTR.
Referenced by pixelpipe_process_on_CPU(), and pixelpipe_process_on_GPU().