summaryrefslogtreecommitdiffstats
path: root/src/glsl/glsl_parser_extras.h
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2010-07-20 11:29:46 -0700
committerIan Romanick <[email protected]>2010-07-21 15:52:58 -0700
commitd5be2acae379783c4aa31243e0a88a9e67e6ca7e (patch)
tree91ebf30796116f1b4d20b6f2fe420a085a59d59e /src/glsl/glsl_parser_extras.h
parent4ccd3c548b9b9a2fee79342445f68d73525bfcdb (diff)
linker: Link built-in functions instead of including them in every shader
This is an invasive set of changes. Each user shader tracks a set of other shaders that contain built-in functions. During compilation, function prototypes are imported from these shaders. During linking, the shaders are linked with these built-in-function shaders just like with any other shader.
Diffstat (limited to 'src/glsl/glsl_parser_extras.h')
-rw-r--r--src/glsl/glsl_parser_extras.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/glsl/glsl_parser_extras.h b/src/glsl/glsl_parser_extras.h
index b50d9eea676..56f6e18e0bd 100644
--- a/src/glsl/glsl_parser_extras.h
+++ b/src/glsl/glsl_parser_extras.h
@@ -125,6 +125,10 @@ struct _mesa_glsl_parse_state {
/** Extensions supported by the OpenGL implementation. */
const struct gl_extensions *extensions;
+
+ /** Shaders containing built-in functions that are used for linking. */
+ struct gl_shader *builtins_to_link[16];
+ unsigned num_builtins_to_link;
};
typedef struct YYLTYPE {