[Mesa-dev] [PATCH] glsl: skip stringification in preprocessor if in unreachable branch

Timothy Arceri tarceri at itsqueeze.com
Wed Aug 29 01:36:51 UTC 2018


This fixes compilation of some "No Mans Sky" shaders where the stringification
happens in branches intended for DX12.

---

 Piglit tests: https://patchwork.freedesktop.org/series/48850/

 src/compiler/glsl/glcpp/glcpp-lex.l | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/compiler/glsl/glcpp/glcpp-lex.l b/src/compiler/glsl/glcpp/glcpp-lex.l
index 9cfcc120222..fe5845acd4e 100644
--- a/src/compiler/glsl/glcpp/glcpp-lex.l
+++ b/src/compiler/glsl/glcpp/glcpp-lex.l
@@ -420,8 +420,10 @@ HEXADECIMAL_INTEGER	0[xX][0-9a-fA-F]+[uU]?
 
 	/* This will catch any non-directive garbage after a HASH */
 <HASH>{NONSPACE} {
-	BEGIN INITIAL;
-	RETURN_TOKEN (GARBAGE);
+	if (!parser->skipping) {
+		BEGIN INITIAL;
+		RETURN_TOKEN (GARBAGE);
+	}
 }
 
 	/* An identifier immediately followed by '(' */
-- 
2.17.1



More information about the mesa-dev mailing list