[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60502] trunk/blender/intern/cycles: Fix cycles OpenCL compile error on AMD, and fix assert in debug builds.

Brecht Van Lommel brechtvanlommel at pandora.be
Wed Oct 2 16:41:04 CEST 2013


Revision: 60502
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60502
Author:   blendix
Date:     2013-10-02 14:41:04 +0000 (Wed, 02 Oct 2013)
Log Message:
-----------
Fix cycles OpenCL compile error on AMD, and fix assert in debug builds.

Modified Paths:
--------------
    trunk/blender/intern/cycles/device/device_opencl.cpp
    trunk/blender/intern/cycles/kernel/kernel_film.h
    trunk/blender/intern/cycles/kernel/kernel_path.h
    trunk/blender/intern/cycles/util/util_types.h

Modified: trunk/blender/intern/cycles/device/device_opencl.cpp
===================================================================
--- trunk/blender/intern/cycles/device/device_opencl.cpp	2013-10-02 12:14:50 UTC (rev 60501)
+++ trunk/blender/intern/cycles/device/device_opencl.cpp	2013-10-02 14:41:04 UTC (rev 60502)
@@ -892,8 +892,16 @@
 
 	void tex_free(device_memory& mem)
 	{
-		if(mem.data_pointer)
+		if(mem.device_pointer) {
+			foreach(const MemMap::value_type& value, mem_map) {
+				if(value.second == mem.device_pointer) {
+					mem_map.erase(value.first);
+					break;
+				}
+			}
+
 			mem_free(mem);
+		}
 	}
 
 	size_t global_size_round_up(int group_size, int global_size)

Modified: trunk/blender/intern/cycles/kernel/kernel_film.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_film.h	2013-10-02 12:14:50 UTC (rev 60501)
+++ trunk/blender/intern/cycles/kernel/kernel_film.h	2013-10-02 14:41:04 UTC (rev 60502)
@@ -70,8 +70,8 @@
 	/* buffer offset */
 	int index = offset + x + y*stride;
 
-	float4 *in = (float4*)(buffer + index*kernel_data.film.pass_stride);
-	half *out = (half*)rgba + index*4;
+	__global float4 *in = (__global float4*)(buffer + index*kernel_data.film.pass_stride);
+	__global half *out = (__global half*)rgba + index*4;
 	float scale = kernel_data.film.exposure*sample_scale;
 
 	float4_store_half(out, in, scale);

Modified: trunk/blender/intern/cycles/kernel/kernel_path.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_path.h	2013-10-02 12:14:50 UTC (rev 60501)
+++ trunk/blender/intern/cycles/kernel/kernel_path.h	2013-10-02 14:41:04 UTC (rev 60502)
@@ -468,7 +468,9 @@
 
 	float min_ray_pdf = FLT_MAX;
 	float ray_pdf = 0.0f;
+#ifdef __LAMP_MIS__
 	float ray_t = 0.0f;
+#endif
 	PathState state;
 	int rng_offset = PRNG_BASE_NUM;
 #ifdef __CMJ__

Modified: trunk/blender/intern/cycles/util/util_types.h
===================================================================
--- trunk/blender/intern/cycles/util/util_types.h	2013-10-02 12:14:50 UTC (rev 60501)
+++ trunk/blender/intern/cycles/util/util_types.h	2013-10-02 14:41:04 UTC (rev 60502)
@@ -545,10 +545,7 @@
 
 #ifdef __KERNEL_OPENCL__
 
-__device_inline void float4_store_half(half *h, const float4 *f, float scale)
-{
-	vstore_half4(*f * scale, 0, h);
-}
+#define float4_store_half(h, f, scale) vstore_half4(*(f) * (scale), 0, h);
 
 #else
 




More information about the Bf-blender-cvs mailing list