Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
gaussian.c File Reference
#include "system/macros.h"
#include "system/openmp.h"
#include "system/target_clones.h"
#include "system/mem_alloc.h"
#include "system/simd.h"
#include "caches/pixelpipe_cache_alloc.h"
#include <assert.h>
#include <math.h>
#include "pixel/gaussian.h"
#include "common/opencl.h"
+ Include dependency graph for gaussian.c:

Go to the source code of this file.

Macros

#define BLOCKSIZE   (1 << 6)
 

Functions

static __attribute__ ((always_inline))
 
size_t dt_gaussian_memory_use (const int width, const int height, const int channels)
 
size_t dt_gaussian_memory_use_cl (const int width, const int height, const int channels)
 
size_t dt_gaussian_singlebuffer_size (const int width, const int height, const int channels)
 
dt_gaussian_tdt_gaussian_init (const int width, const int height, const int channels, const float *max, const float *min, const float sigma, const int order)
 
__DT_CLONE_TARGETS__ void dt_gaussian_blur (dt_gaussian_t *g, const float *const in, float *const out)
 
void dt_gaussian_blur_4c (dt_gaussian_t *g, const float *const in, float *const out)
 
void dt_gaussian_free (dt_gaussian_t *g)
 
void dt_gaussian_init_cl_global (void)
 
void dt_gaussian_free_cl (dt_gaussian_cl_t *g)
 
dt_gaussian_cl_tdt_gaussian_init_cl (const int devid, const int width, const int height, const int channels, const float *max, const float *min, const float sigma, const int order)
 
cl_int dt_gaussian_blur_cl (dt_gaussian_cl_t *g, cl_mem dev_in, cl_mem dev_out)
 
void dt_gaussian_free_cl_global (void)
 

Variables

static dt_gaussian_cl_global_t_gaussian_cl_global = NULL
 

Macro Definition Documentation

◆ BLOCKSIZE

#define BLOCKSIZE   (1 << 6)

Definition at line 42 of file gaussian.c.

Function Documentation

◆ __attribute__()

static __attribute__ ( (always_inline)  )
inlinestatic

Definition at line 44 of file gaussian.c.

References DT_IOP_GAUSSIAN_ONE, DT_IOP_GAUSSIAN_TWO, DT_IOP_GAUSSIAN_ZERO, k, and sigma.

◆ dt_gaussian_blur()

__DT_CLONE_TARGETS__ void dt_gaussian_blur ( dt_gaussian_t g,
const float *const  in,
float *const  out 
)

◆ dt_gaussian_blur_4c()

void dt_gaussian_blur_4c ( dt_gaussian_t g,
const float *const  in,
float *const  out 
)

◆ dt_gaussian_blur_cl()

◆ dt_gaussian_free()

◆ dt_gaussian_free_cl()

◆ dt_gaussian_free_cl_global()

void dt_gaussian_free_cl_global ( void  )

Definition at line 586 of file gaussian.c.

References _gaussian_cl_global, dt_free, dt_opencl_free_kernel(), g, and IS_NULL_PTR.

Referenced by dt_opencl_cleanup().

◆ dt_gaussian_init()

dt_gaussian_t * dt_gaussian_init ( const int  width,
const int  height,
const int  channels,
const float *  max,
const float *  min,
const float  sigma,
const int  order 
)

◆ dt_gaussian_init_cl()

dt_gaussian_cl_t * dt_gaussian_init_cl ( const int  devid,
const int  width,
const int  height,
const int  channels,
const float *  max,
const float *  min,
const float  sigma,
const int  order 
)

◆ dt_gaussian_init_cl_global()

void dt_gaussian_init_cl_global ( void  )

◆ dt_gaussian_memory_use()

size_t dt_gaussian_memory_use ( const int  width,
const int  height,
const int  channels 
)

Definition at line 97 of file gaussian.c.

References height, and width.

Referenced by tiling_callback().

◆ dt_gaussian_memory_use_cl()

size_t dt_gaussian_memory_use_cl ( const int  width,
const int  height,
const int  channels 
)

Definition at line 105 of file gaussian.c.

References BLOCKSIZE, height, and width.

Referenced by tiling_callback().

◆ dt_gaussian_singlebuffer_size()

size_t dt_gaussian_singlebuffer_size ( const int  width,
const int  height,
const int  channels 
)

Definition at line 113 of file gaussian.c.

References BLOCKSIZE, height, and width.

Referenced by tiling_callback().

Variable Documentation

◆ _gaussian_cl_global

dt_gaussian_cl_global_t* _gaussian_cl_global = NULL
static