summarylogtreecommitdiffstats
path: root/0005_cycles.patch
blob: 483f1c4c42a27626749645e4bc593d9c2b9f14b0 (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
144
145
146
147
148
149
150
151
152
153
154
155
commit c4818aa2fc716446ff3a109b18e63ff4ef79ff4c
Author: CYBERDEViL <cyberdevil@notabug.org>
Date:   Sat Dec 16 17:21:32 2023 +0100

    cycles: "Cycles: Cleanup, silence strict compiler warning"
    
    Partially applied Blender upstream ref: b763c34e80d3b20f9a7f0a592e479e5fa7ab295f

commit c9f8cf23a076854f5dddae5f72a8182be2468118
Author: CYBERDEViL <cyberdevil@notabug.org>
Date:   Sat Dec 16 17:07:44 2023 +0100

    cycles: "Fix Cycles build error with OSL 1.12"
    
    Fully applied Blender upstream ref: 340529a8453ca9c2715c545245379e442f6006c8

commit e47121b7cbfdbde9c9eb39b5e1bcf1c54a5e3a29
Author: CYBERDEViL <cyberdevil@notabug.org>
Date:   Sat Dec 16 17:05:53 2023 +0100

    cycles: "Cycles: Fix bad register cast in sseb"
    
    Fully applied Blender upstream ref: be587d76efff6610f3b6d65cf42f1ee31ec3bdee

diff --git a/blender-2.79b/intern/cycles/blender/blender_camera.cpp b/blender-2.79b/intern/cycles/blender/blender_camera.cpp
index b29711d..0c4a48f 100644
--- a/blender-2.79b/intern/cycles/blender/blender_camera.cpp
+++ b/blender-2.79b/intern/cycles/blender/blender_camera.cpp
@@ -86,7 +86,7 @@ struct BlenderCamera {
 static void blender_camera_init(BlenderCamera *bcam,
                                 BL::RenderSettings& b_render)
 {
-	memset(bcam, 0, sizeof(BlenderCamera));
+	memset((void *)bcam, 0, sizeof(BlenderCamera));
 
 	bcam->type = CAMERA_PERSPECTIVE;
 	bcam->zoom = 1.0f;
diff --git a/blender-2.79b/intern/cycles/blender/blender_util.h b/blender-2.79b/intern/cycles/blender/blender_util.h
index 363e19f..f697156 100644
--- a/blender-2.79b/intern/cycles/blender/blender_util.h
+++ b/blender-2.79b/intern/cycles/blender/blender_util.h
@@ -251,7 +251,7 @@ static inline Transform get_transform(const BL::Array<float, 16>& array)
 
 	/* we assume both types to be just 16 floats, and transpose because blender
 	 * use column major matrix order while we use row major */
-	memcpy(&tfm, &array, sizeof(float)*16);
+	memcpy((void *)&tfm, &array, sizeof(float)*16);
 	tfm = transform_transpose(tfm);
 
 	return tfm;
diff --git a/blender-2.79b/intern/cycles/bvh/bvh_params.h b/blender-2.79b/intern/cycles/bvh/bvh_params.h
index 7dd699b..75bf5ab 100644
--- a/blender-2.79b/intern/cycles/bvh/bvh_params.h
+++ b/blender-2.79b/intern/cycles/bvh/bvh_params.h
@@ -156,7 +156,10 @@ public:
 
 	BVHReference& operator=(const BVHReference &arg) {
 		if(&arg != this) {
-			memcpy(this, &arg, sizeof(BVHReference));
+			/* TODO(sergey): Check if it is still faster to memcpy() with
+			 * modern compilers.
+			 */
+			memcpy((void *)this, &arg, sizeof(BVHReference));
 		}
 		return *this;
 	}
diff --git a/blender-2.79b/intern/cycles/kernel/closure/alloc.h b/blender-2.79b/intern/cycles/kernel/closure/alloc.h
index e799855..ff1de14 100644
--- a/blender-2.79b/intern/cycles/kernel/closure/alloc.h
+++ b/blender-2.79b/intern/cycles/kernel/closure/alloc.h
@@ -78,7 +78,7 @@ ccl_device_inline ShaderClosure *bsdf_alloc_osl(ShaderData *sd, int size, float3
 	if(!sc)
 		return NULL;
 
-	memcpy(sc, data, size);
+	memcpy((void *)sc, data, size);
 
 	float sample_weight = fabsf(average(weight));
 	sc->weight = weight;
diff --git a/blender-2.79b/intern/cycles/kernel/osl/osl_services.h b/blender-2.79b/intern/cycles/kernel/osl/osl_services.h
index ec34ca7..29055ea 100644
--- a/blender-2.79b/intern/cycles/kernel/osl/osl_services.h
+++ b/blender-2.79b/intern/cycles/kernel/osl/osl_services.h
@@ -25,8 +25,9 @@
  * attributes.
  */
 
-#include <OSL/oslexec.h>
 #include <OSL/oslclosure.h>
+#include <OSL/oslexec.h>
+#include <OSL/rendererservices.h>
 
 #ifdef WITH_PTEX
 class PtexCache;
diff --git a/blender-2.79b/intern/cycles/kernel/osl/osl_shader.cpp b/blender-2.79b/intern/cycles/kernel/osl/osl_shader.cpp
index 13b19d8..4ad6b74 100644
--- a/blender-2.79b/intern/cycles/kernel/osl/osl_shader.cpp
+++ b/blender-2.79b/intern/cycles/kernel/osl/osl_shader.cpp
@@ -53,7 +53,7 @@ void OSLShader::thread_init(KernelGlobals *kg, KernelGlobals *kernel_globals, OS
 	OSL::ShadingSystem *ss = kg->osl->ss;
 	OSLThreadData *tdata = new OSLThreadData();
 
-	memset(&tdata->globals, 0, sizeof(OSL::ShaderGlobals));
+	memset((void *)&tdata->globals, 0, sizeof(OSL::ShaderGlobals));
 	tdata->globals.tracedata = &tdata->tracedata;
 	tdata->globals.flipHandedness = false;
 	tdata->osl_thread_info = ss->create_thread_info();
diff --git a/blender-2.79b/intern/cycles/render/svm.cpp b/blender-2.79b/intern/cycles/render/svm.cpp
index 48287d8..0111d75 100644
--- a/blender-2.79b/intern/cycles/render/svm.cpp
+++ b/blender-2.79b/intern/cycles/render/svm.cpp
@@ -721,7 +721,7 @@ void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType ty
 	}
 
 	/* clear all compiler state */
-	memset(&active_stack, 0, sizeof(active_stack));
+	memset((void *)&active_stack, 0, sizeof(active_stack));
 	current_svm_nodes.clear();
 
 	foreach(ShaderNode *node_iter, graph->nodes) {
diff --git a/blender-2.79b/intern/cycles/util/util_sseb.h b/blender-2.79b/intern/cycles/util/util_sseb.h
index 6e66970..9ffe391 100644
--- a/blender-2.79b/intern/cycles/util/util_sseb.h
+++ b/blender-2.79b/intern/cycles/util/util_sseb.h
@@ -116,7 +116,7 @@ __forceinline const sseb unpacklo( const sseb& a, const sseb& b ) { return _mm_u
 __forceinline const sseb unpackhi( const sseb& a, const sseb& b ) { return _mm_unpackhi_ps(a, b); }
 
 template<size_t i0, size_t i1, size_t i2, size_t i3> __forceinline const sseb shuffle( const sseb& a ) {
-	return _mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0));
+	return _mm_castsi128_ps(_mm_shuffle_epi32(a, _MM_SHUFFLE(i3, i2, i1, i0)));
 }
 
 template<> __forceinline const sseb shuffle<0, 1, 0, 1>( const sseb& a ) {
diff --git a/blender-2.79b/intern/cycles/util/util_vector.h b/blender-2.79b/intern/cycles/util/util_vector.h
index 4add91a..caa6490 100644
--- a/blender-2.79b/intern/cycles/util/util_vector.h
+++ b/blender-2.79b/intern/cycles/util/util_vector.h
@@ -131,7 +131,7 @@ public:
 	{
 		if(this != &from) {
 			resize(from.size());
-			memcpy(data_, from.data_, datasize_*sizeof(T));
+			memcpy((void*)data_, from.data_, datasize_*sizeof(T));
 		}
 
 		return *this;
@@ -191,7 +191,7 @@ public:
 					return NULL;
 				}
 				else if(data_ != NULL) {
-					memcpy(newdata, data_, ((datasize_ < newsize)? datasize_: newsize)*sizeof(T));
+					memcpy((void *)newdata, data_, ((datasize_ < newsize)? datasize_: newsize)*sizeof(T));
 					mem_free(data_, capacity_);
 				}
 				data_ = newdata;