[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57612] branches/soc-2013-dingto/intern/ cycles: Cycles / GPU Image Textures:

Thomas Dinges blender at dingto.org
Thu Jun 20 17:14:15 CEST 2013


Revision: 57612
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57612
Author:   dingto
Date:     2013-06-20 15:14:14 +0000 (Thu, 20 Jun 2013)
Log Message:
-----------
Cycles / GPU Image Textures:
* On nvidia Kepler GPUs (sm_30 and above), there are now 145 byte images available, instead of 95. 
We could extend this to about 200 if needed. 

Could not test this, as I don't have a Kepler GPU, so feedback on this would be appreciated.

Thanks to Brecht for review and some fixes. :) 

Modified Paths:
--------------
    branches/soc-2013-dingto/intern/cycles/device/device.h
    branches/soc-2013-dingto/intern/cycles/device/device_cpu.cpp
    branches/soc-2013-dingto/intern/cycles/device/device_cuda.cpp
    branches/soc-2013-dingto/intern/cycles/device/device_multi.cpp
    branches/soc-2013-dingto/intern/cycles/kernel/kernel_textures.h
    branches/soc-2013-dingto/intern/cycles/kernel/svm/svm_image.h
    branches/soc-2013-dingto/intern/cycles/render/image.cpp
    branches/soc-2013-dingto/intern/cycles/render/image.h
    branches/soc-2013-dingto/intern/cycles/render/scene.cpp
    branches/soc-2013-dingto/intern/cycles/render/scene.h

Modified: branches/soc-2013-dingto/intern/cycles/device/device.h
===================================================================
--- branches/soc-2013-dingto/intern/cycles/device/device.h	2013-06-20 14:19:46 UTC (rev 57611)
+++ branches/soc-2013-dingto/intern/cycles/device/device.h	2013-06-20 15:14:14 UTC (rev 57612)
@@ -53,6 +53,7 @@
 	string description;
 	string id;
 	int num;
+	int extended_images;
 	bool display_device;
 	bool advanced_shading;
 	bool pack_images;
@@ -63,6 +64,7 @@
 		type = DEVICE_CPU;
 		id = "CPU";
 		num = 0;
+		extended_images = false;
 		display_device = false;
 		advanced_shading = true;
 		pack_images = false;

Modified: branches/soc-2013-dingto/intern/cycles/device/device_cpu.cpp
===================================================================
--- branches/soc-2013-dingto/intern/cycles/device/device_cpu.cpp	2013-06-20 14:19:46 UTC (rev 57611)
+++ branches/soc-2013-dingto/intern/cycles/device/device_cpu.cpp	2013-06-20 15:14:14 UTC (rev 57612)
@@ -340,6 +340,7 @@
 	info.description = system_cpu_brand_string();
 	info.id = "CPU";
 	info.num = 0;
+	info.extended_images = true;
 	info.advanced_shading = true;
 	info.pack_images = false;
 

Modified: branches/soc-2013-dingto/intern/cycles/device/device_cuda.cpp
===================================================================
--- branches/soc-2013-dingto/intern/cycles/device/device_cuda.cpp	2013-06-20 14:19:46 UTC (rev 57611)
+++ branches/soc-2013-dingto/intern/cycles/device/device_cuda.cpp	2013-06-20 15:14:14 UTC (rev 57612)
@@ -1035,6 +1035,7 @@
 		int major, minor;
 		cuDeviceComputeCapability(&major, &minor, num);
 		info.advanced_shading = (major >= 2);
+		info.extended_images = (major >= 3);
 		info.pack_images = false;
 
 		/* if device has a kernel timeout, assume it is used for display */

Modified: branches/soc-2013-dingto/intern/cycles/device/device_multi.cpp
===================================================================
--- branches/soc-2013-dingto/intern/cycles/device/device_multi.cpp	2013-06-20 14:19:46 UTC (rev 57611)
+++ branches/soc-2013-dingto/intern/cycles/device/device_multi.cpp	2013-06-20 15:14:14 UTC (rev 57612)
@@ -330,6 +330,7 @@
 
 	info.advanced_shading = with_advanced_shading;
 	info.pack_images = false;
+	info.extended_images = true;
 
 	foreach(DeviceInfo& subinfo, devices) {
 		if(subinfo.type == type) {
@@ -353,6 +354,7 @@
 			if(subinfo.display_device)
 				info.display_device = true;
 			info.pack_images = info.pack_images || subinfo.pack_images;
+			info.extended_images = info.extended_images && subinfo.extended_images;
 			num_added++;
 		}
 	}

Modified: branches/soc-2013-dingto/intern/cycles/kernel/kernel_textures.h
===================================================================
--- branches/soc-2013-dingto/intern/cycles/kernel/kernel_textures.h	2013-06-20 14:19:46 UTC (rev 57611)
+++ branches/soc-2013-dingto/intern/cycles/kernel/kernel_textures.h	2013-06-20 15:14:14 UTC (rev 57612)
@@ -176,6 +176,61 @@
 KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_098)
 KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_099)
 
+/* Kepler and above */
+#if defined(__KERNEL_CUDA__) && __CUDA_ARCH__ >= 300
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_100)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_101)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_102)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_103)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_104)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_105)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_106)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_107)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_108)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_109)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_110)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_111)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_112)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_113)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_114)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_115)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_116)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_117)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_118)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_119)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_120)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_121)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_122)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_123)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_124)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_125)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_126)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_127)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_128)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_129)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_130)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_131)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_132)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_133)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_134)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_135)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_136)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_137)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_138)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_139)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_140)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_141)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_142)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_143)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_144)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_145)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_146)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_147)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_148)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_149)
+KERNEL_IMAGE_TEX(uchar4, texture_image_uchar4, __tex_image_150)
+#endif
+
 /* packed image (opencl) */
 KERNEL_TEX(uchar4, texture_uchar4, __tex_image_packed)
 KERNEL_TEX(uint4, texture_uint4, __tex_image_packed_info)

Modified: branches/soc-2013-dingto/intern/cycles/kernel/svm/svm_image.h
===================================================================
--- branches/soc-2013-dingto/intern/cycles/kernel/svm/svm_image.h	2013-06-20 14:19:46 UTC (rev 57611)
+++ branches/soc-2013-dingto/intern/cycles/kernel/svm/svm_image.h	2013-06-20 15:14:14 UTC (rev 57612)
@@ -229,6 +229,60 @@
 		case 97: r = kernel_tex_image_interp(__tex_image_097, x, y); break;
 		case 98: r = kernel_tex_image_interp(__tex_image_098, x, y); break;
 		case 99: r = kernel_tex_image_interp(__tex_image_099, x, y); break;
+#if defined(__KERNEL_CUDA__) && __CUDA_ARCH__ >= 300
+		case 100: r = kernel_tex_image_interp(__tex_image_100, x, y); break;
+		case 101: r = kernel_tex_image_interp(__tex_image_101, x, y); break;
+		case 102: r = kernel_tex_image_interp(__tex_image_102, x, y); break;
+		case 103: r = kernel_tex_image_interp(__tex_image_103, x, y); break;
+		case 104: r = kernel_tex_image_interp(__tex_image_104, x, y); break;
+		case 105: r = kernel_tex_image_interp(__tex_image_105, x, y); break;
+		case 106: r = kernel_tex_image_interp(__tex_image_106, x, y); break;
+		case 107: r = kernel_tex_image_interp(__tex_image_107, x, y); break;
+		case 108: r = kernel_tex_image_interp(__tex_image_108, x, y); break;
+		case 109: r = kernel_tex_image_interp(__tex_image_109, x, y); break;
+		case 110: r = kernel_tex_image_interp(__tex_image_110, x, y); break;
+		case 111: r = kernel_tex_image_interp(__tex_image_111, x, y); break;
+		case 112: r = kernel_tex_image_interp(__tex_image_112, x, y); break;
+		case 113: r = kernel_tex_image_interp(__tex_image_113, x, y); break;
+		case 114: r = kernel_tex_image_interp(__tex_image_114, x, y); break;
+		case 115: r = kernel_tex_image_interp(__tex_image_115, x, y); break;
+		case 116: r = kernel_tex_image_interp(__tex_image_116, x, y); break;
+		case 117: r = kernel_tex_image_interp(__tex_image_117, x, y); break;
+		case 118: r = kernel_tex_image_interp(__tex_image_118, x, y); break;
+		case 119: r = kernel_tex_image_interp(__tex_image_119, x, y); break;
+		case 120: r = kernel_tex_image_interp(__tex_image_120, x, y); break;
+		case 121: r = kernel_tex_image_interp(__tex_image_121, x, y); break;
+		case 122: r = kernel_tex_image_interp(__tex_image_122, x, y); break;
+		case 123: r = kernel_tex_image_interp(__tex_image_123, x, y); break;
+		case 124: r = kernel_tex_image_interp(__tex_image_124, x, y); break;
+		case 125: r = kernel_tex_image_interp(__tex_image_125, x, y); break;
+		case 126: r = kernel_tex_image_interp(__tex_image_126, x, y); break;
+		case 127: r = kernel_tex_image_interp(__tex_image_127, x, y); break;
+		case 128: r = kernel_tex_image_interp(__tex_image_128, x, y); break;
+		case 129: r = kernel_tex_image_interp(__tex_image_129, x, y); break;
+		case 130: r = kernel_tex_image_interp(__tex_image_130, x, y); break;
+		case 131: r = kernel_tex_image_interp(__tex_image_131, x, y); break;
+		case 132: r = kernel_tex_image_interp(__tex_image_132, x, y); break;
+		case 133: r = kernel_tex_image_interp(__tex_image_133, x, y); break;
+		case 134: r = kernel_tex_image_interp(__tex_image_134, x, y); break;
+		case 135: r = kernel_tex_image_interp(__tex_image_135, x, y); break;
+		case 136: r = kernel_tex_image_interp(__tex_image_136, x, y); break;
+		case 137: r = kernel_tex_image_interp(__tex_image_137, x, y); break;
+		case 138: r = kernel_tex_image_interp(__tex_image_138, x, y); break;
+		case 139: r = kernel_tex_image_interp(__tex_image_139, x, y); break;
+		case 140: r = kernel_tex_image_interp(__tex_image_140, x, y); break;
+		case 141: r = kernel_tex_image_interp(__tex_image_141, x, y); break;
+		case 142: r = kernel_tex_image_interp(__tex_image_142, x, y); break;

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list