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
 
gboolean detail_mask
 
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 cache_output_on_ram
 
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

◆ cache_output_on_ram

gboolean dt_dev_pixelpipe_iop_t::cache_output_on_ram

◆ data

struct dt_iop_module_t* void* dt_dev_pixelpipe_iop_t::data

Referenced by __attribute__(), __attribute__(), _build_pre_module_filter_string(), _compute_lut(), _current_preview_input_hash(), _distort_xtransform(), _do_get_structure_auto(), _do_get_structure_lines(), _do_get_structure_quad(), _find_detailmask_node(), _get_requested_piece_node(), _ioporder_get_preview_piece(), _print_export_debug(), _process(), _process_common_setup(), _refresh_pipe_detail_mask_state(), _refresh_preview_histograms(), _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(), build_global_distortion_map(), cleanup_pipe(), cleanup_pipe(), cleanup_pipe(), commit_params(), commit_params(), commit_params(), commit_params(), commit_params(), 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(), dt_dev_pixelpipe_process_rec(), dt_dev_pixelpipe_sync_no_history(), dt_dev_pixelpipe_synch_top(), dt_dev_retrieve_rawdetail_mask(), dt_iop_color_picker_get_ready_data(), dt_iop_commit_params(), dt_iop_levels_compute_levels_automatic(), dt_pixelpipe_get_global_hash(), dual_demosaic_cl(), green_equilibration_cl(), 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(), modify_roi_out(), process(), process(), process(), process(), process(), process(), process(), process(), process_cl(), process_cl(), process_cl(), process_cl(), process_cmatrix_bm(), process_cmatrix_fastpath_clipping(), process_cmatrix_fastpath_simple(), process_cmatrix_proper(), process_common_cleanup(), process_common_setup(), process_default_cl(), process_display(), process_floyd_steinberg(), process_fusion(), process_gray(), process_hsl_v1(), process_hsl_v2(), process_internal(), process_laplacian_bayer(), process_laplacian_bayer_cl(), process_laplacian_xtrans(), process_laplacian_xtrans_cl(), process_lcms2_bm(), process_lcms2_proper(), process_lut(), process_markesteijn_cl(), process_nlmeans_cl(), process_random(), process_rcd_cl(), process_rgb(), process_v1(), process_v3(), process_vng_cl(), process_wavelets(), process_wavelets(), process_wavelets_cl(), rt_compute_roi_in(), rt_extend_roi_in_for_clone(), rt_extend_roi_in_from_source_clones(), rt_process_forms(), rt_process_forms_cl(), tiling_callback(), transform(), and write_image().

◆ data_size

size_t dt_dev_pixelpipe_iop_t::data_size

◆ detail_mask

◆ dsc_in

dt_iop_buffer_dsc_t dt_dev_pixelpipe_iop_t::dsc_in

Referenced by _commit_piece_contract(), _compute_correction(), _develop_mask_get_post_operations(), _gpu_early_cpu_fallback_if_unsupported(), _gpu_init_input(), _ioporder_create_graph_node(), _ioporder_rebuild_graph(), _prepare_piece_input_contract(), _refresh_module_histogram(), _refresh_pipe_detail_mask_state(), _refresh_preview_module_histogram_for_hash(), _sync_private_buffer_from_preview_cache(), amaze_demosaic_RT(), autoset(), autoset(), commit_params(), commit_params(), compute_wb_factors(), default_colorspace(), default_input_format(), default_output_format(), default_tiling_callback(), dt_dev_pixelpipe_get_roi_in(), dt_dev_pixelpipe_transform_for_blend(), dt_develop_blend_process(), dt_develop_blend_process_cl(), dt_develop_blendif_lab_blend(), dt_develop_blendif_lab_make_mask(), dt_develop_blendif_raw_blend(), dt_develop_blendif_raw_make_mask(), dt_develop_blendif_rgb_hsl_blend(), dt_develop_blendif_rgb_hsl_make_mask(), dt_develop_blendif_rgb_jzczhz_blend(), dt_develop_blendif_rgb_jzczhz_make_mask(), dt_pixelpipe_get_global_hash(), dual_demosaic(), dual_demosaic_cl(), green_equilibration_cl(), lmmse_demosaic(), pixelpipe_process_on_CPU(), pixelpipe_process_on_GPU(), process(), process(), process(), process(), process_cl(), process_cl(), process_cl(), process_clip(), process_common_cleanup(), process_common_setup(), process_default_cl(), process_display(), process_gray(), process_hsl_v1(), process_hsl_v2(), process_laplacian_bayer(), process_laplacian_bayer_cl(), process_laplacian_xtrans(), process_laplacian_xtrans_cl(), process_lch_bayer(), process_lch_xtrans(), process_markesteijn_cl(), process_rcd_cl(), process_rgb(), process_v1(), process_v3(), process_visualize(), process_vng_cl(), process_wavelets(), rcd_demosaic(), and tiling_callback().

◆ dsc_mask

dt_iop_buffer_dsc_t dt_dev_pixelpipe_iop_t::dsc_mask

◆ dsc_out

◆ enabled

◆ 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

◆ raster_masks

◆ request_histogram

◆ roi_in

◆ roi_out


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