[Mesa-dev] [PATCH shader-db 2/3] Remove split-to-files.py
Marek Olšák
maraeo at gmail.com
Mon Jul 11 18:10:45 UTC 2016
From: Marek Olšák <marek.olsak at amd.com>
Use MESA_SHADER_CAPTURE_PATH instead.
---
split-to-files.py | 138 ------------------------------------------------------
1 file changed, 138 deletions(-)
delete mode 100755 split-to-files.py
diff --git a/split-to-files.py b/split-to-files.py
deleted file mode 100755
index 721b2da..0000000
--- a/split-to-files.py
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/usr/bin/env python3
-
-import re
-import os
-import argparse
-
-
-def parse_input(infile):
- shaders = dict()
- programs = dict()
- shadertuple = ("bad", 0)
- prognum = ""
- reading = False
- is_glsl = True
-
- for line in infile.splitlines():
- declmatch = re.match(
- r"GLSL (.*) shader (.*) source for linked program (.*):", line)
- arbmatch = re.match(
- r"ARB_([^_]*)_program source for program (.*):", line)
- if declmatch:
- shadertype = declmatch.group(1)
- shadernum = declmatch.group(2)
- prognum = declmatch.group(3)
- shadertuple = (shadertype, shadernum)
-
- # don't save driver-internal shaders.
- if prognum == "0":
- continue
-
- if prognum not in shaders:
- shaders[prognum] = dict()
- if shadertuple in shaders[prognum]:
- print("Warning: duplicate", shadertype, " shader ", shadernum,
- "in program", prognum, "...tossing old shader.")
- shaders[prognum][shadertuple] = ''
- reading = True
- is_glsl = True
- print("Reading program {0} {1} shader {2}".format(
- prognum, shadertype, shadernum))
- elif arbmatch:
- shadertype = arbmatch.group(1)
- prognum = arbmatch.group(2)
- if prognum in programs:
- print("dupe!")
- exit(1)
- programs[prognum] = (shadertype, '')
- reading = True
- is_glsl = False
- print("Reading program {0} {1} shader".format(prognum, shadertype))
- elif re.match("GLSL IR for ", line):
- reading = False
- elif re.match("Mesa IR for ", line):
- reading = False
- elif re.match("GLSL source for ", line):
- reading = False
- elif reading:
- if is_glsl:
- shaders[prognum][shadertuple] += line + '\n'
- else:
- type, source = programs[prognum]
- programs[prognum] = (type, ''.join([source, line, '\n']))
-
- return (shaders, programs)
-
-
-def write_shader_test(filename, shaders):
- print("Writing {0}".format(filename))
- out = open(filename, 'w')
-
- min_version = 110
- for stage, num in shaders:
- shader = shaders[(stage, num)]
- m = re.match(r"^#version (\d\d\d)", shader)
- if m:
- version = int(m.group(1), 10)
- if version > min_version:
- min_version = version
-
- out.write("[require]\n")
- out.write("GLSL >= %.2f\n" % (min_version / 100.))
- out.write("\n")
-
- for stage, num in shaders:
- if stage == "vertex":
- out.write("[vertex shader]\n")
- elif stage == "fragment":
- out.write("[fragment shader]\n")
- elif stage == "geometry":
- out.write("[geometry shader]\n")
- elif stage == "tess ctrl" or stage == "tessellation control":
- out.write("[tessellation control shader]\n")
- elif stage == "tess eval" or stage == "tessellation evaluation":
- out.write("[tessellation evaluation shader]\n")
- else:
- assert False, stage
- out.write(shaders[(stage, num)])
-
- out.close()
-
-def write_arb_shader_test(filename, type, source):
- print("Writing {0}".format(filename))
- out = open(filename, 'w')
- out.write("[require]\n")
- out.write("GL_ARB_{0}_program\n".format(type))
- out.write("\n")
- out.write("[{0} program]\n".format(type))
- out.write(source)
- # INTEL_DEBUG won't output anything for ARB programs unless you draw
- out.write("\n[test]\ndraw rect -1 -1 1 2\n");
- out.close()
-
-def write_files(directory, shaders, programs):
- for prog in shaders:
- write_shader_test("{0}/{1}.shader_test".format(directory, prog),
- shaders[prog])
- for prognum in programs:
- prog = programs[prognum]
- write_arb_shader_test("{0}/{1}p-{2}.shader_test".format(directory,
- prog[0][0], prognum), prog[0], prog[1])
-
-def main():
- parser = argparse.ArgumentParser()
- parser.add_argument('appname', help='Output directory (application name)')
- parser.add_argument('mesadebug', help='MESA_GLSL=dump output file')
- args = parser.parse_args()
-
- dirname = "shaders/{0}".format(args.appname)
- if not os.path.isdir(dirname):
- os.mkdir(dirname)
-
- with open(args.mesadebug, 'r') as infile:
- shaders, programs = parse_input(infile.read())
-
- write_files(dirname, shaders, programs)
-
-if __name__ == "__main__":
- main()
--
2.7.4
More information about the mesa-dev
mailing list