[03/35] framework: add --glsl option

Submitted by apinheiro on Aug. 9, 2018, 11:35 a.m.

Details

Message ID 20180809113614.5122-4-apinheiro@igalia.com
State New
Headers show
Series "ARB_gl_spirv: all tests so far" ( rev: 1 ) in Piglit

Not browsing as part of any series.

Commit Message

apinheiro Aug. 9, 2018, 11:35 a.m.
So when executing shader tests, they will be executed with -glsl. This
is the force GLSL mode, that is only relevant if the shader test
includes SPIR-V shaders.

So for example:
./piglit run tests/shader.py -t ARB_gl_spirv --glsl results/results

Will try to run all the shader tests for ARB_gl_spirv using GLSL
instead of the default (for that extension) SPIR-V.
---
 framework/options.py          |  1 +
 framework/programs/run.py     |  6 ++++++
 framework/test/shader_test.py | 10 ++++++++--
 3 files changed, 15 insertions(+), 2 deletions(-)

Patch hide | download patch | download mbox

diff --git a/framework/options.py b/framework/options.py
index f5f32af78..0500640b2 100644
--- a/framework/options.py
+++ b/framework/options.py
@@ -59,6 +59,7 @@  class _Options(object):  # pylint: disable=too-many-instance-attributes
         self.deqp_mustpass = False
         self.process_isolation = True
         self.jobs = None
+        self.force_glsl = False
 
         # env is used to set some base environment variables that are not going
         # to change across runs, without sending them to os.environ which is
diff --git a/framework/programs/run.py b/framework/programs/run.py
index 8011a2966..23cb5e188 100644
--- a/framework/programs/run.py
+++ b/framework/programs/run.py
@@ -238,6 +238,10 @@  def _run_parser(input_):
                         type=path.realpath,
                         metavar="<Results Path>",
                         help="Path to results folder")
+    parser.add_argument("--glsl",
+                        action="store_true",
+                        help="Run shader runner tests with the -glsl (force GLSL) option")
+
     return parser.parse_args(unparsed)
 
 
@@ -316,6 +320,7 @@  def run(input_):
     options.OPTIONS.deqp_mustpass = args.deqp_mustpass
     options.OPTIONS.process_isolation = args.process_isolation
     options.OPTIONS.jobs = args.jobs
+    options.OPTIONS.force_glsl = args.glsl
 
     # Set the platform to pass to waffle
     options.OPTIONS.env['PIGLIT_PLATFORM'] = args.platform
@@ -430,6 +435,7 @@  def resume(input_):
     options.OPTIONS.process_isolation = results.options['process_isolation']
     options.OPTIONS.jobs = args.jobs
     options.OPTIONS.no_retry = args.no_retry
+    options.OPTIONS.force_glsl = results.options['glsl']
 
     core.get_config(args.config_file)
 
diff --git a/framework/test/shader_test.py b/framework/test/shader_test.py
index de3e92f4b..40fdc3c09 100644
--- a/framework/test/shader_test.py
+++ b/framework/test/shader_test.py
@@ -32,6 +32,7 @@  import re
 
 from framework import exceptions
 from framework import status
+from framework import options
 from .base import ReducedProcessMixin, TestIsSkip
 from .opengl import FastSkipMixin, FastSkip
 from .piglit_test import PiglitBaseTest, ROOT_DIR
@@ -188,10 +189,15 @@  class ShaderTest(FastSkipMixin, PiglitBaseTest):
 
     @PiglitBaseTest.command.getter
     def command(self):
-        """ Add -auto and -fbo to the test command """
+        """ Add -auto, -fbo and -glsl (if needed) to the test command """
+
         command = super(ShaderTest, self).command
         shaderfile = os.path.join(ROOT_DIR, command[1])
-        return [command[0]] + [shaderfile, '-auto', '-fbo']
+
+        if options.OPTIONS.force_glsl:
+            return [command[0]] + [shaderfile, '-auto', '-fbo', '-glsl']
+        else:
+            return [command[0]] + [shaderfile, '-auto', '-fbo']
 
     @command.setter
     def command(self, new):