[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