Add a WebGPU mode that uses EXT_shader_pixel_local_storage

Diffs=
bb00ec119 Add a WebGPU mode that uses EXT_shader_pixel_local_storage (#6048)

Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
diff --git a/.rive_head b/.rive_head
index 8c4cf81..4ffe9fa 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-af873d55a4c80c7ba5982186eed4ceb0a0fe579f
+bb00ec119d2ced89395c70e718419aa970b312d8
diff --git a/build/setup_compiler.lua b/build/setup_compiler.lua
index a8844e6..4947ba3 100644
--- a/build/setup_compiler.lua
+++ b/build/setup_compiler.lua
@@ -2,10 +2,17 @@
 -- premake5 still doesn't accept "--os=emscripten" from the command line. To work around this we add
 -- a custom "--wasm" flag that sets system to "emscripten" for us.
 newoption {
-    trigger = "wasm",
-    description = "use emscripten",
+    trigger = 'emsdk',
+    value = 'type',
+    description = 'Build with emscripten',
+    allowed = {
+        {'none', "don't use emscripten"},
+        {'wasm', 'build WASM with emscripten'},
+        {'js', 'build Javascript with emscripten'},
+    },
+    default = 'none'
 }
-if _OPTIONS['wasm']
+if _OPTIONS['emsdk'] ~= 'none'
 then
     -- Target emscripten via https://github.com/TurkeyMan/premake-emscripten.git
     -- Premake doesn't properly load the _preload.lua for this module, so we load it here manually.
@@ -18,13 +25,25 @@
 
 filter {'system:emscripten'}
 do
+    linkoptions {
+        "-sALLOW_MEMORY_GROWTH",
+    }
+end
+
+filter {'system:emscripten', 'options:emsdk=wasm'}
+do
     buildoptions {
         "-msimd128",
     }
     linkoptions {
-        "-sMIN_WEBGL_VERSION=2",
-        "-sMAX_WEBGL_VERSION=2",
-        "-sALLOW_MEMORY_GROWTH",
+        "-sWASM=1",
+    }
+end
+
+filter {'system:emscripten', 'options:emsdk=js'}
+do
+    linkoptions {
+        "-sWASM=0",
     }
 end