summaryrefslogtreecommitdiff
path: root/builtins/tools/generate_builtins.pl
diff options
context:
space:
mode:
Diffstat (limited to 'builtins/tools/generate_builtins.pl')
-rwxr-xr-xbuiltins/tools/generate_builtins.pl27
1 files changed, 15 insertions, 12 deletions
diff --git a/builtins/tools/generate_builtins.pl b/builtins/tools/generate_builtins.pl
index 8fdef2d974..8b640ab8ff 100755
--- a/builtins/tools/generate_builtins.pl
+++ b/builtins/tools/generate_builtins.pl
@@ -97,23 +97,26 @@ _mesa_glsl_initialize_functions(exec_list *instructions,
{
EOF
-foreach $version (@versions) {
+foreach $version_xs (@versions) {
+ $check = "";
+ if ($version_xs =~ /_vs/) {
+ $check = "state->target == vertex_shader && ";
+ } elsif ($version_xs =~ /_fs/) {
+ $check = "state->target == fragment_shader && ";
+ }
+ $version = $version_xs;
+ $version =~ s/_[vf]s//g;
+
if ($version =~ /^[1-9][0-9][0-9]/) {
- $version_number = $version;
- $version_number =~ s/_[vf]s//g;
- $check = "state->language_version >= $version_number";
- if ($version =~ /_vs/) {
- $check = "$check && state->target == vertex_shader";
- } elsif ($version =~ /_fs/) {
- $check = "$check && state->target == fragment_shader";
- }
+ $check = "${check}state->language_version >= $version";
} else {
# Not a version...an extension name
- $check = "state->${version}_enable";
+ $check = "${check}state->${version}_enable";
}
print " if ($check)\n";
- print " read_builtins(state, instructions, functions_for_$version,\n";
- print " sizeof(functions_for_$version) / ";
+ print " read_builtins(state, instructions,\n";
+ print " functions_for_$version_xs,\n";
+ print " sizeof(functions_for_$version_xs) / ";
print "sizeof(const char *));\n\n"
}