[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46261] trunk/blender/intern/cycles/device /device_cuda.cpp: Cycles: tweak ATI OpenGL/ CUDA fix more with extra error check.
Brecht Van Lommel
brechtvanlommel at pandora.be
Fri May 4 10:00:58 CEST 2012
Revision: 46261
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46261
Author: blendix
Date: 2012-05-04 08:00:58 +0000 (Fri, 04 May 2012)
Log Message:
-----------
Cycles: tweak ATI OpenGL/CUDA fix more with extra error check.
Modified Paths:
--------------
trunk/blender/intern/cycles/device/device_cuda.cpp
Modified: trunk/blender/intern/cycles/device/device_cuda.cpp
===================================================================
--- trunk/blender/intern/cycles/device/device_cuda.cpp 2012-05-04 08:00:55 UTC (rev 46260)
+++ trunk/blender/intern/cycles/device/device_cuda.cpp 2012-05-04 08:00:58 UTC (rev 46261)
@@ -176,7 +176,9 @@
result = cuCtxCreate(&cuContext, 0, cuDevice);
}
else {
- if(cuGLCtxCreate(&cuContext, 0, cuDevice) != CUDA_SUCCESS) {
+ result = cuGLCtxCreate(&cuContext, 0, cuDevice);
+
+ if(result != CUDA_SUCCESS) {
result = cuCtxCreate(&cuContext, 0, cuDevice);
background = true;
}
@@ -691,14 +693,25 @@
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glBindTexture(GL_TEXTURE_2D, 0);
- cuda_assert(cuGraphicsGLRegisterBuffer(&pmem.cuPBOresource, pmem.cuPBO, CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE))
+ CUresult result = cuGraphicsGLRegisterBuffer(&pmem.cuPBOresource, pmem.cuPBO, CU_GRAPHICS_MAP_RESOURCE_FLAGS_NONE);
- cuda_pop_context();
+ if(!cuda_error(result)) {
+ cuda_pop_context();
- mem.device_pointer = pmem.cuTexId;
- pixel_mem_map[mem.device_pointer] = pmem;
+ mem.device_pointer = pmem.cuTexId;
+ pixel_mem_map[mem.device_pointer] = pmem;
- return;
+ return;
+ }
+ else {
+ /* failed to register buffer, fallback to no interop */
+ glDeleteBuffers(1, &pmem.cuPBO);
+ glDeleteTextures(1, &pmem.cuTexId);
+
+ cuda_pop_context();
+
+ background = true;
+ }
}
Device::pixels_alloc(mem);
More information about the Bf-blender-cvs
mailing list