![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include <pixelpipe_hb.h>
Collaboration diagram for dt_dev_pixelpipe_iop_t: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:
input_format() may overwrite the fields it requires on dsc_in,commit_params() may update value-domain metadata that depends on module parameters, such as processed_maximum or RAW normalization coefficients,output_format() may finally overwrite the output storage contract.After synchronization:
process(), process_cl(), process_tiling(), and blending,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,Mutable lifecycle summary:
commit_params(), input_format(), output_format(), and ROI planning are the only places allowed to author the contract,Definition at line 102 of file pixelpipe_hb.h.
| void* dt_dev_pixelpipe_iop_t::blendop_data |
Definition at line 117 of file pixelpipe_hb.h.
| uint64_t dt_dev_pixelpipe_iop_t::blendop_hash |
Definition at line 128 of file pixelpipe_hb.h.
| int dt_dev_pixelpipe_iop_t::bpc |
Definition at line 153 of file pixelpipe_hb.h.
| dt_iop_roi_t dt_dev_pixelpipe_iop_t::buf_in |
Definition at line 154 of file pixelpipe_hb.h.
| dt_iop_roi_t dt_dev_pixelpipe_iop_t::buf_out |
Definition at line 154 of file pixelpipe_hb.h.
Referenced by _refresh_preview_cursor_sample().
| gboolean dt_dev_pixelpipe_iop_t::bypass_cache |
Definition at line 168 of file pixelpipe_hb.h.
| dt_pixel_cache_entry_t dt_dev_pixelpipe_iop_t::cache_entry |
Definition at line 176 of file pixelpipe_hb.h.
| dt_pixel_cache_entry_t dt_dev_pixelpipe_iop_t::cache_entry_prev |
The cacheline written the run BEFORE cache_entry, offered as a second reuse candidate.
It exists for one case: an output a consumer holds across frames, i.e. the backbuffer. Such an entry is refused by the rekey guard while it is on screen, and with a single hint the producer then had nothing to fall back on and allocated a new cacheline every frame – measured, 122 distinct host buffers over 122 frames, each re-pinning 12.2 MB for OpenCL. Two slots let it alternate: the one from two runs ago has been released by then, so the frame being displayed is republished rather than overwritten and both keep their payload.
It costs nothing for every other module. cache_entry is tried first and, with nothing holding it, succeeds – so this slot is never consulted and no second cacheline is kept alive on its account.
Definition at line 190 of file pixelpipe_hb.h.
| gboolean dt_dev_pixelpipe_iop_t::cache_output_on_ram |
Definition at line 196 of file pixelpipe_hb.h.
| struct dt_iop_module_t* void* dt_dev_pixelpipe_iop_t::data |
Definition at line 105 of file pixelpipe_hb.h.
Referenced by _refresh_pipe_detail_mask_state(), _update_backbuf_cache_reference(), dt_dev_distort_detail_mask(), dt_dev_get_raster_mask(), dt_dev_pixelpipe_get_prev_enabled_piece(), dt_dev_pixelpipe_process(), dt_dev_retrieve_rawdetail_mask(), and dt_iop_color_picker_get_ready_data().
| size_t dt_dev_pixelpipe_iop_t::data_size |
Definition at line 115 of file pixelpipe_hb.h.
| gboolean dt_dev_pixelpipe_iop_t::detail_mask |
Definition at line 119 of file pixelpipe_hb.h.
| dt_iop_buffer_dsc_t dt_dev_pixelpipe_iop_t::dsc_in |
Definition at line 165 of file pixelpipe_hb.h.
Referenced by _refresh_pipe_detail_mask_state().
| dt_iop_buffer_dsc_t dt_dev_pixelpipe_iop_t::dsc_mask |
Definition at line 165 of file pixelpipe_hb.h.
| dt_iop_buffer_dsc_t dt_dev_pixelpipe_iop_t::dsc_out |
Definition at line 165 of file pixelpipe_hb.h.
Referenced by _refresh_global_histogram_backbuf_for_hash(), _refresh_preview_cursor_sample(), _refresh_preview_module_histogram_for_hash(), _sample_picker_from_cache(), pixelpipe_process_on_CPU(), and pixelpipe_process_on_GPU().
| gboolean dt_dev_pixelpipe_iop_t::enabled |
Definition at line 118 of file pixelpipe_hb.h.
Referenced by _dt_dev_raster_mask_check(), _refresh_pipe_detail_mask_state(), dt_dev_distort_detail_mask(), dt_dev_get_raster_mask(), dt_dev_pixelpipe_get_prev_enabled_piece(), and dt_dev_retrieve_rawdetail_mask().
| uint64_t dt_dev_pixelpipe_iop_t::global_hash |
Definition at line 132 of file pixelpipe_hb.h.
Referenced by _refresh_global_histogram_backbuf_for_hash(), _refresh_preview_cursor_sample(), _refresh_preview_histograms(), _refresh_preview_module_histogram_for_hash(), _sample_picker_from_cache(), _track_active_picker_hashes(), dt_dev_get_raster_mask(), dt_dev_pixelpipe_process(), dt_dev_pixelpipe_process_rec(), and dt_iop_color_picker_get_ready_data().
| uint64_t dt_dev_pixelpipe_iop_t::global_mask_hash |
Definition at line 135 of file pixelpipe_hb.h.
| uint64_t dt_dev_pixelpipe_iop_t::hash |
Definition at line 127 of file pixelpipe_hb.h.
| dt_dev_histogram_collection_params_t dt_dev_pixelpipe_iop_t::histogram_params |
Definition at line 122 of file pixelpipe_hb.h.
| int dt_dev_pixelpipe_iop_t::iheight |
Definition at line 124 of file pixelpipe_hb.h.
| int dt_dev_pixelpipe_iop_t::iwidth |
Definition at line 124 of file pixelpipe_hb.h.
| int dt_dev_pixelpipe_iop_t::process_cl_ready |
Definition at line 156 of file pixelpipe_hb.h.
| int dt_dev_pixelpipe_iop_t::process_tiling_ready |
Definition at line 157 of file pixelpipe_hb.h.
Referenced by _refresh_pipe_detail_mask_state().
| dt_dev_request_flags_t dt_dev_pixelpipe_iop_t::request_histogram |
Definition at line 121 of file pixelpipe_hb.h.
| dt_iop_roi_t dt_dev_pixelpipe_iop_t::roi_in |
Definition at line 155 of file pixelpipe_hb.h.
Referenced by _default_process_tiling_cl_ptp(), _default_process_tiling_cl_roi(), _default_process_tiling_ptp(), and _default_process_tiling_roi().
| dt_iop_roi_t dt_dev_pixelpipe_iop_t::roi_out |
Definition at line 155 of file pixelpipe_hb.h.
Referenced by _default_process_tiling_cl_ptp(), _default_process_tiling_cl_roi(), _default_process_tiling_ptp(), _default_process_tiling_roi(), _refresh_global_histogram_backbuf_for_hash(), _refresh_preview_cursor_sample(), _sample_picker_from_cache(), _update_backbuf_cache_reference(), dt_dev_distort_detail_mask(), dt_dev_get_raster_mask(), and dt_dev_retrieve_rawdetail_mask().
| uint64_t dt_dev_pixelpipe_iop_t::upstream_hash |
Definition at line 151 of file pixelpipe_hb.h.