From c9f1ed1e4c22728b1f711656ab4de56c11c65e35 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Thu, 19 May 2016 12:47:41 +0200 Subject: Cycles: Add support for bindless textures. This adds support for CUDA Texture objects (also known as Bindless textures) for Kepler GPUs (Geforce 6xx and above). This is used for all 2D/3D textures, data still uses arrays as before. User benefits: * No more limits of image textures on Kepler. We had 5 float4 and 145 byte4 slots there before, now we have 1024 float4 and 1024 byte4. This can be extended further if we need to (just change the define). * Single channel textures slots (byte and float) are now supported on Kepler as well (1024 slots for each type). ToDo / Issues: * 3D textures don't work yet, at least don't show up during render. I have no idea whats wrong yet. * Dynamically allocate bindless_mapping array? I hope Fermi still works fine, but that should be tested on a Fermi card before pushing to master. Part of my GSoC 2016. Reviewers: sergey, #cycles, brecht Subscribers: swerner, jtheninja, brecht, sergey Differential Revision: https://developer.blender.org/D1999 --- intern/cycles/device/device_multi.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'intern/cycles/device/device_multi.cpp') diff --git a/intern/cycles/device/device_multi.cpp b/intern/cycles/device/device_multi.cpp index 6141f9af50f..434d0085d39 100644 --- a/intern/cycles/device/device_multi.cpp +++ b/intern/cycles/device/device_multi.cpp @@ -352,7 +352,7 @@ static bool device_multi_add(vector& devices, DeviceType type, bool info.advanced_shading = with_advanced_shading; info.pack_images = false; - info.extended_images = true; + info.has_bindless_textures = true; foreach(DeviceInfo& subinfo, devices) { if(subinfo.type == type) { @@ -376,7 +376,7 @@ static bool device_multi_add(vector& devices, DeviceType type, bool 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; + info.has_bindless_textures = info.has_bindless_textures && subinfo.has_bindless_textures; num_added++; } } -- cgit v1.2.3