![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "develop/pipeline_notify.h"#include "colorprofiles/profile_types.h"#include "system/capabilities.h"#include "system/sys_resources.h"#include "common/global_mutexes.h"#include "common/hash.h"#include "common/histogram.h"#include "imageio/imageio_core.h"#include "system/atomic.h"#include "common/opencl.h"#include "develop/iop_order.h"#include "control/signal.h"#include "develop/blend.h"#include "develop/dev_pixelpipe.h"#include "develop/dev_history.h"#include "pixel/format.h"#include "develop/imageop_math.h"#include "common/sentry.h"#include "common/telemetry.h"#include "develop/pixelpipe.h"#include "caches/pixelpipe_cache.h"#include "develop/supervisor.h"#include "develop/pixelpipe_cpu.h"#include "develop/pixelpipe_gpu.h"#include "develop/pixelpipe_process.h"#include "develop/tiling.h"#include "develop/masks.h"#include <assert.h>#include <inttypes.h>#include <math.h>#include <stdint.h>#include <stdlib.h>#include <string.h>#include <strings.h>#include <unistd.h>#include "develop/pixelpipe_raster_masks.c"#include "develop/pixelpipe_rawdetail.c"
Include dependency graph for pixelpipe_hb.c:
This graph shows which files directly or indirectly include this file:Go to the source code of this file.
Macros | |
| #define | KILL_SWITCH_ABORT |
| #define | KILL_SWITCH_AND_FLUSH_CACHE |
| #define | KILL_SWITCH_PIPE |
| #define KILL_SWITCH_ABORT |
Definition at line 759 of file pixelpipe_hb.c.
| #define KILL_SWITCH_AND_FLUSH_CACHE |
Definition at line 771 of file pixelpipe_hb.c.
| #define KILL_SWITCH_PIPE |
Definition at line 1317 of file pixelpipe_hb.c.
|
static |
Definition at line 212 of file pixelpipe_hb.c.
References _reset_piece_cache_entry(), _trace_cache_owner(), dt_dev_pixelpipe_cache_auto_destroy_apply(), dt_dev_pixelpipe_cache_flag_auto_destroy(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_release_cl_buffer(), dt_dev_pixelpipe_cache_remove(), FALSE, IS_NULL_PTR, and TRUE.
|
static |
Definition at line 303 of file pixelpipe_hb.c.
References IOP_CS_HSL, IOP_CS_JZCZHZ, IOP_CS_LAB, IOP_CS_LCH, IOP_CS_NONE, IOP_CS_RAW, IOP_CS_RGB, and IOP_CS_RGB_DISPLAY.
Referenced by dt_dev_pixelpipe_debug_dump_module_io().
|
static |
Definition at line 328 of file pixelpipe_hb.c.
References type, TYPE_FLOAT, TYPE_UINT16, TYPE_UINT8, and TYPE_UNKNOWN.
Referenced by dt_dev_pixelpipe_debug_dump_module_io().
|
static |
Definition at line 1456 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_iop_t::enabled, IS_NULL_PTR, and dt_dev_pixelpipe_t::nodes.
Referenced by dt_dev_pixelpipe_process().
|
inlinestatic |
Definition at line 246 of file pixelpipe_hb.c.
References DT_DEV_PIXELPIPE_FULL, DT_DEV_PIXELPIPE_PREVIEW, dt_dev_pixelpipe_t::realtime, and dt_dev_pixelpipe_t::type.
|
static |
Definition at line 812 of file pixelpipe_hb.c.
References dt_iop_buffer_dsc_t::channels, dt_iop_buffer_dsc_t::datatype, DT_DEBUG_NAN, DT_DEBUG_VERBOSE, dt_free, dt_get_debug_flags(), dt_history_item_get_name(), dt_pixelpipe_get_pipe_name(), f, dt_iop_roi_t::height, k, max, min, dt_iop_module_t::op, dt_dev_pixelpipe_t::type, TYPE_FLOAT, and dt_iop_roi_t::width.
Referenced by dt_dev_pixelpipe_process_rec().
|
static |
Definition at line 1335 of file pixelpipe_hb.c.
References DT_DEBUG_OPENCL, dt_pipeline_message(), dt_pixelpipe_get_pipe_name(), dt_print(), error(), and dt_dev_pixelpipe_t::type.
Referenced by dt_dev_pixelpipe_process().
|
static |
Definition at line 778 of file pixelpipe_hb.c.
References dt_free, dt_history_item_get_name(), dt_pixelpipe_get_pipe_name(), DT_REQUEST_ON, dt_show_times_f(), PIXELPIPE_FLOW_BLENDED_ON_CPU, PIXELPIPE_FLOW_BLENDED_ON_GPU, PIXELPIPE_FLOW_HISTOGRAM_NONE, PIXELPIPE_FLOW_HISTOGRAM_ON_CPU, PIXELPIPE_FLOW_HISTOGRAM_ON_GPU, PIXELPIPE_FLOW_PROCESSED_ON_CPU, PIXELPIPE_FLOW_PROCESSED_ON_GPU, PIXELPIPE_FLOW_PROCESSED_WITH_TILING, dt_dev_pixelpipe_iop_t::request_histogram, and dt_dev_pixelpipe_t::type.
Referenced by dt_dev_pixelpipe_process_rec().
|
static |
Definition at line 120 of file pixelpipe_hb.c.
References dt_iop_buffer_dsc_t::channels, dt_iop_buffer_dsc_t::datatype, DT_DEBUG_PIPECACHE, DT_DEBUG_VERBOSE, dt_get_debug_flags(), dt_hash(), dt_pixelpipe_get_pipe_name(), dt_print(), FALSE, dt_iop_roi_t::height, IS_NULL_PTR, k, MAX, MIN, dt_iop_module_t::op, TRUE, dt_dev_pixelpipe_t::type, TYPE_FLOAT, TYPE_UINT8, and dt_iop_roi_t::width.
Referenced by dt_dev_pixelpipe_process_rec().
|
static |
Definition at line 94 of file pixelpipe_hb.c.
References DT_DEBUG_PIPECACHE, DT_DEBUG_VERBOSE, dt_get_debug_flags(), dt_pixelpipe_get_pipe_name(), dt_print(), and dt_dev_pixelpipe_t::type.
Referenced by _abort_module_shutdown_cleanup(), _update_backbuf_cache_reference(), and dt_dev_pixelpipe_process_rec().
|
inlinestatic |
Definition at line 288 of file pixelpipe_hb.c.
References __OMP_FOR_SIMD__, height, k, and width.
|
static |
Definition at line 1353 of file pixelpipe_hb.c.
References _trace_cache_owner(), dt_dev_pixelpipe_t::backbuf, bpp, dt_pixel_cache_entry_t::data, dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_t::devid, DT_DEBUG_ALWAYS, dt_dev_backbuf_get_hash(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_unref_hash(), dt_dev_pixelpipe_get_hash(), dt_dev_pixelpipe_get_history_hash(), dt_dev_set_backbuf(), dt_pixel_cache_entry_get_size(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_pixelpipe_get_pipe_name(), dt_print(), dt_supervisor_active(), dt_supervisor_backbuf(), DT_SV_UPDATE, FALSE, dt_pixel_cache_entry_t::hash, dt_iop_roi_t::height, IS_NULL_PTR, dt_dev_pixelpipe_t::last_devid, dt_dev_pixelpipe_t::nodes, dt_dev_pixelpipe_iop_t::roi_out, TRUE, dt_dev_pixelpipe_t::type, and dt_iop_roi_t::width.
Referenced by dt_dev_pixelpipe_process().
| gboolean dt_dev_pixelpipe_cache_gpu_device_buffer | ( | const dt_dev_pixelpipe_t * | pipe, |
| const dt_pixel_cache_entry_t * | cache_entry | ||
| ) |
Definition at line 255 of file pixelpipe_hb.c.
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_cleanup | ( | dt_dev_pixelpipe_t * | pipe | ) |
Definition at line 541 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_t::backbuf, dt_dev_pixelpipe_t::busy_mutex, dt_atomic_exch_ptr(), DT_COLORSPACE_NONE, dt_dev_backbuf_get_hash(), dt_dev_clear_rawdetail_mask(), dt_dev_free_history_item(), dt_dev_pixelpipe_cache_auto_destroy_apply(), dt_dev_pixelpipe_cache_flag_auto_destroy(), dt_dev_pixelpipe_cache_flush_clmem_for_pipe(), dt_dev_pixelpipe_cache_get_entry(), dt_dev_pixelpipe_cache_unref_hash(), dt_dev_pixelpipe_cleanup_nodes(), dt_dev_pixelpipe_reset_cache_request(), dt_dev_set_backbuf(), dt_free, dt_ioppr_cleanup_profile_info(), dt_masks_form_unref(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_pthread_mutex_destroy(), dt_dev_pixelpipe_t::forms, dt_dev_pixelpipe_t::icc_filename, dt_dev_pixelpipe_t::icc_type, dt_dev_pixelpipe_t::input_profile_info, k, dt_dev_pixelpipe_t::last_devid, dt_dev_pixelpipe_t::last_history_item, dt_dev_pixelpipe_t::no_cache, dt_dev_pixelpipe_t::output_imgid, dt_dev_pixelpipe_t::owned_input_profile_info, dt_dev_pixelpipe_t::raster_mask_hashes, TRUE, UNKNOWN_IMAGE, and void().
Referenced by _engine_free(), dt_dev_cleanup(), dt_dev_snapshot_capture(), dt_focus_draw_clusters(), and dt_imageio_export_with_flags().
| void dt_dev_pixelpipe_cleanup_nodes | ( | dt_dev_pixelpipe_t * | pipe | ) |
Definition at line 647 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_iop_t::blendop_data, dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_iop_t::data_size, dt_dev_pixelpipe_set_history_hash(), dt_free, dt_free_gpointer(), dt_iop_cleanup_pipe(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_supervisor_active(), dt_supervisor_node(), dt_supervisor_node_key(), DT_SV_DELETE, dt_dev_pixelpipe_iop_t::enabled, dt_dev_pixelpipe_t::imgid, dt_dev_pixelpipe_t::iop_order_list, IS_NULL_PTR, dt_dev_pixelpipe_t::nodes, and dt_dev_pixelpipe_t::type.
Referenced by _studio_dev_teardown(), dt_dev_pixelpipe_change(), dt_dev_pixelpipe_cleanup(), and leave().
| void dt_dev_pixelpipe_create_nodes | ( | dt_dev_pixelpipe_t * | pipe | ) |
Definition at line 686 of file pixelpipe_hb.c.
References _reset_piece_cache_entry(), dt_dev_pixelpipe_t::dev, dt_iop_buffer_dsc_update_bpp(), dt_iop_init_pipe(), dt_ioppr_iop_order_copy_deep(), DT_PIXELPIPE_CACHE_HASH_INVALID, DT_REQUEST_ONLY_IN_GUI, dt_supervisor_active(), dt_supervisor_node(), dt_supervisor_node_key(), DT_SV_CREATE, dt_dev_pixelpipe_iop_t::enabled, dt_dev_pixelpipe_t::iheight, dt_dev_pixelpipe_t::imgid, dt_develop_t::iop, dt_develop_t::iop_order_list, dt_dev_pixelpipe_t::iop_order_list, IS_NULL_PTR, dt_dev_pixelpipe_t::iwidth, dt_iop_module_t::multi_priority, dt_dev_pixelpipe_t::nodes, dt_iop_module_t::op, TRUE, dt_dev_pixelpipe_t::type, and TYPE_FLOAT.
Referenced by dt_dev_pixelpipe_change(), dt_dev_snapshot_capture(), dt_focus_draw_clusters(), and dt_imageio_export_with_flags().
| void dt_dev_pixelpipe_debug_dump_module_io | ( | dt_dev_pixelpipe_t * | pipe, |
| dt_iop_module_t * | module, | ||
| const char * | stage, | ||
| const 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, | ||
| const size_t | in_bpp, | ||
| const size_t | out_bpp, | ||
| const int | cst_before, | ||
| const int | cst_after | ||
| ) |
Definition at line 344 of file pixelpipe_hb.c.
References _debug_cst_to_string(), _debug_type_to_string(), dt_iop_buffer_dsc_t::channels, dt_iop_buffer_dsc_t::cst, dt_iop_buffer_dsc_t::datatype, DT_DEBUG_PIPE, DT_DEBUG_VERBOSE, dt_get_debug_flags(), dt_pixelpipe_get_pipe_name(), dt_print(), dt_iop_roi_t::height, IS_NULL_PTR, dt_dev_pixelpipe_t::type, and dt_iop_roi_t::width.
Referenced by pixelpipe_process_on_CPU(), and pixelpipe_process_on_GPU().
| void dt_dev_pixelpipe_disable_after | ( | dt_dev_pixelpipe_t * | pipe, |
| const char * | op | ||
| ) |
Definition at line 1289 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_iop_t::enabled, and dt_dev_pixelpipe_t::nodes.
Referenced by _filter_pipeline().
| void dt_dev_pixelpipe_disable_before | ( | dt_dev_pixelpipe_t * | pipe, |
| const char * | op | ||
| ) |
Definition at line 1303 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_iop_t::enabled, and dt_dev_pixelpipe_t::nodes.
Referenced by _filter_pipeline().
| gboolean dt_dev_pixelpipe_get_realtime | ( | const dt_dev_pixelpipe_t * | pipe | ) |
Definition at line 499 of file pixelpipe_hb.c.
References dt_atomic_get_int(), FALSE, and dt_dev_pixelpipe_t::realtime.
Referenced by _module_requires_global_histogram_input_cache(), _module_requires_global_histogram_output_cache(), _peek_gui(), _sample_picker_from_cache(), _seal_opencl_cache_policy(), _sync_focused_in_place(), commit_params(), dt_dev_darkroom_pipeline(), dt_drawlayer_set_pipeline_realtime_mode(), and process_cl().
| gboolean dt_dev_pixelpipe_has_reentry | ( | dt_dev_pixelpipe_t * | pipe | ) |
Definition at line 635 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_t::reentry.
Referenced by dt_dev_darkroom_pipeline(), and dt_dev_pixelpipe_process().
| int dt_dev_pixelpipe_init | ( | dt_dev_pixelpipe_t * | pipe, |
| dt_develop_t * | dev | ||
| ) |
Definition at line 439 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_t::dev, DT_DEV_PIXELPIPE_FULL, dt_dev_pixelpipe_init_cached(), res, dt_dev_pixelpipe_t::store_all_raster_masks, TRUE, and dt_dev_pixelpipe_t::type.
Referenced by dt_dev_init(), and dt_dev_snapshot_capture().
| int dt_dev_pixelpipe_init_cached | ( | dt_dev_pixelpipe_t * | pipe | ) |
Definition at line 450 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_t::backbuf, dt_dev_pixelpipe_t::busy_mutex, dt_dev_pixelpipe_t::devid, dt_atomic_set_int(), DT_COLORSPACE_NONE, DT_DEV_PIPE_UNCHANGED, dt_dev_pixelpipe_reset_cache_request(), dt_dev_pixelpipe_reset_reentry(), dt_dev_pixelpipe_set_changed(), dt_dev_pixelpipe_set_hash(), dt_dev_pixelpipe_set_history_hash(), dt_dev_roi_request_neutral(), dt_dev_set_backbuf(), DT_INTENT_LAST, DT_PIXELPIPE_CACHE_HASH_INVALID, dt_pthread_mutex_init(), FALSE, dt_dev_pixelpipe_t::icc_intent, dt_dev_pixelpipe_t::icc_type, IMAGEIO_INT8, IMAGEIO_RGB, dt_dev_pixelpipe_t::iscale, dt_dev_pixelpipe_t::last_devid, dt_dev_pixelpipe_t::last_history_hash, dt_dev_pixelpipe_t::levels, dt_dev_pixelpipe_t::mask_rasterization_step, dt_dev_pixelpipe_t::output_imgid, dt_dev_pixelpipe_t::raster_mask_hashes, dt_dev_pixelpipe_t::rawdetail_mask_hash, dt_dev_pixelpipe_t::realtime, dt_dev_pixelpipe_t::roi_request, dt_dev_pixelpipe_t::shutdown, UNKNOWN_IMAGE, and dt_dev_roi_request_store_t::value.
Referenced by dt_dev_pixelpipe_init(), dt_dev_pixelpipe_init_dummy(), dt_dev_pixelpipe_init_export(), dt_dev_pixelpipe_init_preview(), and dt_dev_pixelpipe_init_thumbnail().
| int dt_dev_pixelpipe_init_dummy | ( | dt_dev_pixelpipe_t * | pipe, |
| dt_develop_t * | dev | ||
| ) |
Definition at line 400 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_t::dev, dt_dev_pixelpipe_init_cached(), DT_DEV_PIXELPIPE_THUMBNAIL, dt_dev_pixelpipe_t::no_cache, res, TRUE, and dt_dev_pixelpipe_t::type.
Referenced by dt_focus_draw_clusters().
| int dt_dev_pixelpipe_init_export | ( | dt_dev_pixelpipe_t * | pipe, |
| dt_develop_t * | dev, | ||
| int | levels, | ||
| gboolean | store_masks | ||
| ) |
Definition at line 380 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_t::dev, DT_DEV_PIXELPIPE_EXPORT, dt_dev_pixelpipe_init_cached(), FALSE, dt_dev_pixelpipe_t::gui_observable_source, dt_dev_pixelpipe_t::levels, levels(), res, dt_dev_pixelpipe_t::store_all_raster_masks, and dt_dev_pixelpipe_t::type.
Referenced by dt_imageio_export_with_flags().
| int dt_dev_pixelpipe_init_preview | ( | dt_dev_pixelpipe_t * | pipe, |
| dt_develop_t * | dev | ||
| ) |
Definition at line 409 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_t::dev, dt_dev_pixelpipe_init_cached(), DT_DEV_PIXELPIPE_PREVIEW, dt_dev_pixelpipe_t::gui_observable_source, res, dt_dev_pixelpipe_t::store_all_raster_masks, TRUE, and dt_dev_pixelpipe_t::type.
Referenced by dt_dev_init().
| int dt_dev_pixelpipe_init_thumbnail | ( | dt_dev_pixelpipe_t * | pipe, |
| dt_develop_t * | dev | ||
| ) |
Definition at line 391 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_t::dev, dt_dev_pixelpipe_init_cached(), DT_DEV_PIXELPIPE_THUMBNAIL, dt_dev_pixelpipe_t::no_cache, res, TRUE, and dt_dev_pixelpipe_t::type.
Referenced by dt_imageio_export_with_flags().
| int dt_dev_pixelpipe_process | ( | dt_dev_pixelpipe_t * | pipe, |
| dt_iop_roi_t | roi | ||
| ) |
We loop over enabled providers and the mask ids they advertise, looking for dedicated cachelines required by this graph. Acquire the new references before releasing the previous set so an unchanged mask never becomes briefly evictable between consecutive renders.
Invalidate immediately before the raster reconstruction pass, while no other pixelpipe can republish one of these shared hashes. Invalidating when the first pass failed is too early: the preview pipe may run before this retry and recreate the provider image while the dedicated mask cacheline remains absent.
We are looking for the provider output captured in reentry_hash, then collect every enabled cumulative output after it. This forces recursion through the provider while preserving all upstream cache lines.
Definition at line 1475 of file pixelpipe_hb.c.
References _bypass_cache(), _get_requested_piece_node(), _print_opencl_errors(), _update_backbuf_cache_reference(), dt_develop_t::color_picker, dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_t::dev, dt_dev_pixelpipe_t::devid, dt_control_signal_get_global(), DT_DEBUG_CONTROL_SIGNAL_RAISE, DT_DEBUG_DEV, DT_DEBUG_MEMORY, DT_DEBUG_OPENCL, dt_dev_pixelpipe_cache_invalidate_hashes(), dt_dev_pixelpipe_cache_peek(), dt_dev_pixelpipe_cache_print(), dt_dev_pixelpipe_cache_ref_entry_by_hash(), DT_DEV_PIXELPIPE_CACHE_REQUEST_MODULE, DT_DEV_PIXELPIPE_CACHE_REQUEST_NONE, dt_dev_pixelpipe_cache_unref_hash(), DT_DEV_PIXELPIPE_DISPLAY_NONE, DT_DEV_PIXELPIPE_EXPORT, DT_DEV_PIXELPIPE_FULL, dt_dev_pixelpipe_get_cache_request(), dt_dev_pixelpipe_get_cache_request_module(), dt_dev_pixelpipe_get_hash(), dt_dev_pixelpipe_get_history_hash(), dt_dev_pixelpipe_get_roi_in(), dt_dev_pixelpipe_has_reentry(), dt_dev_pixelpipe_has_shutdown(), DT_DEV_PIXELPIPE_PREVIEW, dt_dev_pixelpipe_process_rec(), dt_dev_pixelpipe_raster_mask_hash(), dt_dev_pixelpipe_reset_cache_request(), DT_DEV_PIXELPIPE_THUMBNAIL, dt_free, dt_get_debug_flags(), dt_get_times(), dt_iop_is_raster_mask_used(), dt_masks_form_unref(), dt_masks_snapshot_current_forms(), dt_opencl_check_tuning(), dt_opencl_events_flush(), dt_opencl_events_reset(), dt_opencl_release_device(), dt_opencl_report_pipe_error(), dt_opencl_reserve_device_for_pipe(), dt_opencl_update_settings(), dt_pipeline_threadsafe_mutex(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_pixelpipe_get_global_hash(), dt_pixelpipe_get_pipe_name(), dt_print(), dt_print_mem_usage(), dt_pthread_mutex_lock(), dt_pthread_mutex_unlock(), dt_sentry_set_processed_image(), dt_show_times(), DT_SIGNAL_CACHELINE_READY, dt_supervisor_node_key(), dt_telemetry_record_file_type(), dt_dev_pixelpipe_iop_t::enabled, FALSE, dt_dev_pixelpipe_t::flush_cache, dt_dev_pixelpipe_t::forms, dt_dev_pixelpipe_iop_t::global_hash, dt_develop_t::gui_attached, dt_iop_roi_t::height, dt_develop_t::image_storage, dt_develop_t::iop, IS_NULL_PTR, k, KILL_SWITCH_PIPE, dt_dev_pixelpipe_t::last_devid, dt_dev_pixelpipe_t::mask_display, mask_id, mask_name, dt_dev_pixelpipe_t::nodes, dt_iop_module_t::op, dt_dev_pixelpipe_t::opencl_enabled, dt_dev_pixelpipe_t::opencl_error, dt_develop_t::pending_module, dt_develop_t::pending_pipe, dt_develop_t::piece_hash, dt_dev_pixelpipe_t::raster_mask_hashes, dt_dev_pixelpipe_t::reentry_hash, dt_dev_pixelpipe_t::store_all_raster_masks, TRUE, dt_dev_pixelpipe_t::type, void(), and dt_iop_roi_t::width.
Referenced by _process_at_roi(), dt_dev_darkroom_pipeline(), and dt_imageio_export_with_flags().
|
static |
Definition at line 886 of file pixelpipe_hb.c.
References _bypass_cache(), _print_nan_debug(), _print_perf_debug(), _reset_piece_cache_entry(), _trace_buffer_content(), _trace_cache_owner(), dt_develop_t::completed, dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_t::dev, DEVELOP_MASK_DISABLED, dt_dev_pixelpipe_t::devid, DT_DEBUG_DEV, DT_DEBUG_NAN, DT_DEBUG_NOCACHE_REUSE, dt_dev_pixelpipe_cache_auto_destroy_apply(), dt_dev_pixelpipe_cache_flag_auto_destroy(), dt_dev_pixelpipe_cache_flush_entry_clmem(), dt_dev_pixelpipe_cache_get_entry(), dt_dev_pixelpipe_cache_get_writable(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_ref_count_entry(), dt_dev_pixelpipe_cache_ref_entry_by_hash(), dt_dev_pixelpipe_cache_remove(), dt_dev_pixelpipe_cache_restore_host_payload(), DT_DEV_PIXELPIPE_CACHE_WRITABLE_CREATED, DT_DEV_PIXELPIPE_CACHE_WRITABLE_EXACT_HIT, DT_DEV_PIXELPIPE_CACHE_WRITABLE_REKEYED, dt_dev_pixelpipe_cache_wrlock_entry(), DT_DEV_PIXELPIPE_DISPLAY_NONE, dt_dev_pixelpipe_get_hash(), dt_dev_pixelpipe_gpu_flush_host_pinned_images(), dt_dev_pixelpipe_node_hash(), dt_dev_pixelpipe_process_rec(), dt_free, dt_get_debug_flags(), dt_get_times(), dt_history_item_get_name(), dt_pipeline_busy_clear(), dt_pipeline_busy_printf(), dt_pixel_cache_entry_get_data(), dt_pixel_cache_entry_get_size(), DT_PIXELPIPE_CACHE_HASH_INVALID, dt_pixelpipe_cache_set_current_module(), dt_pixelpipe_get_pipe_name(), dt_print(), dt_supervisor_active(), dt_supervisor_cacheline_create(), dt_supervisor_node_key(), error(), dt_develop_tiling_t::factor, FALSE, dt_dev_pixelpipe_iop_t::global_hash, dt_develop_t::gui_attached, dt_dev_pixelpipe_t::imgid, IOP_FLAGS_CPU_WRITES_OPENCL, IOP_FLAGS_TAKE_NO_INPUT, IOP_TAG_DISTORT, IS_NULL_PTR, KILL_SWITCH_ABORT, KILL_SWITCH_AND_FLUSH_CACHE, dt_dev_pixelpipe_t::mask_display, dt_develop_tiling_t::maxbuf, name, dt_develop_tiling_t::overhead, PIXELPIPE_FLOW_HISTOGRAM_NONE, PIXELPIPE_FLOW_NONE, PIXELPIPE_FLOW_PROCESSED_ON_CPU, PIXELPIPE_FLOW_PROCESSED_WITH_TILING, pixelpipe_process_on_CPU(), pixelpipe_process_on_GPU(), dt_pixel_cache_entry_t::producer_node_key, dt_develop_t::progress, tiling_callback_blendop(), dt_develop_t::total, TRUE, dt_dev_pixelpipe_t::type, and type.
Referenced by dt_dev_pixelpipe_process(), and dt_dev_pixelpipe_process_rec().
| void dt_dev_pixelpipe_reset_reentry | ( | dt_dev_pixelpipe_t * | pipe | ) |
Definition at line 640 of file pixelpipe_hb.c.
References DT_PIXELPIPE_CACHE_HASH_INVALID, FALSE, dt_dev_pixelpipe_t::flush_cache, dt_dev_pixelpipe_t::reentry, and dt_dev_pixelpipe_t::reentry_hash.
Referenced by dt_dev_darkroom_pipeline(), and dt_dev_pixelpipe_init_cached().
| void dt_dev_pixelpipe_set_icc | ( | dt_dev_pixelpipe_t * | pipe, |
| dt_colorspaces_color_profile_type_t | icc_type, | ||
| const gchar * | icc_filename, | ||
| dt_iop_color_intent_t | icc_intent | ||
| ) |
Definition at line 532 of file pixelpipe_hb.c.
References dt_free, dt_dev_pixelpipe_t::icc_filename, dt_dev_pixelpipe_t::icc_intent, and dt_dev_pixelpipe_t::icc_type.
Referenced by dt_dev_snapshot_capture(), and dt_imageio_export_with_flags().
| void dt_dev_pixelpipe_set_input | ( | dt_dev_pixelpipe_t * | pipe, |
| int32_t | imgid, | ||
| int | width, | ||
| int | height, | ||
| float | iscale, | ||
| dt_mipmap_size_t | size | ||
| ) |
Definition at line 504 of file pixelpipe_hb.c.
References dt_dev_pixelpipe_iop_t::data, dt_dev_pixelpipe_t::dev, height, dt_dev_pixelpipe_iop_t::iheight, dt_dev_pixelpipe_t::iheight, dt_develop_t::image_storage, dt_dev_pixelpipe_t::imgid, IS_NULL_PTR, iscale, dt_dev_pixelpipe_t::iscale, dt_dev_pixelpipe_iop_t::iwidth, dt_dev_pixelpipe_t::iwidth, dt_dev_pixelpipe_t::nodes, size, dt_dev_pixelpipe_t::size, and width.
Referenced by _process_at_roi(), dt_dev_darkroom_pipeline(), dt_dev_snapshot_capture(), dt_focus_draw_clusters(), and dt_imageio_export_with_flags().
| void dt_dev_pixelpipe_set_mask_rasterization_step | ( | dt_dev_pixelpipe_t * | pipe, |
| const int | step | ||
| ) |
Set the drawn-mask rasterisation step for the frame this pipe is about to run.
Set the drawn-mask rasterisation step for the next frame, in image pixels (clamped to >= 1).
| step | Maximum distance, in image pixels, between consecutive samples of a mask outline. Clamped to at least 1 (pixel accuracy). |
Called by the darkroom, which is the only place that knows both the zoom level and the user's preference. Nothing else raises it, so a pipe that is never told – every headless export, thumbnail and snapshot – keeps the pixel-accurate default it was initialised with.
Definition at line 432 of file pixelpipe_hb.c.
References IS_NULL_PTR, dt_dev_pixelpipe_t::mask_rasterization_step, and MAX.
Referenced by dt_dev_roi_request_publish().
| void dt_dev_pixelpipe_set_realtime | ( | dt_dev_pixelpipe_t * | pipe, |
| gboolean | state | ||
| ) |
Definition at line 493 of file pixelpipe_hb.c.
References dt_atomic_set_int(), FALSE, IS_NULL_PTR, dt_dev_pixelpipe_t::realtime, state, and TRUE.
Referenced by dt_dev_pixelpipe_change_zoom_main(), dt_dev_pixelpipe_update_zoom_main_real(), and dt_drawlayer_set_pipeline_realtime_mode().
| gboolean dt_dev_pixelpipe_set_reentry | ( | dt_dev_pixelpipe_t * | pipe, |
| uint64_t | hash | ||
| ) |
Set the re-entry pipeline flag, only if no object is already capturing it.
Re-entered pipelines bypass normal exact hits for one processing pass. Raster-mask consumers use this after the dedicated side-band cacheline was evicted while the provider image remained cached: provider and downstream image states are invalidated immediately before the retry, while upstream states and the synchronized node graph remain intact.
It can be used for any case where a full pipeline recompute is needed once, based on runtime module requirements, but a full cache flush would be overkill.
NOTE: in main darkroom pipe, the coordinates of the ROI can change between runs from the same thread.
| pipe | |
| hash | Unique ID of the object attempting capture the re-entry flag. This should stay constant between 2 pipeline runs from the same thread. |
Definition at line 608 of file pixelpipe_hb.c.
References DT_DEBUG_DEV, DT_PIXELPIPE_CACHE_HASH_INVALID, dt_print(), FALSE, dt_dev_pixelpipe_t::reentry, dt_dev_pixelpipe_t::reentry_hash, and TRUE.
Referenced by dt_dev_get_raster_mask().
| dt_pixelpipe_blend_transform_t dt_dev_pixelpipe_transform_for_blend | ( | const dt_iop_module_t *const | self, |
| const dt_dev_pixelpipe_iop_t *const | piece, | ||
| const dt_iop_buffer_dsc_t *const | output_dsc | ||
| ) |
Definition at line 738 of file pixelpipe_hb.c.
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().
| gboolean dt_dev_pixelpipe_unset_reentry | ( | dt_dev_pixelpipe_t * | pipe, |
| uint64_t | hash | ||
| ) |
Remove the re-entry pipeline flag, only if the object identifier is the one that set it. See dt_dev_pixelpipe_set_reentry.
| pipe | |
| hash | Unique ID of the object attempting capture the re-entry flag. This should stay constant between 2 pipeline runs from the same thread. |
Definition at line 622 of file pixelpipe_hb.c.
References DT_DEBUG_DEV, DT_PIXELPIPE_CACHE_HASH_INVALID, dt_print(), FALSE, dt_dev_pixelpipe_t::reentry, dt_dev_pixelpipe_t::reentry_hash, and TRUE.
Referenced by dt_dev_get_raster_mask().
| char * dt_pixelpipe_get_pipe_name | ( | dt_dev_pixelpipe_type_t | pipe_type | ) |
Definition at line 263 of file pixelpipe_hb.c.
References DT_DEV_PIXELPIPE_EXPORT, DT_DEV_PIXELPIPE_FULL, DT_DEV_PIXELPIPE_PREVIEW, DT_DEV_PIXELPIPE_THUMBNAIL, and r.
Referenced by _envelope(), _get_debug_pipe_name(), _peek_gui(), _print_nan_debug(), _print_opencl_errors(), _print_perf_debug(), _trace_buffer_content(), _trace_cache_owner(), _update_backbuf_cache_reference(), dt_dev_darkroom_pipeline(), dt_dev_get_raster_mask(), dt_dev_pixelpipe_debug_dump_module_io(), dt_dev_pixelpipe_process(), dt_dev_pixelpipe_process_rec(), dt_iop_commit_params(), and dt_supervisor_describe().