[v2] framework/wflinfo: use x11_egl for gles with mixed_glx_egl

Submitted by Dylan Baker on Oct. 5, 2018, 4:06 p.m.

Details

Message ID 20181005160624.13536-1-dylan@pnwbakers.com
State New
Headers show
Series "framework/wflinfo: use x11_egl for gles with mixed_glx_egl" ( rev: 2 ) in Piglit

Not browsing as part of any series.

Commit Message

Dylan Baker Oct. 5, 2018, 4:06 p.m.
Because wflinfo returns GL legacy (non-profile) for gles on glx.

v2: - If the platform is pure GLX then warn that things aren't going to
      work.
---
 framework/wflinfo.py | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/framework/wflinfo.py b/framework/wflinfo.py
index a568bc344..1655aa0ee 100644
--- a/framework/wflinfo.py
+++ b/framework/wflinfo.py
@@ -1,4 +1,4 @@ 
-# Copyright (c) 2015-2016 Intel Corporation
+# Copyright (c) 2015-2016,2018 Intel Corporation
 
 # Permission is hereby granted, free of charge, to any person obtaining a copy
 # of this software and associated documentation files (the "Software"), to deal
@@ -26,6 +26,7 @@  import os
 import subprocess
 import sys
 import threading
+import warnings
 
 import six
 
@@ -103,7 +104,23 @@  class WflInfo(object):
                 # to something that wflinfo understands.
                 platform = OPTIONS.env['PIGLIT_PLATFORM']
                 if platform == "mixed_glx_egl":
-                    platform = "glx"
+                    if 'gles2' in opts or 'gles3'in opts:
+                        platform = "x11_egl"
+                    else:
+                        platform = "glx"
+                if platform == 'glx' and 'gles2' in opts or 'gles3' in opts:
+                    # There is a bug in waffle Which causes it to return
+                    # a legacy (non-profile) OpenGL instead of OpenGL ES when
+                    # using the GLX platform (not for mixed_glx_egl). If the
+                    # user explicitly asks for GLX then the tests are going to
+                    # skip whether we fast skip them or if we let them run.
+                    # Since they're going to skip (even if it's wrong), let's
+                    # skip them quickly.
+                    #
+                    # https://github.com/waffle-gl/waffle/issues/50
+                    warnings.warn(
+                        'Fast skipping for GLES may not work correctly with '
+                        'pure GLX.')
 
                 if sys.platform in ['windows', 'cygwin']:
                     bin = 'wflinfo.exe'

Comments

On Fri, 5 Oct 2018 at 17:06, Dylan Baker <dylan@pnwbakers.com> wrote:
>
> Because wflinfo returns GL legacy (non-profile) for gles on glx.
>
> v2: - If the platform is pure GLX then warn that things aren't going to
>       work.
> ---
>  framework/wflinfo.py | 21 +++++++++++++++++++--
>  1 file changed, 19 insertions(+), 2 deletions(-)
>
> diff --git a/framework/wflinfo.py b/framework/wflinfo.py
> index a568bc344..1655aa0ee 100644
> --- a/framework/wflinfo.py
> +++ b/framework/wflinfo.py
> @@ -1,4 +1,4 @@
> -# Copyright (c) 2015-2016 Intel Corporation
> +# Copyright (c) 2015-2016,2018 Intel Corporation
>
>  # Permission is hereby granted, free of charge, to any person obtaining a copy
>  # of this software and associated documentation files (the "Software"), to deal
> @@ -26,6 +26,7 @@ import os
>  import subprocess
>  import sys
>  import threading
> +import warnings
>
>  import six
>
> @@ -103,7 +104,23 @@ class WflInfo(object):
>                  # to something that wflinfo understands.
>                  platform = OPTIONS.env['PIGLIT_PLATFORM']
>                  if platform == "mixed_glx_egl":
> -                    platform = "glx"
> +                    if 'gles2' in opts or 'gles3'in opts:
> +                        platform = "x11_egl"
> +                    else:
> +                        platform = "glx"
> +                if platform == 'glx' and 'gles2' in opts or 'gles3' in opts:
> +                    # There is a bug in waffle Which causes it to return
> +                    # a legacy (non-profile) OpenGL instead of OpenGL ES when
> +                    # using the GLX platform (not for mixed_glx_egl). If the
> +                    # user explicitly asks for GLX then the tests are going to
> +                    # skip whether we fast skip them or if we let them run.
> +                    # Since they're going to skip (even if it's wrong), let's
> +                    # skip them quickly.
> +                    #
> +                    # https://github.com/waffle-gl/waffle/issues/50

Things seems to be working fine on my system. I've added some nits to
the issue report, can you please confirm we're thinking about the same
thing.

Thanks
Emil
On Friday, 2018-10-05 09:06:24 -0700, Dylan Baker wrote:
> Because wflinfo returns GL legacy (non-profile) for gles on glx.
> 
> v2: - If the platform is pure GLX then warn that things aren't going to
>       work.
> ---
>  framework/wflinfo.py | 21 +++++++++++++++++++--
>  1 file changed, 19 insertions(+), 2 deletions(-)
> 
> diff --git a/framework/wflinfo.py b/framework/wflinfo.py
> index a568bc344..1655aa0ee 100644
> --- a/framework/wflinfo.py
> +++ b/framework/wflinfo.py
> @@ -1,4 +1,4 @@
> -# Copyright (c) 2015-2016 Intel Corporation
> +# Copyright (c) 2015-2016,2018 Intel Corporation
>  
>  # Permission is hereby granted, free of charge, to any person obtaining a copy
>  # of this software and associated documentation files (the "Software"), to deal
> @@ -26,6 +26,7 @@ import os
>  import subprocess
>  import sys
>  import threading
> +import warnings
>  
>  import six
>  
> @@ -103,7 +104,23 @@ class WflInfo(object):
>                  # to something that wflinfo understands.
>                  platform = OPTIONS.env['PIGLIT_PLATFORM']
>                  if platform == "mixed_glx_egl":
> -                    platform = "glx"
> +                    if 'gles2' in opts or 'gles3'in opts:
Space still missing :P                       ~~~~~~~^

(although I just tested, and python seems to not care, but positive and
negative work fine, so...)

> +                        platform = "x11_egl"
> +                    else:
> +                        platform = "glx"
> +                if platform == 'glx' and 'gles2' in opts or 'gles3' in opts:
> +                    # There is a bug in waffle Which causes it to return
> +                    # a legacy (non-profile) OpenGL instead of OpenGL ES when
> +                    # using the GLX platform (not for mixed_glx_egl). If the
> +                    # user explicitly asks for GLX then the tests are going to
> +                    # skip whether we fast skip them or if we let them run.
> +                    # Since they're going to skip (even if it's wrong), let's
> +                    # skip them quickly.
> +                    #
> +                    # https://github.com/waffle-gl/waffle/issues/50
> +                    warnings.warn(
> +                        'Fast skipping for GLES may not work correctly with '
> +                        'pure GLX.')
>  
>                  if sys.platform in ['windows', 'cygwin']:
>                      bin = 'wflinfo.exe'
> -- 
> 2.19.0
> 
> _______________________________________________
> Piglit mailing list
> Piglit@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/piglit
Quoting Emil Velikov (2018-10-11 03:48:20)
> On Fri, 5 Oct 2018 at 17:06, Dylan Baker <dylan@pnwbakers.com> wrote:
> >
> > Because wflinfo returns GL legacy (non-profile) for gles on glx.
> >
> > v2: - If the platform is pure GLX then warn that things aren't going to
> >       work.
> > ---
> >  framework/wflinfo.py | 21 +++++++++++++++++++--
> >  1 file changed, 19 insertions(+), 2 deletions(-)
> >
> > diff --git a/framework/wflinfo.py b/framework/wflinfo.py
> > index a568bc344..1655aa0ee 100644
> > --- a/framework/wflinfo.py
> > +++ b/framework/wflinfo.py
> > @@ -1,4 +1,4 @@
> > -# Copyright (c) 2015-2016 Intel Corporation
> > +# Copyright (c) 2015-2016,2018 Intel Corporation
> >
> >  # Permission is hereby granted, free of charge, to any person obtaining a copy
> >  # of this software and associated documentation files (the "Software"), to deal
> > @@ -26,6 +26,7 @@ import os
> >  import subprocess
> >  import sys
> >  import threading
> > +import warnings
> >
> >  import six
> >
> > @@ -103,7 +104,23 @@ class WflInfo(object):
> >                  # to something that wflinfo understands.
> >                  platform = OPTIONS.env['PIGLIT_PLATFORM']
> >                  if platform == "mixed_glx_egl":
> > -                    platform = "glx"
> > +                    if 'gles2' in opts or 'gles3'in opts:
> > +                        platform = "x11_egl"
> > +                    else:
> > +                        platform = "glx"
> > +                if platform == 'glx' and 'gles2' in opts or 'gles3' in opts:
> > +                    # There is a bug in waffle Which causes it to return
> > +                    # a legacy (non-profile) OpenGL instead of OpenGL ES when
> > +                    # using the GLX platform (not for mixed_glx_egl). If the
> > +                    # user explicitly asks for GLX then the tests are going to
> > +                    # skip whether we fast skip them or if we let them run.
> > +                    # Since they're going to skip (even if it's wrong), let's
> > +                    # skip them quickly.
> > +                    #
> > +                    # https://github.com/waffle-gl/waffle/issues/50
> 
> Things seems to be working fine on my system. I've added some nits to
> the issue report, can you please confirm we're thinking about the same
> thing.
> 
> Thanks
> Emil

I've commented on the waffle bug. I'm willing to hold off on this patch until we
can confirm the waffle issue as this doesn't affect us (we use gbm in CI).

Dylan