blender/intern/cycles/kernel/svm
Lukas Stockner 9847ad977a Cycles: Fix T49901: OpenCL build error after recent light texture coordinate commit
Basically, the problem here was that the transform that's used to bring texture coordinates
to world space is either fetched while setting up the shader (with Object Motion is enabled) or
fetched when needed (otherwise). That helps to save ShaderData memory on OpenCL when Object Motion isn't needed.

Now, if OM is enabled, the Lamp transform can just be stored inside the ShaderData as well. The original commit just assumed it is.
However, when it's not (on OpenCL by default, for example), there is no easy way to fetch it when needed, since the ShaderData doesn't
store the Lamp index.

So, for now the lamps just don't support local texture coordinates anymore when Object Motion is disabled.
To fix and support this properly, one of the following could be done:
- Just always pre-fetch the transform. Downside: Memory Usage increases when not using OM on OpenCL
- Add a variable to ShaderData that stores the Lamp ID to allow fetching it when needed
- Store the Lamp ID inside prim or object. Problem: Cycles currently checks these for whether an object was hit - these checks would need to be changed.
- Enable OM whenever a Texture Coordinate's Normal output is used. Downside: Might not actually be needed.
2016-11-03 03:08:14 +01:00
..
svm_attribute.h Cycles Standalone: Fix support for subdivision meshes 2016-08-24 10:39:00 -04:00
svm_blackbody.h Cycles: Use curve approximation for blackbody instead of lookup table 2015-05-05 06:11:54 +00:00
svm_brick.h Cycles: Fix OpenCL compilation with the new brick texture 2016-10-30 16:25:35 +01:00
svm_brightness.h Cycles: add constant folding for more color operation nodes. 2016-06-19 20:17:28 +02:00
svm_bump.h Cycles microdisplacement: Improved automatic bump mapping 2016-09-01 22:45:49 -04:00
svm_camera.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm_checker.h Fix T48139: Checker texture strange behavior in cycles 2016-04-15 15:30:30 +02:00
svm_closure.h Cycles: refactor kernel closure storage to use structs per closure type. 2016-07-31 02:34:43 +02:00
svm_color_util.h Cycles: add constant folding for more color operation nodes. 2016-06-19 20:17:28 +02:00
svm_convert.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_displace.h Cycles: Replace object index hack with actual checks for SD_TRANSFORM_APPLIED 2016-09-11 13:49:05 -04:00
svm_fresnel.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm_gamma.h Cycles: Constant fold for the Gamma Node. 2015-12-22 13:53:13 +01:00
svm_geometry.h Cycles: Tweaks to support CUDA 8 toolkit 2016-08-01 15:54:29 +02:00
svm_gradient.h Cycles: Use native saturate function for CUDA 2015-04-28 00:38:32 +05:00
svm_hsv.h Code cleanup: simplify SVM stack assignment. 2016-05-05 21:43:46 +02:00
svm_image.h Cycles: Fix T49901: OpenCL build error after recent light texture coordinate commit 2016-11-03 03:08:14 +01:00
svm_invert.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_light_path.h Fix T47461: Different results on CPU and GPU when using Branched Path Tracing 2016-02-18 01:23:38 +01:00
svm_magic.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_mapping.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_math_util.h Cycles: implement partial constant folding for exponentiation. 2016-10-01 14:37:03 +03:00
svm_math.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_mix.h Cycles: add constant folding for more color operation nodes. 2016-06-19 20:17:28 +02:00
svm_musgrave.h Cleanup: Remove unused Noise Basis texture code. 2015-05-28 01:07:37 +02:00
svm_noise.h Cycles: Cleanup, indent nested preprocessor directives 2016-03-25 13:55:42 +01:00
svm_noisetex.h Cleanup: Remove unused Noise Basis texture code. 2015-05-28 01:07:37 +02:00
svm_normal.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_ramp_util.h Cycles: Cleanup, style 2016-10-24 12:26:12 +02:00
svm_ramp.h Cycles: Tweaks to support CUDA 8 toolkit 2016-08-01 15:54:29 +02:00
svm_sepcomb_hsv.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_sepcomb_vector.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_sky.h Revert "Cycles: Remove the Preetham Sky model." 2016-04-05 12:25:54 +02:00
svm_tex_coord.h Cycles: Fix T49901: OpenCL build error after recent light texture coordinate commit 2016-11-03 03:08:14 +01:00
svm_texture.h Cleanup: Remove unused Noise Basis texture code. 2015-05-28 01:07:37 +02:00
svm_types.h Cycles: Fix OpenCL speed regression introduced with the improved bump mapping 2016-09-08 01:33:41 +02:00
svm_value.h Cleanup: Fix Cycles Apache header. 2014-12-25 02:50:24 +01:00
svm_vector_transform.h Cycles: OpenCL kernel split 2015-05-09 19:52:40 +05:00
svm_voronoi.h Cleanup: Remove unused Voronoi texture code. 2015-05-28 00:36:33 +02:00
svm_voxel.h Cycles: OpenCL 3d textures support. 2016-10-22 23:49:29 +02:00
svm_wave.h Cycles: Add Saw option to the wave texture 2016-01-01 23:25:37 +01:00
svm_wavelength.h Cycles: Code cleanup, spaces around keywords 2015-03-28 00:15:15 +05:00
svm_wireframe.h Cycles: Some more inline policy tweaks for CUDA 8 2016-08-02 15:13:34 +02:00
svm.h Cycles: Replace object index hack with actual checks for SD_TRANSFORM_APPLIED 2016-09-11 13:49:05 -04:00