diff --git a/libs/hwui/Properties.cpp b/libs/hwui/Properties.cpp
index 18fab8e..c804418 100644
--- a/libs/hwui/Properties.cpp
+++ b/libs/hwui/Properties.cpp
@@ -88,8 +88,7 @@
 
 StretchEffectBehavior Properties::stretchEffectBehavior = StretchEffectBehavior::ShaderHWUI;
 
-bool Properties::drawingEnabled = true;
-OverrideDrawingEnabled Properties::overrideDrawingEnabled = OverrideDrawingEnabled::Default;
+DrawingEnabled Properties::drawingEnabled = DrawingEnabled::NotInitialized;
 
 bool Properties::load() {
     bool prevDebugLayersUpdates = debugLayersUpdates;
@@ -144,10 +143,8 @@
 
     enableWebViewOverlays = base::GetBoolProperty(PROPERTY_WEBVIEW_OVERLAYS_ENABLED, false);
 
-    drawingEnabled = base::GetBoolProperty(PROPERTY_DRAWING_ENABLED, true);
-    if (!drawingEnabled) {
-        enableRTAnimations = false;
-    }
+    // call isDrawingEnabled to force loading of the property
+    isDrawingEnabled();
 
     return (prevDebugLayersUpdates != debugLayersUpdates) || (prevDebugOverdraw != debugOverdraw);
 }
@@ -219,16 +216,17 @@
 }
 
 void Properties::setDrawingEnabled(bool newDrawingEnabled) {
-    overrideDrawingEnabled =
-            newDrawingEnabled ? OverrideDrawingEnabled::On : OverrideDrawingEnabled::Off;
+    drawingEnabled = newDrawingEnabled ? DrawingEnabled::On : DrawingEnabled::Off;
     enableRTAnimations = newDrawingEnabled;
 }
 
 bool Properties::isDrawingEnabled() {
-    if (overrideDrawingEnabled == OverrideDrawingEnabled::Default) {
-        return drawingEnabled;
+    if (drawingEnabled == DrawingEnabled::NotInitialized) {
+        bool drawingEnabledProp = base::GetBoolProperty(PROPERTY_DRAWING_ENABLED, true);
+        drawingEnabled = drawingEnabledProp ? DrawingEnabled::On : DrawingEnabled::Off;
+        enableRTAnimations = drawingEnabledProp;
     }
-    return overrideDrawingEnabled == OverrideDrawingEnabled::On;
+    return drawingEnabled == DrawingEnabled::On;
 }
 
 }  // namespace uirenderer
diff --git a/libs/hwui/Properties.h b/libs/hwui/Properties.h
index 73fccb6..7f9782b 100644
--- a/libs/hwui/Properties.h
+++ b/libs/hwui/Properties.h
@@ -214,7 +214,7 @@
     UniformScale  // Uniform scale stretch everywhere
 };
 
-enum class OverrideDrawingEnabled { Default, On, Off };
+enum class DrawingEnabled { NotInitialized, On, Off };
 
 /**
  * Renderthread-only singleton which manages several static rendering properties. Most of these
@@ -309,9 +309,8 @@
         stretchEffectBehavior = behavior;
     }
 
-    // Represents if GL drawing is enabled. Should only be false in headless testing environments
-    static bool drawingEnabled;
-    static OverrideDrawingEnabled overrideDrawingEnabled;
+    // Represents if drawing is enabled. Should only be Off in headless testing environments
+    static DrawingEnabled drawingEnabled;
     static bool isDrawingEnabled();
     static void setDrawingEnabled(bool enable);
 
