diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-04-21 13:56:54 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2017-04-21 15:41:42 +0300 |
commit | 9781139590dbbeb6d246d4fbafa8ab1a4696c7fb (patch) | |
tree | 9275a763d008ecbe1d11249371897c6ec99a46d7 /intern/cycles/device | |
parent | b6da2a6a86fb948f11f9147c5ed722a064673e6d (diff) |
Cycles: Solve speed regression of classroom scene after principled commit
This way we can skip it from compiling into OpenCL kernels by making
this shader compile-time feature.
Diffstat (limited to 'intern/cycles/device')
-rw-r--r-- | intern/cycles/device/device.cpp | 2 | ||||
-rw-r--r-- | intern/cycles/device/device.h | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/intern/cycles/device/device.cpp b/intern/cycles/device/device.cpp index 968af447e29..c024021b4b3 100644 --- a/intern/cycles/device/device.cpp +++ b/intern/cycles/device/device.cpp @@ -66,6 +66,8 @@ std::ostream& operator <<(std::ostream &os, << string_from_bool(requested_features.use_patch_evaluation) << std::endl; os << "Use Transparent Shadows: " << string_from_bool(requested_features.use_transparent) << std::endl; + os << "Use Principled BSDF: " + << string_from_bool(requested_features.use_principled) << std::endl; return os; } diff --git a/intern/cycles/device/device.h b/intern/cycles/device/device.h index ac06e561795..6051dd8b3eb 100644 --- a/intern/cycles/device/device.h +++ b/intern/cycles/device/device.h @@ -124,6 +124,9 @@ public: /* Use various shadow tricks, such as shadow catcher. */ bool use_shadow_tricks; + /* Per-uber shader usage flags. */ + bool use_principled; + DeviceRequestedFeatures() { /* TODO(sergey): Find more meaningful defaults. */ @@ -141,6 +144,7 @@ public: use_patch_evaluation = false; use_transparent = false; use_shadow_tricks = false; + use_principled = false; } bool modified(const DeviceRequestedFeatures& requested_features) @@ -158,7 +162,8 @@ public: use_integrator_branched == requested_features.use_integrator_branched && use_patch_evaluation == requested_features.use_patch_evaluation && use_transparent == requested_features.use_transparent && - use_shadow_tricks == requested_features.use_shadow_tricks); + use_shadow_tricks == requested_features.use_shadow_tricks && + use_principled == requested_features.use_principled); } /* Convert the requested features structure to a build options, @@ -205,6 +210,9 @@ public: if(!use_shadow_tricks) { build_options += " -D__NO_SHADOW_TRICKS__"; } + if(!use_principled) { + build_options += " -D__NO_PRINCIPLED__"; + } return build_options; } }; |