[perf_skottiewasm_lottieweb] Add flag for use_gpu

If flag is true then run with headless=false and:
* --ignore-gpu-blacklist
* --enable-gpu-rasterization

NoTry: true
Bug: skia:9237
Change-Id: I8c3c40ee34fe3d3e92b41185c30afb91459a3f5e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/227060
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Ravi Mistry <rmistry@google.com>
diff --git a/tools/lottie-web-perf/lottie-web-perf.js b/tools/lottie-web-perf/lottie-web-perf.js
index cfe1591..2981165 100644
--- a/tools/lottie-web-perf/lottie-web-perf.js
+++ b/tools/lottie-web-perf/lottie-web-perf.js
@@ -22,6 +22,11 @@
     description: 'The perf file to write. Defaults to perf.json',
   },
   {
+    name: 'use_gpu',
+    description: 'Whether we should run in non-headless mode with GPU.',
+    type: Boolean,
+  },
+  {
     name: 'port',
     description: 'The port number to use, defaults to 8081.',
     type: Number,
@@ -104,15 +109,19 @@
   console.log('- Launching chrome for ' + options.input);
   let browser;
   let page;
+  const headless = !options.use_gpu;
+  let browser_args = [
+      '--no-sandbox',
+      '--disable-setuid-sandbox',
+      '--window-size=' + viewPort.width + ',' + viewPort.height,
+  ];
+  if (options.use_gpu) {
+    browser_args.push('--ignore-gpu-blacklist');
+    browser_args.push('--enable-gpu-rasterization');
+  }
+  console.log("Running with headless: " + headless + " args: " + browser_args);
   try {
-    browser = await puppeteer.launch({
-      headless: true,
-      args: [
-        '--no-sandbox',
-        '--disable-setuid-sandbox',
-        '--window-size=' + viewPort.width + ',' + viewPort.height
-      ]
-    });
+    browser = await puppeteer.launch({headless: headless, args: browser_args});
     page = await browser.newPage();
     await page.setViewport(viewPort);
   } catch (e) {
diff --git a/tools/skottie-wasm-perf/skottie-wasm-perf.js b/tools/skottie-wasm-perf/skottie-wasm-perf.js
index 8db7aaa..d7ca2be 100644
--- a/tools/skottie-wasm-perf/skottie-wasm-perf.js
+++ b/tools/skottie-wasm-perf/skottie-wasm-perf.js
@@ -32,6 +32,11 @@
     description: 'The perf file to write. Defaults to perf.json',
   },
   {
+    name: 'use_gpu',
+    description: 'Whether we should run in non-headless mode with GPU.',
+    type: Boolean,
+  },
+  {
     name: 'port',
     description: 'The port number to use, defaults to 8081.',
     type: Number,
@@ -118,15 +123,19 @@
   console.log('- Launching chrome for ' + options.input);
   let browser;
   let page;
+  const headless = !options.use_gpu;
+  let browser_args = [
+      '--no-sandbox',
+      '--disable-setuid-sandbox',
+      '--window-size=' + viewPort.width + ',' + viewPort.height,
+  ];
+  if (options.use_gpu) {
+    browser_args.push('--ignore-gpu-blacklist');
+    browser_args.push('--enable-gpu-rasterization');
+  }
+  console.log("Running with headless: " + headless + " args: " + browser_args);
   try {
-    browser = await puppeteer.launch({
-      headless: true,
-      args: [
-        '--no-sandbox',
-        '--disable-setuid-sandbox',
-        '--window-size=' + viewPort.width + ',' + viewPort.height
-      ]
-    });
+    browser = await puppeteer.launch({headless: headless, args: browser_args});
     page = await browser.newPage();
     await page.setViewport(viewPort);
   } catch (e) {