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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/kernel/filter/filter_defines.h')
-rw-r--r--intern/cycles/kernel/filter/filter_defines.h37
1 files changed, 35 insertions, 2 deletions
diff --git a/intern/cycles/kernel/filter/filter_defines.h b/intern/cycles/kernel/filter/filter_defines.h
index ce96f733aff..1a2f22a6987 100644
--- a/intern/cycles/kernel/filter/filter_defines.h
+++ b/intern/cycles/kernel/filter/filter_defines.h
@@ -22,7 +22,7 @@
#define XTWX_SIZE (((DENOISE_FEATURES+1)*(DENOISE_FEATURES+2))/2)
#define XTWY_SIZE (DENOISE_FEATURES+1)
-typedef struct TilesInfo {
+typedef struct TileInfo {
int offsets[9];
int strides[9];
int x[4];
@@ -33,6 +33,39 @@ typedef struct TilesInfo {
#else
long long int buffers[9];
#endif
-} TilesInfo;
+} TileInfo;
+
+#ifdef __KERNEL_OPENCL__
+# define CCL_FILTER_TILE_INFO ccl_global TileInfo* tile_info, \
+ ccl_global float *tile_buffer_1, \
+ ccl_global float *tile_buffer_2, \
+ ccl_global float *tile_buffer_3, \
+ ccl_global float *tile_buffer_4, \
+ ccl_global float *tile_buffer_5, \
+ ccl_global float *tile_buffer_6, \
+ ccl_global float *tile_buffer_7, \
+ ccl_global float *tile_buffer_8, \
+ ccl_global float *tile_buffer_9
+# define CCL_FILTER_TILE_INFO_ARG tile_info, \
+ tile_buffer_1, tile_buffer_2, tile_buffer_3, \
+ tile_buffer_4, tile_buffer_5, tile_buffer_6, \
+ tile_buffer_7, tile_buffer_8, tile_buffer_9
+# define ccl_get_tile_buffer(id) (id == 0 ? tile_buffer_1 \
+ : id == 1 ? tile_buffer_2 \
+ : id == 2 ? tile_buffer_3 \
+ : id == 3 ? tile_buffer_4 \
+ : id == 4 ? tile_buffer_5 \
+ : id == 5 ? tile_buffer_6 \
+ : id == 6 ? tile_buffer_7 \
+ : id == 7 ? tile_buffer_8 \
+ : tile_buffer_9)
+#else
+# ifdef __KERNEL_CUDA__
+# define CCL_FILTER_TILE_INFO ccl_global TileInfo* tile_info
+# else
+# define CCL_FILTER_TILE_INFO TileInfo* tile_info
+# endif
+# define ccl_get_tile_buffer(id) (tile_info->buffers[id])
+#endif
#endif /* __FILTER_DEFINES_H__*/