Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
dt_dev_pixelpipe_iop_t Struct Reference

#include <pixelpipe_hb.h>

+ Collaboration diagram for dt_dev_pixelpipe_iop_t:

Data Fields

struct dt_iop_module_t *voiddata
 
size_t data_size
 
voidblendop_data
 
gboolean enabled
 
dt_dev_request_flags_t request_histogram
 
dt_dev_histogram_collection_params_t histogram_params
 
int iwidth
 
int iheight
 
uint64_t hash
 
uint64_t blendop_hash
 
uint64_t global_hash
 
uint64_t global_mask_hash
 
int bpc
 
dt_iop_roi_t buf_in
 
dt_iop_roi_t buf_out
 
dt_iop_roi_t roi_in
 
dt_iop_roi_t roi_out
 
int process_cl_ready
 
int process_tiling_ready
 
dt_iop_buffer_dsc_t dsc_in
 
dt_iop_buffer_dsc_t dsc_out
 
dt_iop_buffer_dsc_t dsc_mask
 
gboolean bypass_cache
 
dt_pixel_cache_entry_t cache_entry
 
gboolean force_opencl_cache
 
GHashTable * raster_masks
 

Detailed Description

Runtime representation of one history item instantiated inside a pixelpipe node.

A piece is the sealed processing contract for one module on one pipe. It is authored during history -> pipe synchronization and then consumed by the recursive runtime without recomputing its format contract.

Contract sealing order:

  • the upstream descriptor is copied into dsc_in,
  • module input_format() may overwrite the fields it requires on dsc_in,
  • the resulting hard storage contract is sanitized against the actual upstream storage format; only bit depth, channel count, and RAW filter layout must match,
  • dsc_out is initialized from dsc_in,
  • commit_params() may update value-domain metadata that depends on module parameters, such as processed_maximum or RAW normalization coefficients,
  • module output_format() may finally overwrite the output storage contract.

After synchronization:

  • dsc_in and dsc_out are authoritative and immutable during process(), process_cl(), process_tiling(), and blending,
  • runtime code may compare the previous piece output descriptor with dsc_in to decide whether a colorspace conversion is needed, but it must not rewrite the contract,
  • ROI callbacks (modify_roi_in() / modify_roi_out()) are still allowed to mutate the piece because ROI planning happens before processing starts and some modules derive descriptor details from the planned crop,
  • cache entries published by this piece inherit the descriptor of the pixels produced by this stage, namely dsc_out.

Mutable lifecycle summary:

  • commit_params(), input_format(), output_format(), and ROI planning are the only places allowed to author the contract,
  • processing code treats the piece as read-only,
  • the cache-related fields only track output ownership/reuse hints and do not participate in the pixel format contract itself.

Field Documentation

◆ blendop_data

◆ blendop_hash

◆ bpc

int dt_dev_pixelpipe_iop_t::bpc

◆ buf_in

◆ buf_out

◆ bypass_cache

gboolean dt_dev_pixelpipe_iop_t::bypass_cache

◆ cache_entry

dt_pixel_cache_entry_t dt_dev_pixelpipe_iop_t::cache_entry

◆ data

struct dt_iop_module_t* void* dt_dev_pixelpipe_iop_t::data

Referenced by _build_pre_module_filter_string(), _colorin_format_cst(), _colorout_format_cst(), _compute_lut(), _distort_xtransform(), _do_get_structure_auto(), _do_get_structure_lines(), _do_get_structure_quad(), _get_first_roi(), _print_export_debug(), _process(), _process_common_setup(), _seal_opencl_cache_policy(), _sync_pipe_nodes_from_history(), _sync_pipe_nodes_from_history_from_node(), _sync_private_buffer_from_preview_cache(), _update_output_cfa_descriptor(), backtransform(), build_global_distortion_map(), cleanup_pipe(), cleanup_pipe(), cleanup_pipe(), commit_params(), commit_params(), commit_params(), commit_params(), commit_params(), commit_params_late(), compute_lut(), default_cleanup_pipe(), default_commit_params(), default_init_pipe(), distort_backtransform(), distort_backtransform(), distort_backtransform(), distort_mask(), distort_transform(), distort_transform(), distort_transform(), dt_dev_distort_detail_mask(), dt_dev_get_raster_mask(), dt_dev_pixelpipe_cleanup_nodes(), dt_dev_pixelpipe_disable_after(), dt_dev_pixelpipe_disable_before(), dt_dev_pixelpipe_get_module_piece(), dt_dev_pixelpipe_get_prev_enabled_piece(), dt_dev_pixelpipe_get_roi_in(), dt_dev_pixelpipe_get_roi_out(), dt_dev_pixelpipe_process_rec(), dt_dev_pixelpipe_synch_top(), dt_dev_refresh_preview_histograms(), dt_iop_color_picker_get_ready_data(), dt_iop_commit_params(), dt_iop_levels_compute_levels_automatic(), dt_pixelpipe_get_global_hash(), init_pipe(), init_pipe(), init_pipe(), modify_roi_in(), modify_roi_in(), modify_roi_in(), modify_roi_in(), modify_roi_out(), modify_roi_out(), modify_roi_out(), process(), process(), process(), process(), process(), process(), process(), process(), process_cmatrix(), process_cmatrix_bm(), process_cmatrix_fastpath(), process_cmatrix_fastpath_clipping(), process_cmatrix_fastpath_simple(), process_cmatrix_proper(), process_common_cleanup(), process_common_setup(), process_cpu(), process_display(), process_floyd_steinberg(), process_fusion(), process_gray(), process_hsl_v1(), process_hsl_v2(), process_internal(), process_laplacian_bayer(), process_laplacian_xtrans(), process_lcms2(), process_lcms2_bm(), process_lcms2_proper(), process_lut(), process_nlmeans_cpu(), process_random(), process_rgb(), process_v1(), process_v3(), process_variance(), process_wavelets(), process_wavelets(), rt_compute_roi_in(), rt_extend_roi_in_for_clone(), rt_extend_roi_in_from_source_clones(), rt_process_forms(), tiling_callback(), toneeq_process(), transform(), transform(), write_image(), and write_image().

◆ data_size

size_t dt_dev_pixelpipe_iop_t::data_size

◆ dsc_in

◆ dsc_mask

dt_iop_buffer_dsc_t dt_dev_pixelpipe_iop_t::dsc_mask

◆ dsc_out

◆ enabled

◆ force_opencl_cache

gboolean dt_dev_pixelpipe_iop_t::force_opencl_cache

◆ global_hash

◆ global_mask_hash

◆ hash

◆ histogram_params

dt_dev_histogram_collection_params_t dt_dev_pixelpipe_iop_t::histogram_params

◆ iheight

◆ iwidth

◆ process_cl_ready

◆ process_tiling_ready

int dt_dev_pixelpipe_iop_t::process_tiling_ready

◆ raster_masks

GHashTable* dt_dev_pixelpipe_iop_t::raster_masks

◆ request_histogram

◆ roi_in

◆ roi_out


The documentation for this struct was generated from the following file: