Blender  V2.93
Macros | Functions
filter_features_sse.h File Reference

Go to the source code of this file.

Macros

#define ccl_get_feature_sse(pass)   load_float4(buffer + (pass)*pass_stride)
 
#define FOR_PIXEL_WINDOW_SSE
 
#define END_FOR_PIXEL_WINDOW_SSE
 

Functions

ccl_device_inline void filter_get_features_sse (float4 x, float4 y, float4 t, int4 active_pixels, const float *ccl_restrict buffer, float4 *features, bool use_time, const float4 *ccl_restrict mean, int pass_stride)
 
ccl_device_inline void filter_get_feature_scales_sse (float4 x, float4 y, float4 t, int4 active_pixels, const float *ccl_restrict buffer, float4 *scales, bool use_time, const float4 *ccl_restrict mean, int pass_stride)
 
ccl_device_inline void filter_calculate_scale_sse (float4 *scale, bool use_time)
 

Macro Definition Documentation

◆ ccl_get_feature_sse

#define ccl_get_feature_sse (   pass)    load_float4(buffer + (pass)*pass_stride)

Definition at line 19 of file filter_features_sse.h.

◆ END_FOR_PIXEL_WINDOW_SSE

#define END_FOR_PIXEL_WINDOW_SSE
Value:
} \
pixel_buffer += buffer_w - (high.x - low.x); \
} \
}
__forceinline ssef low(const avxf &a)
Definition: util_avxf.h:277
__forceinline ssef high(const avxf &a)
Definition: util_avxf.h:281

Definition at line 37 of file filter_features_sse.h.

◆ FOR_PIXEL_WINDOW_SSE

#define FOR_PIXEL_WINDOW_SSE
Value:
for (int frame = 0; frame < tile_info->num_frames; frame++) { \
pixel.z = tile_info->frames[frame]; \
pixel_buffer = buffer + (low.y - rect.y) * buffer_w + (low.x - rect.x) + \
frame * frame_stride; \
float4 t4 = make_float4(pixel.z); \
for (pixel.y = low.y; pixel.y < high.y; pixel.y++) { \
float4 y4 = make_float4(pixel.y); \
for (pixel.x = low.x; pixel.x < high.x; pixel.x += 4, pixel_buffer += 4) { \
float4 x4 = make_float4(pixel.x) + make_float4(0.0f, 1.0f, 2.0f, 3.0f); \
int4 active_pixels = x4 < make_float4(high.x);
#define make_float4(x, y, z, w)
__kernel void ccl_constant KernelData ccl_global void ccl_global char ccl_global int ccl_global char ccl_global unsigned int ccl_global float * buffer

Definition at line 25 of file filter_features_sse.h.

Function Documentation

◆ filter_calculate_scale_sse()

ccl_device_inline void filter_calculate_scale_sse ( float4 *  scale,
bool  use_time 
)

Definition at line 105 of file filter_features_sse.h.

References make_float4, max, rcp, reduce_max(), and sqrt().

Referenced by kernel_filter_construct_transform().

◆ filter_get_feature_scales_sse()

ccl_device_inline void filter_get_feature_scales_sse ( float4  x,
float4  y,
float4  t,
int4  active_pixels,
const float *ccl_restrict  buffer,
float4 *  scales,
bool  use_time,
const float4 *ccl_restrict  mean,
int  pass_stride 
)

Definition at line 79 of file filter_features_sse.h.

References ccl_get_feature_sse, fabs(), mask(), sqr(), t, x, and y.

Referenced by kernel_filter_construct_transform().

◆ filter_get_features_sse()

ccl_device_inline void filter_get_features_sse ( float4  x,
float4  y,
float4  t,
int4  active_pixels,
const float *ccl_restrict  buffer,
float4 *  features,
bool  use_time,
const float4 *ccl_restrict  mean,
int  pass_stride 
)

Definition at line 43 of file filter_features_sse.h.

References ccl_get_feature_sse, fabs(), mask(), t, x, and y.

Referenced by kernel_filter_construct_transform().