diff --git a/examples/utilities/tools/render/debug.js b/examples/utilities/tools/render/debug.js
index f195c607a4..eba967491b 100644
--- a/examples/utilities/tools/render/debug.js
+++ b/examples/utilities/tools/render/debug.js
@@ -14,9 +14,6 @@ Render.RenderShadowTask.enabled = true;
 var RDT = Render.RenderDeferredTask;
 RDT.AmbientOcclusion.enabled = true;
 RDT.DebugDeferredBuffer.enabled = false;
-["DrawOpaqueDeferred", "DrawTransparentDeferred", "DrawOverlay3DOpaque", "DrawOverlay3DTransparent"]
-    .map(function(name) { return RDT[name]; })
-	.forEach(function(job) { job.maxDrawn = job.numDrawn; });
 
 // Set up the qml ui
 var qml = Script.resolvePath('main.qml');
@@ -39,4 +36,4 @@ function setDebugBufferSize(x) {
     Render.RenderDeferredTask.DebugDeferredBuffer.size = {x: x, y: -1, z: 1, w: 1};
 }
 
-Script.scriptEnding.connect(function() { Render.fromJSON(oldConfig); } );
+Script.scriptEnding.connect(function() { Render.load(oldConfig); } );
diff --git a/examples/utilities/tools/render/main.qml b/examples/utilities/tools/render/main.qml
index 9e825ad4df..22f263b2d0 100644
--- a/examples/utilities/tools/render/main.qml
+++ b/examples/utilities/tools/render/main.qml
@@ -12,98 +12,109 @@ import QtQuick 2.5
 import QtQuick.Controls 1.4
 
 Column {
-    spacing: 8
-
-    Repeater {
-        model: [ "Opaque:DrawOpaqueDeferred", "Transparent:DrawTransparentDeferred",
-                "Opaque Overlays:DrawOverlay3DOpaque", "Transparent Overlays:DrawOverlay3DTransparent" ]
-        ConfigSlider {
-            label: qsTr(modelData.split(":")[0])
-            integral: true
-            config: Render.getConfig(modelData.split(":")[1])
-            property: "maxDrawn"
-            max: config.numDrawn
-        }
-    }
-
-    Row {
-        CheckBox {
-            text: qsTr("Display Status")
-            onCheckedChanged: { Render.getConfig("DrawStatus").showDisplay = checked }
-        }
-        CheckBox {
-            text: qsTr("Network/Physics Status")
-            onCheckedChanged: { Render.getConfig("DrawStatus").showNetwork = checked }
-        }
-    }
-
-    ConfigSlider {
-        label: qsTr("Tone Mapping Exposure")
-        config: Render.getConfig("ToneMapping")
-        property: "exposure"
-        min: -10; max: 10
+    id: root
+    spacing: 16
+    Switch {
+        checked: true
+        onClicked: ui.visible = checked
     }
 
     Column {
-        id: ambientOcclusion
-        property var config: Render.getConfig("AmbientOcclusion")
+        id: ui
+        spacing: 8
 
-        Label { text: qsTr("Ambient Occlusion") }
-        // TODO: Add gpuTimer
-        CheckBox { text: qsTr("Dithering"); checked: ambientOcclusion.config.ditheringEnabled }
         Repeater {
-            model: [
-                "Resolution Level:resolutionLevel:4",
-                "Obscurance Level:obscuranceLevel:1",
-                "Radius:radius:2",
-                "Falloff Bias:falloffBias:0.2",
-                "Edge Sharpness:edgeSharpness:1",
-                "Blur Radius:blurRadius:6",
-                "Blur Deviation:blurDeviation:3"
-            ]
-            ConfigSlider {
-                label: qsTr(modelData.split(":")[0])
-                config: ambientOcclusion.config
-                property: modelData.split(":")[1]
-                max: modelData.split(":")[2]
-            }
-        }
-        Repeater {
-            model: [
-                "Samples:numSamples:32",
-                "Spiral Turns:numSpiralTurns:30:"
-            ]
+            model: [ "Opaque:DrawOpaqueDeferred", "Transparent:DrawTransparentDeferred",
+                    "Opaque Overlays:DrawOverlay3DOpaque", "Transparent Overlays:DrawOverlay3DTransparent" ]
             ConfigSlider {
                 label: qsTr(modelData.split(":")[0])
                 integral: true
-                config: ambientOcclusion.config
-                property: modelData.split(":")[1]
-                max: modelData.split(":")[2]
+                config: Render.getConfig(modelData.split(":")[1])
+                property: "maxDrawn"
+                max: config.numDrawn
+                min: -1
             }
         }
-    }
 
-    Column {
-        id: debug
-        property var config: Render.getConfig("DebugDeferredBuffer")
-
-        function setDebugMode(mode) {
-            debug.config.enabled = (mode != 0);
-            debug.config.mode = mode;
+        Row {
+            CheckBox {
+                text: qsTr("Display Status")
+                onCheckedChanged: { Render.getConfig("DrawStatus").showDisplay = checked }
+            }
+            CheckBox {
+                text: qsTr("Network/Physics Status")
+                onCheckedChanged: { Render.getConfig("DrawStatus").showNetwork = checked }
+            }
         }
 
-        Label { text: qsTr("Debug Buffer") }
-        ExclusiveGroup { id: bufferGroup }
-        Repeater {
-            model: [
-                "Off", "Diffuse", "Metallic", "Roughness", "Normal", "Depth",
-                "Lighting", "Shadow", "Pyramid Depth", "Ambient Occlusion", "Custom Shader"
-            ]
-           RadioButton {
-                text: qsTr(modelData)
-                exclusiveGroup: bufferGroup
-                checked: index == 0
-                onCheckedChanged: if (checked) debug.setDebugMode(index);
+        ConfigSlider {
+            label: qsTr("Tone Mapping Exposure")
+            config: Render.getConfig("ToneMapping")
+            property: "exposure"
+            min: -10; max: 10
+        }
+
+        Column {
+            id: ambientOcclusion
+            property var config: Render.getConfig("AmbientOcclusion")
+
+            Label { text: qsTr("Ambient Occlusion") }
+            // TODO: Add gpuTimer
+            CheckBox { text: qsTr("Dithering"); checked: ambientOcclusion.config.ditheringEnabled }
+            Repeater {
+                model: [
+                    "Resolution Level:resolutionLevel:4",
+                    "Obscurance Level:obscuranceLevel:1",
+                    "Radius:radius:2",
+                    "Falloff Bias:falloffBias:0.2",
+                    "Edge Sharpness:edgeSharpness:1",
+                    "Blur Radius:blurRadius:6",
+                    "Blur Deviation:blurDeviation:3"
+                ]
+                ConfigSlider {
+                    label: qsTr(modelData.split(":")[0])
+                    config: ambientOcclusion.config
+                    property: modelData.split(":")[1]
+                    max: modelData.split(":")[2]
+                }
+            }
+            Repeater {
+                model: [
+                    "Samples:numSamples:32",
+                    "Spiral Turns:numSpiralTurns:30:"
+                ]
+                ConfigSlider {
+                    label: qsTr(modelData.split(":")[0])
+                    integral: true
+                    config: ambientOcclusion.config
+                    property: modelData.split(":")[1]
+                    max: modelData.split(":")[2]
+                }
+            }
+        }
+
+        Column {
+            id: debug
+            property var config: Render.getConfig("DebugDeferredBuffer")
+
+            function setDebugMode(mode) {
+                debug.config.enabled = (mode != 0);
+                debug.config.mode = mode;
+            }
+
+            Label { text: qsTr("Debug Buffer") }
+            ExclusiveGroup { id: bufferGroup }
+            Repeater {
+                model: [
+                    "Off", "Diffuse", "Metallic", "Roughness", "Normal", "Depth",
+                    "Lighting", "Shadow", "Pyramid Depth", "Ambient Occlusion", "Custom Shader"
+                ]
+               RadioButton {
+                    text: qsTr(modelData)
+                    exclusiveGroup: bufferGroup
+                    checked: index == 0
+                    onCheckedChanged: if (checked && index > 0) debug.setDebugMode(index - 1);
+                }
             }
         }
     }