[Bf-blender-cvs] [e50d229] master: Fix T47794: Point density sometime seems stretched when rendered on GPU

Sergey Sharybin noreply at git.blender.org
Wed Apr 20 14:42:27 CEST 2016


Commit: e50d2292733b8d50437a9848fc82ee0715f6dec0
Author: Sergey Sharybin
Date:   Wed Apr 20 14:42:04 2016 +0200
Branches: master
https://developer.blender.org/rBe50d2292733b8d50437a9848fc82ee0715f6dec0

Fix T47794: Point density sometime seems stretched when rendered on GPU

===================================================================

M	intern/cycles/device/device_cuda.cpp

===================================================================

diff --git a/intern/cycles/device/device_cuda.cpp b/intern/cycles/device/device_cuda.cpp
index 22365bb..f1a17d6 100644
--- a/intern/cycles/device/device_cuda.cpp
+++ b/intern/cycles/device/device_cuda.cpp
@@ -606,22 +606,27 @@ public:
 				cuda_assert(cuTexRefSetFlags(texref, CU_TRSF_READ_AS_INTEGER));
 			}
 
+			CUaddress_mode address_mode = CU_TR_ADDRESS_MODE_WRAP;
 			switch(extension) {
 				case EXTENSION_REPEAT:
-					cuda_assert(cuTexRefSetAddressMode(texref, 0, CU_TR_ADDRESS_MODE_WRAP));
-					cuda_assert(cuTexRefSetAddressMode(texref, 1, CU_TR_ADDRESS_MODE_WRAP));
+					address_mode = CU_TR_ADDRESS_MODE_WRAP;
 					break;
 				case EXTENSION_EXTEND:
-					cuda_assert(cuTexRefSetAddressMode(texref, 0, CU_TR_ADDRESS_MODE_CLAMP));
-					cuda_assert(cuTexRefSetAddressMode(texref, 1, CU_TR_ADDRESS_MODE_CLAMP));
+					address_mode = CU_TR_ADDRESS_MODE_CLAMP;
 					break;
 				case EXTENSION_CLIP:
-					cuda_assert(cuTexRefSetAddressMode(texref, 0, CU_TR_ADDRESS_MODE_BORDER));
-					cuda_assert(cuTexRefSetAddressMode(texref, 1, CU_TR_ADDRESS_MODE_BORDER));
+					address_mode = CU_TR_ADDRESS_MODE_BORDER;
 					break;
 				default:
 					assert(0);
+					break;
+			}
+			cuda_assert(cuTexRefSetAddressMode(texref, 0, address_mode));
+			cuda_assert(cuTexRefSetAddressMode(texref, 1, address_mode));
+			if(mem.data_depth > 1) {
+				cuda_assert(cuTexRefSetAddressMode(texref, 2, address_mode));
 			}
+
 			cuda_assert(cuTexRefSetFormat(texref, format, mem.data_elements));
 
 			cuda_pop_context();




More information about the Bf-blender-cvs mailing list