[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60848] trunk/blender/intern/cycles/device /device.cpp: Fix #37134: cycles viewport not displaying correct with multi GPU render

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Oct 18 22:11:08 CEST 2013


Revision: 60848
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60848
Author:   blendix
Date:     2013-10-18 20:11:07 +0000 (Fri, 18 Oct 2013)
Log Message:
-----------
Fix #37134: cycles viewport not displaying correct with multi GPU render
and graphics card that does not support CUDA OpenGL interop.

Modified Paths:
--------------
    trunk/blender/intern/cycles/device/device.cpp

Modified: trunk/blender/intern/cycles/device/device.cpp
===================================================================
--- trunk/blender/intern/cycles/device/device.cpp	2013-10-18 17:57:15 UTC (rev 60847)
+++ trunk/blender/intern/cycles/device/device.cpp	2013-10-18 20:11:07 UTC (rev 60848)
@@ -64,11 +64,16 @@
 	glColor3f(1.0f, 1.0f, 1.0f);
 
 	if(rgba.data_type == TYPE_HALF) {
+		/* for multi devices, this assumes the ineffecient method that we allocate
+		 * all pixels on the device even though we only render to a subset */
+		GLhalf *data_pointer = (GLhalf*)rgba.data_pointer;
+		data_pointer += 4*y*w;
+
 		/* draw half float texture, GLSL shader for display transform assumed to be bound */
 		GLuint texid;
 		glGenTextures(1, &texid);
 		glBindTexture(GL_TEXTURE_2D, texid);
-		glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, w, h, 0, GL_RGBA, GL_HALF_FLOAT, (void*)rgba.data_pointer);
+		glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F_ARB, w, h, 0, GL_RGBA, GL_HALF_FLOAT, data_pointer);
 		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
 		glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
 




More information about the Bf-blender-cvs mailing list