Blender Git Loki
Git Commits -> Revision ec25060
Revision ec25060 by Stefan Werner (master) April 27, 2017, 07:35 (GMT) |
Unlimited number of textures for Cycles This patch allows for an unlimited number of textures in Cycles where the hardware allows. It replaces a number static arrays with dynamic arrays and changes the way the flat_slot indices are calculated. Eventually, I'd like to get to a point where there are only flat slots left and textures off all kinds are stored in a single array. Note that the arrays in DeviceScene are changed from containing device_vector<T> objects to device_vector<T>* pointers. Ideally, I'd like to store objects, but dynamic resizing of a std:vector in pre-C++11 calls the copy constructor, which for a good reason is not implemented for device_vector. Once we require C++11 for Cycles builds, we can implement a move constructor for device_vector and store objects again. The limits for CUDA Fermi hardware still apply. Reviewers: tod_baudais, InsigMathK, dingto, #cycles Reviewed By: dingto, #cycles Subscribers: dingto, smellslikedonkey Differential Revision: https://developer.blender.org/D2650 |
Commit Details:
Full Hash: ec25060a05e394560ec92388b347c45bd9eba0ed
Parent Commit: a6b9bd0
Lines Changed: +328, -287
12 Modified Paths:
/intern/cycles/kernel/kernels/cpu/kernel.cpp (+35, -17) (Diff)
/intern/cycles/kernel/kernels/cpu/kernel_cpu_image.h (+45, -37) (Diff)
/intern/cycles/kernel/kernel_globals.h (+10, -6) (Diff)
/intern/cycles/kernel/kernel_image_opencl.h (+4, -3) (Diff)
/intern/cycles/kernel/svm/svm_image.h (+9, -4) (Diff)
/intern/cycles/kernel/svm/svm_voxel.h (+1, -1) (Diff)
/intern/cycles/render/image.cpp (+168, -141) (Diff)
/intern/cycles/render/image.h (+3, -12) (Diff)
/intern/cycles/render/nodes.cpp (+4, -4) (Diff)
/intern/cycles/render/scene.h (+7, -7) (Diff)
/intern/cycles/util/util_texture.h (+23, -55) (Diff)
/intern/cycles/util/util_types.h (+19, -0) (Diff)
/intern/cycles/kernel/kernels/cpu/kernel_cpu_image.h (+45, -37) (Diff)
/intern/cycles/kernel/kernel_globals.h (+10, -6) (Diff)
/intern/cycles/kernel/kernel_image_opencl.h (+4, -3) (Diff)
/intern/cycles/kernel/svm/svm_image.h (+9, -4) (Diff)
/intern/cycles/kernel/svm/svm_voxel.h (+1, -1) (Diff)
/intern/cycles/render/image.cpp (+168, -141) (Diff)
/intern/cycles/render/image.h (+3, -12) (Diff)
/intern/cycles/render/nodes.cpp (+4, -4) (Diff)
/intern/cycles/render/scene.h (+7, -7) (Diff)
/intern/cycles/util/util_texture.h (+23, -55) (Diff)
/intern/cycles/util/util_types.h (+19, -0) (Diff)