Welcome to mirror list, hosted at ThFree Co, Russian Federation.

filter_cpu.h « cpu « kernels « kernel « cycles « intern - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 1423b182ab869cc79cb1cadcb1b67fcf0dbde52a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/*
 * Copyright 2011-2017 Blender Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* Templated common declaration part of all CPU kernels. */

void KERNEL_FUNCTION_FULL_NAME(filter_divide_shadow)(int sample,
                                                     TileInfo *tile_info,
                                                     int x,
                                                     int y,
                                                     float *unfilteredA,
                                                     float *unfilteredB,
                                                     float *sampleV,
                                                     float *sampleVV,
                                                     float *bufferV,
                                                     int *prefilter_rect,
                                                     int buffer_pass_stride,
                                                     int buffer_denoising_offset);

void KERNEL_FUNCTION_FULL_NAME(filter_get_feature)(int sample,
                                                   TileInfo *tile_info,
                                                   int m_offset,
                                                   int v_offset,
                                                   int x,
                                                   int y,
                                                   float *mean,
                                                   float *variance,
                                                   float scale,
                                                   int *prefilter_rect,
                                                   int buffer_pass_stride,
                                                   int buffer_denoising_offset);

void KERNEL_FUNCTION_FULL_NAME(filter_write_feature)(int sample,
                                                     int x,
                                                     int y,
                                                     int *buffer_params,
                                                     float *from,
                                                     float *buffer,
                                                     int out_offset,
                                                     int *prefilter_rect);

void KERNEL_FUNCTION_FULL_NAME(filter_detect_outliers)(int x,
                                                       int y,
                                                       ccl_global float *image,
                                                       ccl_global float *variance,
                                                       ccl_global float *depth,
                                                       ccl_global float *output,
                                                       int *rect,
                                                       int pass_stride);

void KERNEL_FUNCTION_FULL_NAME(filter_combine_halves)(
    int x, int y, float *mean, float *variance, float *a, float *b, int *prefilter_rect, int r);

void KERNEL_FUNCTION_FULL_NAME(filter_construct_transform)(float *buffer,
                                                           TileInfo *tiles,
                                                           int x,
                                                           int y,
                                                           int storage_ofs,
                                                           float *transform,
                                                           int *rank,
                                                           int *rect,
                                                           int pass_stride,
                                                           int frame_stride,
                                                           bool use_time,
                                                           int radius,
                                                           float pca_threshold);

void KERNEL_FUNCTION_FULL_NAME(filter_nlm_calc_difference)(int dx,
                                                           int dy,
                                                           float *weight_image,
                                                           float *variance_image,
                                                           float *scale_image,
                                                           float *difference_image,
                                                           int *rect,
                                                           int stride,
                                                           int channel_offset,
                                                           int frame_offset,
                                                           float a,
                                                           float k_2);

void KERNEL_FUNCTION_FULL_NAME(filter_nlm_blur)(
    float *difference_image, float *out_image, int *rect, int stride, int f);

void KERNEL_FUNCTION_FULL_NAME(filter_nlm_calc_weight)(
    float *difference_image, float *out_image, int *rect, int stride, int f);

void KERNEL_FUNCTION_FULL_NAME(filter_nlm_update_output)(int dx,
                                                         int dy,
                                                         float *difference_image,
                                                         float *image,
                                                         float *temp_image,
                                                         float *out_image,
                                                         float *accum_image,
                                                         int *rect,
                                                         int channel_offset,
                                                         int stride,
                                                         int f);

void KERNEL_FUNCTION_FULL_NAME(filter_nlm_construct_gramian)(int dx,
                                                             int dy,
                                                             int t,
                                                             float *difference_image,
                                                             float *buffer,
                                                             float *transform,
                                                             int *rank,
                                                             float *XtWX,
                                                             float3 *XtWY,
                                                             int *rect,
                                                             int *filter_window,
                                                             int stride,
                                                             int f,
                                                             int pass_stride,
                                                             int frame_offset,
                                                             bool use_time);

void KERNEL_FUNCTION_FULL_NAME(filter_nlm_normalize)(float *out_image,
                                                     float *accum_image,
                                                     int *rect,
                                                     int stride);

void KERNEL_FUNCTION_FULL_NAME(filter_finalize)(int x,
                                                int y,
                                                int storage_ofs,
                                                float *buffer,
                                                int *rank,
                                                float *XtWX,
                                                float3 *XtWY,
                                                int *buffer_params,
                                                int sample);

#undef KERNEL_ARCH