[Mesa-dev] [PATCH v2 i-g-t] igt/list-workarounds: Extend the script to Mesa
Dylan Baker
baker.dylan.c at gmail.com
Sat Feb 6 00:12:08 UTC 2016
Quoting Damien Lespiau (2016-02-05 15:46:51)
> On Fri, Feb 05, 2016 at 01:55:19PM -0800, Sameer Kibey wrote:
> > Updated the list-workarounds script so that it
> > can parse Mesa directory if provided. Moved the
> > common code to a separate function to allow
> > reuse for both kernel and mesa.
> >
> > The new command line is:
> > Usage: list-workarounds [options] path-to-kernel
> > -k path-to-kernel -m path-to-mesa
> >
> > The legacy usage is retained to avoid breaking
> > backwards compatibility. New parameters -k and
> > -m are added for the new behavior.
> >
> > Either kernel or mesa or both paths can be specified.
> > If path-to-mesa is invalid, error is reported.
> >
> > Signed-off-by: Sameer Kibey <sameer.kibey at intel.com>
>
> Pushed thanks for the patch.
>
> --
> Damien
>
> > ---
> > scripts/list-workarounds | 74 ++++++++++++++++++++++++++++++++++--------------
> > 1 file changed, 53 insertions(+), 21 deletions(-)
> >
> > diff --git a/scripts/list-workarounds b/scripts/list-workarounds
> > index d11b6a9..8b41ae5 100755
> > --- a/scripts/list-workarounds
> > +++ b/scripts/list-workarounds
> > @@ -18,7 +18,7 @@ def find_nth(haystack, needle, n):
> > return start
> >
> > valid_platforms = ('ctg', 'elk', 'ilk', 'snb', 'ivb', 'vlv', 'hsw', 'bdw',
> > - 'chv', 'skl', 'bxt')
> > + 'chv', 'skl', 'bxt', 'kbl')
> > def parse_platforms(line, p):
> > l = p.split(',')
> > for p in l:
> > @@ -65,9 +65,15 @@ def execute(cmd):
> > return out, err
> >
> > def parse_options(args):
> > - usage = "Usage: list-workarounds [options] path-to-kernel"
> > + usage = "Usage: list-workarounds [options] path-to-kernel -k path-to-kernel -m path-to-mesa"
> > parser = optparse.OptionParser(usage, version=1.0)
> >
> > + parser.add_option("-k", "--kernel-path", dest="kernel_path", default=None,
> > + help="path to kernel")
> > +
> > + parser.add_option("-m", "--mesa-path", dest="mesa_path", default=None,
> > + help="path to mesa")
> > +
> > parser.add_option("-v", "--verbose", action="store_true",
> > dest="verbose", default=False,
> > help="be more verbose")
> > @@ -76,38 +82,64 @@ def parse_options(args):
> > help="List workarounds for the specified platform")
> >
> > (options, args) = parser.parse_args()
> > -
> > return (options, args)
> >
> > -if __name__ == '__main__':
> > - (options, args) = parse_options(sys.argv[1:])
> > - verbose = options.verbose
> > -
> > - if not len(args):
> > - sys.stderr.write("error: A path to a kernel tree is required\n")
> > - sys.exit(1)
> > -
> > - kernel_path = args[0]
> > - kconfig = os.path.join(kernel_path, 'Kconfig')
> > - if not os.path.isfile(kconfig):
> > - sys.stderr.write("error: %s does not point to a kernel tree \n"
> > - % kernel_path)
> > - sys.exit(1)
> > -
> > - i915_dir = os.path.join('drivers', 'gpu', 'drm', 'i915')
> > +def print_workarounds(project_root, driver_dir, project):
> > olddir = os.getcwd()
> > - os.chdir(kernel_path)
> > + os.chdir(project_root)
> > work_arounds, err = execute(['git', 'grep', '-n',
> > '-e', 'W[aA][A-Z0-9][a-zA-Z0-9_]\+',
> > - i915_dir])
> > + driver_dir])
> > os.chdir(olddir)
> > if err:
> > print(err)
> > sys.exit(1)
> >
> > parse(work_arounds)
> > + print "\nList of workarounds found in %s:" % project
Hey Damien, the script says it's python 3, and this ^^^ is broken syntax
in python 3 (but not in 2).
> > for wa in sorted(workarounds.keys()):
> > if not options.platform:
> > print("%s: %s" % (wa, ', '.join(workarounds[wa])))
> > elif options.platform in workarounds[wa]:
> > print(wa)
> > +
> > +
> > +if __name__ == '__main__':
> > + (options, args) = parse_options(sys.argv)
> > + verbose = options.verbose
> > + kernel_path = None
> > +
> > + if not len(args) and options.kernel_path == None and options.mesa_path == None:
> > + sys.stderr.write("error: A path to either a kernel tree or Mesa is required\n")
> > + sys.exit(1)
> > +
> > + if len(args):
> > + kernel_path = args[0]
> > + elif options.kernel_path != None:
> > + kernel_path = options.kernel_path
> > +
> > + if kernel_path != None:
> > + # --- list Kernel workarounds if path is provided ---
> > + kconfig = os.path.join(kernel_path, 'Kconfig')
> > + if not os.path.isfile(kconfig):
> > + sys.stderr.write("error: %s does not point to a kernel tree \n"
> > + % kernel_path)
> > + sys.exit(1)
> > +
> > + i915_dir = os.path.join('drivers', 'gpu', 'drm', 'i915')
> > + print_workarounds(kernel_path, i915_dir, "kernel")
> > +
> > + # --- list mesa workarounds if path is provided ---
> > + if options.mesa_path != None:
> > + # reset workarounds array
> > + workarounds = {}
> > +
> > + mesa_path = options.mesa_path
> > + i965_dir = os.path.join('src', 'mesa', 'drivers', 'dri', 'i965')
> > + mesa_dir = os.path.join(mesa_path, i965_dir)
> > + if not os.path.exists(mesa_dir):
> > + sys.stderr.write("error: %s does not point to a valid mesa path \n"
> > + % mesa_path)
> > + sys.exit(1)
> > +
> > + print_workarounds(mesa_path, i965_dir, "Mesa")
> > --
> > 1.9.1
> >
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: signature
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20160205/a3c0d2e7/attachment.sig>
More information about the mesa-dev
mailing list