[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51888] trunk/blender/intern/cycles: Cycles: fix crash rendering textured objects in OpenCL

Sergey Sharybin sergey.vfx at gmail.com
Mon Nov 5 09:05:24 CET 2012


Revision: 51888
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51888
Author:   nazgul
Date:     2012-11-05 08:05:24 +0000 (Mon, 05 Nov 2012)
Log Message:
-----------
Cycles: fix crash rendering textured objects in OpenCL

Issue was caused by changed order of texture slots -- float textures
have got lower slots indices than byte textures. OpenCL was still assuming
byte textures goes before float.

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/kernel_types.h
    trunk/blender/intern/cycles/kernel/svm/svm_image.h
    trunk/blender/intern/cycles/render/image.h

Modified: trunk/blender/intern/cycles/kernel/kernel_types.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_types.h	2012-11-05 08:05:14 UTC (rev 51887)
+++ trunk/blender/intern/cycles/kernel/kernel_types.h	2012-11-05 08:05:24 UTC (rev 51888)
@@ -36,6 +36,8 @@
 #define PARTICLE_SIZE 		5
 #define TIME_INVALID		FLT_MAX
 
+#define TEX_NUM_FLOAT_IMAGES	5
+
 /* device capabilities */
 #ifdef __KERNEL_CPU__
 #define __KERNEL_SHADING__

Modified: trunk/blender/intern/cycles/kernel/svm/svm_image.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_image.h	2012-11-05 08:05:14 UTC (rev 51887)
+++ trunk/blender/intern/cycles/kernel/svm/svm_image.h	2012-11-05 08:05:24 UTC (rev 51888)
@@ -52,6 +52,12 @@
 
 __device float4 svm_image_texture(KernelGlobals *kg, int id, float x, float y, uint srgb)
 {
+	/* first slots are used by float textures, which are not supported here */
+	if(id < TEX_NUM_FLOAT_IMAGES)
+		return make_float4(1.0f, 0.0f, 1.0f, 1.0f);
+
+	id -= TEX_NUM_FLOAT_IMAGES;
+
 	uint4 info = kernel_tex_fetch(__tex_image_packed_info, id);
 	uint width = info.x;
 	uint height = info.y;

Modified: trunk/blender/intern/cycles/render/image.h
===================================================================
--- trunk/blender/intern/cycles/render/image.h	2012-11-05 08:05:14 UTC (rev 51887)
+++ trunk/blender/intern/cycles/render/image.h	2012-11-05 08:05:24 UTC (rev 51888)
@@ -25,9 +25,10 @@
 #include "util_thread.h"
 #include "util_vector.h"
 
+#include "kernel_types.h"  /* for TEX_NUM_FLOAT_IMAGES */
+
 CCL_NAMESPACE_BEGIN
 
-#define TEX_NUM_FLOAT_IMAGES	5
 #define TEX_NUM_IMAGES			95
 #define TEX_IMAGE_BYTE_START	TEX_NUM_FLOAT_IMAGES
 




More information about the Bf-blender-cvs mailing list