summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2013-03-18 08:42:19 -0700
committerAndreas Boll <andreas.boll.dev@gmail.com>2013-04-17 12:57:23 +0200
commitd0cb3a03c58be0b6dff2e2fae7c4079fff50584f (patch)
treec60c367bbe4184379d177cea8208dd08f2abc3f8
parent9b3701351379a858ce0ce7bccf30d37f58d7dfc1 (diff)
mesa: Disable validate_ir_tree() on release builds.
Since half of ir_validate uses asserts() (the other using printf() then abort()), there's not much use to calling it in a release build. Cuts 6.3% of the startup time of TF2. NOTE: This is a candidate for the stable branches. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> (cherry picked from commit 712bac1f4130cb2ea75c53698cc6428d93b26ed3)
-rw-r--r--src/glsl/ir_validate.cpp6
-rw-r--r--src/glsl/linker.cpp2
2 files changed, 6 insertions, 2 deletions
diff --git a/src/glsl/ir_validate.cpp b/src/glsl/ir_validate.cpp
index ad57a3149b..549cd43294 100644
--- a/src/glsl/ir_validate.cpp
+++ b/src/glsl/ir_validate.cpp
@@ -657,6 +657,11 @@ check_node_type(ir_instruction *ir, void *data)
void
validate_ir_tree(exec_list *instructions)
{
+ /* We shouldn't have any reason to validate IR in a release build,
+ * and it's half composed of assert()s anyway which wouldn't do
+ * anything.
+ */
+#ifdef DEBUG
ir_validate v;
v.run(instructions);
@@ -666,4 +671,5 @@ validate_ir_tree(exec_list *instructions)
visit_tree(ir, check_node_type, NULL);
}
+#endif
}
diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 86371b5e63..30d54a0369 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -1116,13 +1116,11 @@ link_intrastage_shaders(void *mem_ctx,
free(linking_shaders);
-#ifdef DEBUG
/* At this point linked should contain all of the linked IR, so
* validate it to make sure nothing went wrong.
*/
if (linked)
validate_ir_tree(linked->ir);
-#endif
/* Make a pass over all variable declarations to ensure that arrays with
* unspecified sizes have a size specified. The size is inferred from the