[Mesa-dev] [PATCH v2 16/17] swr/rast: simplify knob default value setup

Tim Rowley timothy.o.rowley at intel.com
Tue Aug 1 19:44:46 UTC 2017


---
 .../drivers/swr/rasterizer/codegen/templates/gen_knobs.h    | 13 ++++---------
 src/gallium/drivers/swr/rasterizer/core/knobs_init.h        | 12 +++++++-----
 2 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.h b/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.h
index b02870b..d81f7d0 100644
--- a/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.h
+++ b/src/gallium/drivers/swr/rasterizer/codegen/templates/gen_knobs.h
@@ -67,12 +67,6 @@ public:
         return Value();
     }
 
-protected:
-    Knob(T const &defaultValue) :
-        m_Value(expandEnvironmentVariables(defaultValue))
-    {
-    }
-
 private:
     T m_Value;
 };
@@ -83,10 +77,10 @@ private:
 
     {                                                           \\
 
-        Knob_##_name() : Knob<_type>(_default) { }              \\
-
         static const char* Name() { return "KNOB_" #_name; }    \\
 
+        static _type DefaultValue() { return (_default); }      \\
+
     } _name;
 
 #define GET_KNOB(_name)             g_GlobalKnobs._name.Value()
@@ -117,8 +111,9 @@ struct GlobalKnobs
     % endif
 
     % endfor
-    GlobalKnobs();
+
     std::string ToString(const char* optPerLinePrefix="");
+    GlobalKnobs();
 };
 extern GlobalKnobs g_GlobalKnobs;
 
diff --git a/src/gallium/drivers/swr/rasterizer/core/knobs_init.h b/src/gallium/drivers/swr/rasterizer/core/knobs_init.h
index ba2df22..12c2a30 100644
--- a/src/gallium/drivers/swr/rasterizer/core/knobs_init.h
+++ b/src/gallium/drivers/swr/rasterizer/core/knobs_init.h
@@ -91,16 +91,18 @@ static inline void ConvertEnvToKnob(const char* pOverride, std::string& knobValu
 template <typename T>
 static inline void InitKnob(T& knob)
 {
-
-    // TODO, read registry first
-
-    // Second, read environment variables
+    // Read environment variables
     const char* pOverride = getenv(knob.Name());
 
     if (pOverride)
     {
-        auto knobValue = knob.Value();
+        auto knobValue = knob.DefaultValue();
         ConvertEnvToKnob(pOverride, knobValue);
         knob.Value(knobValue);
     }
+    else
+    {
+        // Set default value
+        knob.Value(knob.DefaultValue());
+    }
 }
-- 
2.7.4



More information about the mesa-dev mailing list