![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "common/darktable.h"#include "common/iop_order.h"#include "common/opencl.h"#include "develop/blend.h"#include "develop/pixelpipe_cache.h"#include "develop/pixelpipe_cpu.h"#include "develop/pixelpipe_gpu.h"#include <math.h>#include <stdio.h>
Include dependency graph for pixelpipe_gpu.c:
|
static |
Modules that author their own root input, such as basebuffer, have no upstream cache entry by design. The OpenCL path skips input borrowing for them before reaching process_cl(); the CPU fallback must preserve the same contract and let pixelpipe_process_on_CPU() call process() with a NULL input.
References dt_iop_buffer_dsc_t::bpp, darktable, dt_dev_pixelpipe_iop_t::dsc_in, DT_DEBUG_OPENCL, dt_dev_pixelpipe_cache_gpu_device_buffer(), dt_dev_pixelpipe_cache_release_cl_buffer(), dt_dev_pixelpipe_cache_restore_cl_buffer(), dt_dev_pixelpipe_cache_return_cl_payload(), dt_dev_pixelpipe_cache_wrlock_entry(), dt_pixel_cache_alloc(), dt_print(), FALSE, IOP_FLAGS_TAKE_NO_INPUT, IS_NULL_PTR, darktable_t::pixelpipe_cache, pixelpipe_process_on_CPU(), dt_dev_pixelpipe_iop_t::roi_in, and TRUE.
Referenced by pixelpipe_process_on_GPU().
|
static |
References dt_iop_buffer_dsc_t::bpp, darktable, dt_dev_pixelpipe_t::devid, dt_dev_pixelpipe_iop_t::dsc_in, DT_DEBUG_OPENCL, dt_dev_pixelpipe_cache_sync_cl_buffer(), dt_dev_pixelpipe_cache_wrlock_entry(), dt_pixel_cache_alloc(), dt_print(), FALSE, IS_NULL_PTR, darktable_t::pixelpipe_cache, dt_dev_pixelpipe_iop_t::roi_in, and TRUE.
Referenced by pixelpipe_process_on_GPU().
|
static |
References dt_opencl_is_inited(), and dt_dev_pixelpipe_iop_t::process_cl_ready.
Referenced by pixelpipe_process_on_GPU().
| void dt_dev_pixelpipe_gpu_flush_host_pinned_images | ( | dt_dev_pixelpipe_t * | pipe, |
| void * | host_ptr, | ||
| dt_pixel_cache_entry_t * | cache_entry, | ||
| const char * | reason | ||
| ) |
| int pixelpipe_process_on_GPU | ( | dt_dev_pixelpipe_t * | pipe, |
| const dt_dev_pixelpipe_iop_t * | piece, | ||
| const dt_dev_pixelpipe_iop_t * | previous_piece, | ||
| dt_develop_tiling_t * | tiling, | ||
| dt_pixelpipe_flow_t * | pixelpipe_flow, | ||
| gboolean *const | cache_output, | ||
| dt_pixel_cache_entry_t * | input_entry, | ||
| dt_pixel_cache_entry_t * | output_entry | ||
| ) |
References _gpu_early_cpu_fallback_if_unsupported(), _gpu_init_input(), _is_opencl_supported(), dt_iop_buffer_dsc_t::bpp, dt_iop_buffer_dsc_t::cst, darktable, dt_dev_pixelpipe_t::dev, dt_dev_pixelpipe_t::devid, dt_image_t::dsc, dt_dev_pixelpipe_iop_t::dsc_in, dt_dev_pixelpipe_iop_t::dsc_out, DT_DEBUG_OPENCL, DT_DEBUG_TILING, DT_DEBUG_VERBOSE, DT_DEV_PIXELPIPE_BLEND_TRANSFORM_INPUT, DT_DEV_PIXELPIPE_BLEND_TRANSFORM_NONE, DT_DEV_PIXELPIPE_BLEND_TRANSFORM_OUTPUT, dt_dev_pixelpipe_cache_alloc_cl_device_buffer(), dt_dev_pixelpipe_cache_borrow_cl_payload(), dt_dev_pixelpipe_cache_flush_clmem(), dt_dev_pixelpipe_cache_get_cl_buffer(), dt_dev_pixelpipe_cache_gpu_device_buffer(), dt_dev_pixelpipe_cache_prepare_cl_input(), dt_dev_pixelpipe_cache_rdlock_entry(), dt_dev_pixelpipe_cache_release_cl_buffer(), dt_dev_pixelpipe_cache_return_cl_payload(), dt_dev_pixelpipe_cache_sync_cl_buffer(), dt_dev_pixelpipe_debug_dump_module_io(), DT_DEV_PIXELPIPE_DISPLAY_ANY, DT_DEV_PIXELPIPE_PREVIEW, dt_dev_pixelpipe_transform_for_blend(), dt_develop_blend_colorspace(), dt_develop_blend_process(), dt_develop_blend_process_cl(), dt_iop_colorspace_is_rgb(), dt_ioppr_get_pipe_work_profile_info(), dt_ioppr_transform_image_colorspace(), dt_ioppr_transform_image_colorspace_cl(), dt_opencl_enqueue_copy_image(), dt_opencl_finish(), dt_opencl_get_device_available(), dt_opencl_image_fits_device(), dt_pixel_cache_alloc(), dt_pixel_cache_entry_get_data(), dt_pixelpipe_cache_alloc_align_float, dt_pixelpipe_cache_free_align, dt_print(), error(), FALSE, dt_iop_roi_t::height, dt_develop_t::image_storage, IOP_CS_RAW, IOP_FLAGS_SUPPORTS_BLENDING, IOP_FLAGS_TAKE_NO_INPUT, IS_NULL_PTR, MAX, dt_dev_pixelpipe_t::opencl_enabled, darktable_t::pixelpipe_cache, PIXELPIPE_FLOW_BLENDED_ON_CPU, PIXELPIPE_FLOW_BLENDED_ON_GPU, PIXELPIPE_FLOW_PROCESSED_ON_CPU, PIXELPIPE_FLOW_PROCESSED_ON_GPU, PIXELPIPE_FLOW_PROCESSED_WITH_TILING, pixelpipe_process_on_CPU(), dt_dev_pixelpipe_iop_t::process_tiling_ready, dt_dev_pixelpipe_iop_t::roi_in, dt_dev_pixelpipe_iop_t::roi_out, ROUNDUPDHT, ROUNDUPDWD, TRUE, dt_dev_pixelpipe_t::type, and dt_iop_roi_t::width.
Referenced by dt_dev_pixelpipe_process_rec().