Blender Git Loki
Git Commits -> Revision c9f1ed1
Revision c9f1ed1 by Thomas Dinges (master) May 19, 2016, 11:14 (GMT) |
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 |
Commit Details:
Full Hash: c9f1ed1e4c22728b1f711656ab4de56c11c65e35
Parent Commit: 03f846e
Lines Changed: +307, -286
10 Modified Paths:
/intern/cycles/device/device.h (+3, -2) (Diff)
/intern/cycles/device/device_cuda.cpp (+227, -138) (Diff)
/intern/cycles/device/device_multi.cpp (+2, -2) (Diff)
/intern/cycles/kernel/geom/geom_volume.h (+12, -1) (Diff)
/intern/cycles/kernel/kernel_compat_cuda.h (+17, -8) (Diff)
/intern/cycles/kernel/kernel_textures.h (+8, -60) (Diff)
/intern/cycles/kernel/svm/svm_image.h (+17, -65) (Diff)
/intern/cycles/kernel/svm/svm_voxel.h (+14, -3) (Diff)
/intern/cycles/render/image.cpp (+3, -3) (Diff)
/intern/cycles/util/util_texture.h (+4, -4) (Diff)
/intern/cycles/device/device_cuda.cpp (+227, -138) (Diff)
/intern/cycles/device/device_multi.cpp (+2, -2) (Diff)
/intern/cycles/kernel/geom/geom_volume.h (+12, -1) (Diff)
/intern/cycles/kernel/kernel_compat_cuda.h (+17, -8) (Diff)
/intern/cycles/kernel/kernel_textures.h (+8, -60) (Diff)
/intern/cycles/kernel/svm/svm_image.h (+17, -65) (Diff)
/intern/cycles/kernel/svm/svm_voxel.h (+14, -3) (Diff)
/intern/cycles/render/image.cpp (+3, -3) (Diff)
/intern/cycles/util/util_texture.h (+4, -4) (Diff)