diff --git a/src/m_perfstats.c b/src/m_perfstats.c
index 439a9da1cd009106bc80fa4f3c81e3337a0acbdf..b11e0e26aa1065c1c32e4a40267095a43dcff9f3 100644
--- a/src/m_perfstats.c
+++ b/src/m_perfstats.c
@@ -228,10 +228,13 @@ static boolean PS_IsLevelActive(void)
 // Is the row valid in the current context?
 static boolean PS_IsRowValid(perfstatrow_t *row)
 {
-	return !((row->flags & PS_LEVEL && !PS_IsLevelActive()) ||
-		(row->flags & PS_SW && rendermode != render_soft) ||
-		(row->flags & PS_HW && rendermode != render_opengl) ||
-		(row->flags & PS_BATCHING && !cv_glbatching.value));
+	return !((row->flags & PS_LEVEL && !PS_IsLevelActive())
+		|| (row->flags & PS_SW && rendermode != render_soft)
+		|| (row->flags & PS_HW && rendermode != render_opengl)
+#ifdef HWRENDER
+		|| (row->flags & PS_BATCHING && !cv_glbatching.value)
+#endif
+		);
 }
 
 // Should the row be visible on the screen?