[Bf-blender-cvs] [99c13519a10] master: Cycles: More fixes for Windows 32 bit

Sergey Sharybin noreply at git.blender.org
Tue Aug 8 22:34:38 CEST 2017


Commit: 99c13519a10fb7e2fccfbb17ccc72f772e137343
Author: Sergey Sharybin
Date:   Tue Aug 8 22:32:51 2017 +0200
Branches: master
https://developer.blender.org/rB99c13519a10fb7e2fccfbb17ccc72f772e137343

Cycles: More fixes for Windows 32 bit

- Apparently MSVC does not support compound literals
  in C++ (at least by the looks of it).

- Not sure how opencl_device_assert was managing to
  set protected property of the Device class.

===================================================================

M	intern/cycles/device/opencl/opencl.h
M	intern/cycles/device/opencl/opencl_base.cpp

===================================================================

diff --git a/intern/cycles/device/opencl/opencl.h b/intern/cycles/device/opencl/opencl.h
index 0dae9136870..71483ca9159 100644
--- a/intern/cycles/device/opencl/opencl.h
+++ b/intern/cycles/device/opencl/opencl.h
@@ -232,8 +232,8 @@ public:
 		\
 		if(err != CL_SUCCESS) { \
 			string message = string_printf("OpenCL error: %s in %s (%s:%d)", clewErrorString(err), #stmt, __FILE__, __LINE__); \
-			if((device)->error_msg == "") \
-				(device)->error_msg = message; \
+			if((device)->error_message() == "") \
+				(device)->set_error(message); \
 			fprintf(stderr, "%s\n", message.c_str()); \
 		} \
 	} (void)0
@@ -556,6 +556,14 @@ private:
 	device_memory texture_descriptors_buffer;
 
 	struct Texture {
+		Texture() {}
+		Texture(device_memory* mem,
+		         InterpolationType interpolation,
+		         ExtensionType extension)
+		    : mem(mem),
+			  interpolation(interpolation),
+			  extension(extension) {
+		}
 		device_memory* mem;
 		InterpolationType interpolation;
 		ExtensionType extension;
diff --git a/intern/cycles/device/opencl/opencl_base.cpp b/intern/cycles/device/opencl/opencl_base.cpp
index d3f0172a7b6..aa22086be29 100644
--- a/intern/cycles/device/opencl/opencl_base.cpp
+++ b/intern/cycles/device/opencl/opencl_base.cpp
@@ -30,6 +30,10 @@
 CCL_NAMESPACE_BEGIN
 
 struct texture_slot_t {
+	texture_slot_t(const string& name, int slot)
+		: name(name),
+		  slot(slot) {
+	}
 	string name;
 	int slot;
 };
@@ -515,11 +519,7 @@ void OpenCLDeviceBase::tex_alloc(const char *name,
 	        << string_human_readable_size(mem.memory_size()) << ")";
 
 	memory_manager.alloc(name, mem);
-
-	textures[name] = (Texture){.mem = &mem,
-	                           .interpolation = interpolation,
-	                           .extension = extension};
-
+	textures[name] = Texture(&mem, interpolation, extension);
 	textures_need_update = true;
 }
 
@@ -618,10 +618,9 @@ void OpenCLDeviceBase::flush_texture_buffers()
 
 	vector<texture_slot_t> texture_slots;
 
-#define KERNEL_TEX(type, ttype, slot_name) \
-	if(textures.find(#slot_name) != textures.end()) { \
-		texture_slots.push_back((texture_slot_t){.name = #slot_name, \
-		                                         .slot = num_slots}); \
+#define KERNEL_TEX(type, ttype, name) \
+	if(textures.find(#name) != textures.end()) { \
+		texture_slots.push_back(texture_slot_t(#name, num_slots)); \
 	} \
 	num_slots++;
 #include "kernel/kernel_textures.h"
@@ -634,11 +633,8 @@ void OpenCLDeviceBase::flush_texture_buffers()
 		if(string_startswith(name, "__tex_image")) {
 			int pos = name.rfind("_");
 			int id = atoi(name.data() + pos + 1);
-
-			texture_slots.push_back((texture_slot_t){
-				    .name = name,
-				    .slot = num_data_slots + id});
-
+			texture_slots.push_back(texture_slot_t(name,
+				                                   num_data_slots + id));
 			num_slots = max(num_slots, num_data_slots + id + 1);
 		}
 	}




More information about the Bf-blender-cvs mailing list