Fix more bit rotting in webgpu_player

Diffs=
b03d365c93 Fix more bit rotting in webgpu_player (#8906)

Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
diff --git a/.rive_head b/.rive_head
index ae0cbac..fb10e0b 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-77a886e2855287d72c853d3da89a09db3f139e42
+b03d365c93d0d52f0f05ae598deacbf7dd330a53
diff --git a/renderer/premake5.lua b/renderer/premake5.lua
index bded3c2..cc27fc8 100644
--- a/renderer/premake5.lua
+++ b/renderer/premake5.lua
@@ -9,161 +9,163 @@
     dofile(RIVE_RUNTIME_DIR .. '/skia/renderer/build/premake5.lua')
 end
 
-project('path_fiddle')
-do
-    dependson('rive')
-    kind('ConsoleApp')
-    includedirs({
-        'include',
-        RIVE_RUNTIME_DIR .. '/include',
-        'include',
-        RIVE_RUNTIME_DIR .. '/renderer/src',
-    })
-    externalincludedirs({
-        'glad',
-        RIVE_RUNTIME_DIR .. '/skia/dependencies/glfw/include',
-        yoga,
-    })
-
-    flags({ 'FatalCompileWarnings' })
-
-    defines({ 'YOGA_EXPORT=' })
-
-    files({ 'path_fiddle/**.cpp' })
-
-    links({
-        'rive',
-        'rive_pls_renderer',
-        'rive_decoders',
-        'libwebp',
-        'rive_harfbuzz',
-        'rive_sheenbidi',
-        'rive_yoga',
-    })
-    filter({ 'options:not no_rive_png' })
+if not _OPTIONS['with-webgpu'] then
+    project('path_fiddle')
     do
-        links({ 'zlib', 'libpng' })
-    end
-    filter({ 'options:not no_rive_jpeg' })
-    do
-        links({ 'libjpeg' })
-    end
-    filter({})
-
-    if _OPTIONS['with_vulkan'] then
-        dofile('rive_vk_bootstrap/bootstrap_project.lua')
-    end
-
-    filter('action:xcode4')
-    do
-        -- xcode doesnt like angle brackets except for -isystem
-        -- should use externalincludedirs but GitHub runners dont have latest premake5 binaries
-        buildoptions({ '-isystem' .. yoga })
-    end
-
-    filter({ 'toolset:not msc' })
-    do
-        buildoptions({ '-Wshorten-64-to-32' })
-    end
-
-    filter('options:with-skia')
-    do
+        dependson('rive')
+        kind('ConsoleApp')
         includedirs({
-            RIVE_RUNTIME_DIR .. '/skia/renderer/include',
-            RIVE_RUNTIME_DIR .. '/skia/dependencies',
-            RIVE_RUNTIME_DIR .. '/skia/dependencies/skia',
+            'include',
+            RIVE_RUNTIME_DIR .. '/include',
+            'include',
+            RIVE_RUNTIME_DIR .. '/renderer/src',
         })
-        defines({ 'RIVE_SKIA', 'SK_GL' })
-        libdirs({ RIVE_RUNTIME_DIR .. '/skia/dependencies/skia/out/static' })
-        links({ 'skia', 'rive_skia_renderer' })
-    end
-
-    filter('system:windows')
-    do
-        architecture('x64')
-        defines({ 'RIVE_WINDOWS', '_CRT_SECURE_NO_WARNINGS' })
-        libdirs({
-            RIVE_RUNTIME_DIR .. '/skia/dependencies/glfw_build/src/Release',
+        externalincludedirs({
+            'glad',
+            RIVE_RUNTIME_DIR .. '/skia/dependencies/glfw/include',
+            yoga,
         })
-        links({ 'glfw3', 'opengl32', 'd3d11', 'dxgi', 'd3dcompiler' })
-    end
 
-    filter('system:macosx')
-    do
-        files({ 'path_fiddle/**.mm' })
-        buildoptions({ '-fobjc-arc' })
-        links({
-            'glfw3',
-            'Cocoa.framework',
-            'Metal.framework',
-            'QuartzCore.framework',
-            'IOKit.framework',
-        })
-        libdirs({ RIVE_RUNTIME_DIR .. '/skia/dependencies/glfw_build/src' })
-    end
+        flags({ 'FatalCompileWarnings' })
 
-    filter('system:linux')
-    do
-        links({ 'glfw3' })
-        libdirs({ RIVE_RUNTIME_DIR .. '/skia/dependencies/glfw_build/src' })
-    end
-
-    filter('options:with-dawn')
-    do
-        includedirs({
-            'dependencies/dawn/include',
-            'dependencies/dawn/out/release/gen/include',
-        })
-        libdirs({
-            'dependencies/dawn/out/release/obj/src/dawn',
-            'dependencies/dawn/out/release/obj/src/dawn/native',
-            'dependencies/dawn/out/release/obj/src/dawn/platform',
-            'dependencies/dawn/out/release/obj/src/dawn/platform',
-        })
-        links({
-            'dawn_native_static',
-            'webgpu_dawn',
-            'dawn_platform_static',
-            'dawn_proc_static',
-        })
-    end
-
-    filter({ 'options:with-dawn', 'system:windows' })
-    do
-        links({ 'dxguid' })
-    end
-
-    filter({ 'options:with-dawn', 'system:macosx' })
-    do
-        links({ 'IOSurface.framework' })
-    end
-
-    filter('system:emscripten')
-    do
-        targetname('path_fiddle.js')
-        linkoptions({
-            '-sUSE_GLFW=3',
-            '-sMIN_WEBGL_VERSION=2',
-            '-sMAX_WEBGL_VERSION=2',
-            '--preload-file ' .. path.getabsolute('../../../gold') .. '/rivs@/',
-        })
-        files({ 'path_fiddle/index.html' })
-    end
-
-    filter({ 'options:with_rive_layout' })
-    do
         defines({ 'YOGA_EXPORT=' })
-        includedirs({ yoga })
+
+        files({ 'path_fiddle/**.cpp' })
+
         links({
+            'rive',
+            'rive_pls_renderer',
+            'rive_decoders',
+            'libwebp',
+            'rive_harfbuzz',
+            'rive_sheenbidi',
             'rive_yoga',
         })
-    end
+        filter({ 'options:not no_rive_png' })
+        do
+            links({ 'zlib', 'libpng' })
+        end
+        filter({ 'options:not no_rive_jpeg' })
+        do
+            links({ 'libjpeg' })
+        end
+        filter({})
 
-    filter('files:**.html')
-    do
-        buildmessage('Copying %{file.relpath} to %{cfg.targetdir}')
-        buildcommands({ 'cp %{file.relpath} %{cfg.targetdir}/%{file.name}' })
-        buildoutputs({ '%{cfg.targetdir}/%{file.name}' })
+        if _OPTIONS['with_vulkan'] then
+            dofile('rive_vk_bootstrap/bootstrap_project.lua')
+        end
+
+        filter('action:xcode4')
+        do
+            -- xcode doesnt like angle brackets except for -isystem
+            -- should use externalincludedirs but GitHub runners dont have latest premake5 binaries
+            buildoptions({ '-isystem' .. yoga })
+        end
+
+        filter({ 'toolset:not msc' })
+        do
+            buildoptions({ '-Wshorten-64-to-32' })
+        end
+
+        filter('options:with-skia')
+        do
+            includedirs({
+                RIVE_RUNTIME_DIR .. '/skia/renderer/include',
+                RIVE_RUNTIME_DIR .. '/skia/dependencies',
+                RIVE_RUNTIME_DIR .. '/skia/dependencies/skia',
+            })
+            defines({ 'RIVE_SKIA', 'SK_GL' })
+            libdirs({ RIVE_RUNTIME_DIR .. '/skia/dependencies/skia/out/static' })
+            links({ 'skia', 'rive_skia_renderer' })
+        end
+
+        filter('system:windows')
+        do
+            architecture('x64')
+            defines({ 'RIVE_WINDOWS', '_CRT_SECURE_NO_WARNINGS' })
+            libdirs({
+                RIVE_RUNTIME_DIR .. '/skia/dependencies/glfw_build/src/Release',
+            })
+            links({ 'glfw3', 'opengl32', 'd3d11', 'dxgi', 'd3dcompiler' })
+        end
+
+        filter('system:macosx')
+        do
+            files({ 'path_fiddle/**.mm' })
+            buildoptions({ '-fobjc-arc' })
+            links({
+                'glfw3',
+                'Cocoa.framework',
+                'Metal.framework',
+                'QuartzCore.framework',
+                'IOKit.framework',
+            })
+            libdirs({ RIVE_RUNTIME_DIR .. '/skia/dependencies/glfw_build/src' })
+        end
+
+        filter('system:linux')
+        do
+            links({ 'glfw3' })
+            libdirs({ RIVE_RUNTIME_DIR .. '/skia/dependencies/glfw_build/src' })
+        end
+
+        filter('options:with-dawn')
+        do
+            includedirs({
+                'dependencies/dawn/include',
+                'dependencies/dawn/out/release/gen/include',
+            })
+            libdirs({
+                'dependencies/dawn/out/release/obj/src/dawn',
+                'dependencies/dawn/out/release/obj/src/dawn/native',
+                'dependencies/dawn/out/release/obj/src/dawn/platform',
+                'dependencies/dawn/out/release/obj/src/dawn/platform',
+            })
+            links({
+                'dawn_native_static',
+                'webgpu_dawn',
+                'dawn_platform_static',
+                'dawn_proc_static',
+            })
+        end
+
+        filter({ 'options:with-dawn', 'system:windows' })
+        do
+            links({ 'dxguid' })
+        end
+
+        filter({ 'options:with-dawn', 'system:macosx' })
+        do
+            links({ 'IOSurface.framework' })
+        end
+
+        filter('system:emscripten')
+        do
+            targetname('path_fiddle.js')
+            linkoptions({
+                '-sUSE_GLFW=3',
+                '-sMIN_WEBGL_VERSION=2',
+                '-sMAX_WEBGL_VERSION=2',
+                '--preload-file ' .. path.getabsolute('../../../gold') .. '/rivs@/',
+            })
+            files({ 'path_fiddle/index.html' })
+        end
+
+        filter({ 'options:with_rive_layout' })
+        do
+            defines({ 'YOGA_EXPORT=' })
+            includedirs({ yoga })
+            links({
+                'rive_yoga',
+            })
+        end
+
+        filter('files:**.html')
+        do
+            buildmessage('Copying %{file.relpath} to %{cfg.targetdir}')
+            buildcommands({ 'cp %{file.relpath} %{cfg.targetdir}/%{file.name}' })
+            buildoutputs({ '%{cfg.targetdir}/%{file.name}' })
+        end
     end
 end
 
@@ -187,30 +189,30 @@
             'webgpu_player/index.html',
             'webgpu_player/icons.html',
             'webgpu_player/rive.js',
-            '../../../gold/rivs/Santa_Claus.riv',
-            '../../../gold/rivs/Coffee_Cup.riv',
-            '../../../gold/rivs/skull_404.riv',
-            '../../../gold/rivs/octopus_loop.riv',
-            '../../../gold/rivs/planets.riv',
-            '../../../gold/rivs/Timer.riv',
-            '../../../gold/rivs/adventuretime_marceline-pb.riv',
-            '../../../gold/rivs/towersDemo.riv',
-            '../../../gold/rivs/skills_demov1.riv',
-            '../../../gold/rivs/car_demo.riv',
-            '../../../gold/rivs/cloud_icon.riv',
-            '../../../gold/rivs/coffee_loader.riv',
-            '../../../gold/rivs/documentation.riv',
-            '../../../gold/rivs/fire_button.riv',
-            '../../../gold/rivs/lumberjackfinal.riv',
-            '../../../gold/rivs/mail_box.riv',
-            '../../../gold/rivs/new_file.riv',
-            '../../../gold/rivs/poison_loader.riv',
-            '../../../gold/rivs/popsicle_loader.riv',
-            '../../../gold/rivs/radio_button_example.riv',
-            '../../../gold/rivs/avatar_demo.riv',
-            '../../../gold/rivs/stopwatch.riv',
-            '../../../gold/rivs/volume_bars.riv',
-            '../../../gold/rivs/travel_icons.riv',
+            'webgpu_player/rivs/Santa_Claus.riv',
+            'webgpu_player/rivs/Coffee_Cup.riv',
+            'webgpu_player/rivs/skull_404.riv',
+            'webgpu_player/rivs/octopus_loop.riv',
+            'webgpu_player/rivs/planets.riv',
+            'webgpu_player/rivs/Timer.riv',
+            'webgpu_player/rivs/adventuretime_marceline-pb.riv',
+            'webgpu_player/rivs/towersDemo.riv',
+            'webgpu_player/rivs/skills_demov1.riv',
+            'webgpu_player/rivs/car_demo.riv',
+            'webgpu_player/rivs/cloud_icon.riv',
+            'webgpu_player/rivs/coffee_loader.riv',
+            'webgpu_player/rivs/documentation.riv',
+            'webgpu_player/rivs/fire_button.riv',
+            'webgpu_player/rivs/lumberjackfinal.riv',
+            'webgpu_player/rivs/mail_box.riv',
+            'webgpu_player/rivs/new_file.riv',
+            'webgpu_player/rivs/poison_loader.riv',
+            'webgpu_player/rivs/popsicle_loader.riv',
+            'webgpu_player/rivs/radio_button_example.riv',
+            'webgpu_player/rivs/avatar_demo.riv',
+            'webgpu_player/rivs/stopwatch.riv',
+            'webgpu_player/rivs/volume_bars.riv',
+            'webgpu_player/rivs/travel_icons.riv',
         })
 
         links({
diff --git a/renderer/src/webgpu/render_context_webgpu_impl.cpp b/renderer/src/webgpu/render_context_webgpu_impl.cpp
index 8030b22..e581d70 100644
--- a/renderer/src/webgpu/render_context_webgpu_impl.cpp
+++ b/renderer/src/webgpu/render_context_webgpu_impl.cpp
@@ -366,10 +366,7 @@
     {
         return m_bindGroupLayout;
     }
-    const wgpu::RenderPipeline& renderPipeline() const
-    {
-        return m_renderPipeline;
-    }
+    wgpu::RenderPipeline renderPipeline() const { return m_renderPipeline; }
 
 private:
     wgpu::BindGroupLayout m_bindGroupLayout;
@@ -551,10 +548,7 @@
     {
         return m_bindGroupLayout;
     }
-    const wgpu::RenderPipeline renderPipeline() const
-    {
-        return m_renderPipeline;
-    }
+    wgpu::RenderPipeline renderPipeline() const { return m_renderPipeline; }
 
 private:
     wgpu::BindGroupLayout m_bindGroupLayout;
@@ -793,7 +787,7 @@
         }
     }
 
-    const wgpu::RenderPipeline renderPipeline(
+    wgpu::RenderPipeline renderPipeline(
         wgpu::TextureFormat framebufferFormat) const
     {
         return m_renderPipelines[RenderPipelineIdx(framebufferFormat)];
diff --git a/renderer/src/webgpu/render_context_webgpu_vulkan.cpp b/renderer/src/webgpu/render_context_webgpu_vulkan.cpp
index 5eea4cc..ea4749e 100644
--- a/renderer/src/webgpu/render_context_webgpu_vulkan.cpp
+++ b/renderer/src/webgpu/render_context_webgpu_vulkan.cpp
@@ -192,14 +192,14 @@
                   inputs : [
                       {format : framebufferFormat, usedAsColor : true},
                       {format : "r32uint", usedAsColor : true},
-                      {format : "r32uint", usedAsColor : true},
                       {format : framebufferFormat, usedAsColor : true},
+                      {format : "r32uint", usedAsColor : true},
                   ],
                   targets : [
                       {format : framebufferFormat, usedAsInput : true},
                       {format : "r32uint", usedAsInput : true},
-                      {format : "r32uint", usedAsInput : true},
                       {format : framebufferFormat, usedAsInput : true},
+                      {format : "r32uint", usedAsInput : true},
                   ],
                   features : GPUFragmentStateFeatures
                       .RASTERIZATION_ORDER_ATTACHMENT_ACCESS,
@@ -231,6 +231,10 @@
         emscripten_webgpu_export_shader_module(fragmentShader.Get()),
         emscripten_webgpu_export_pipeline_layout(drawPipelineLayout().Get()),
         frontFaceForOnScreenDraws() == wgpu::FrontFace::CW));
+    static_assert(COLOR_PLANE_IDX == 0);
+    static_assert(CLIP_PLANE_IDX == 1);
+    static_assert(SCRATCH_COLOR_PLANE_IDX == 2);
+    static_assert(COVERAGE_PLANE_IDX == 3);
     return wgpu::RenderPipeline::Acquire(
         emscripten_webgpu_import_render_pipeline(
             pipelineJSHandleIfNeeded->get()));
diff --git a/renderer/webgpu_player/index.html b/renderer/webgpu_player/index.html
index 5da8424..29cddbe 100644
--- a/renderer/webgpu_player/index.html
+++ b/renderer/webgpu_player/index.html
@@ -37,7 +37,13 @@
 
     // Rive has to be initialized before loading assets.
     const invertY = false
-    RiveInitialize(data.device, data.queue, data.width, data.height, invertY, RIVE_PLS_TYPE_NONE);
+    RiveInitialize(data.device,
+                   data.queue,
+                   data.width,
+                   data.height,
+                   invertY,
+                   RIVE_PLS_TYPE_NONE,
+                   4);
 
     assets.skills = await loadRiveAsset({url:"skills_demov1.riv", stateMachine:"Motion"});
     assets.santa = await loadRiveAsset({url:"Santa_Claus.riv"});
diff --git a/renderer/webgpu_player/rive.js b/renderer/webgpu_player/rive.js
index 9029c8e..fd9bd00 100644
--- a/renderer/webgpu_player/rive.js
+++ b/renderer/webgpu_player/rive.js
@@ -23,14 +23,21 @@
 const RIVE_ALIGNMENT_BOTTOM_CENTER = [0.0, 1.0];
 const RIVE_ALIGNMENT_BOTTOM_RIGHT = [1.0, 1.0];
 
-function RiveInitialize(device, queue, canvasWidth, canvasHeight, invertedY, pixelLocalStorageType)
+function RiveInitialize(device,
+                        queue,
+                        canvasWidth,
+                        canvasHeight,
+                        invertedY,
+                        pixelLocalStorageType,
+                        maxVertexStorageBlocks)
 {
     Module._RiveInitialize(JsValStore.add(device),
                            JsValStore.add(queue),
                            canvasWidth,
                            canvasHeight,
                            invertedY,
-                           pixelLocalStorageType);
+                           pixelLocalStorageType,
+                           maxVertexStorageBlocks);
 }
 
 function RiveLoadFile(bytes)
diff --git a/renderer/webgpu_player/rivs/Coffee_Cup.riv b/renderer/webgpu_player/rivs/Coffee_Cup.riv
new file mode 100644
index 0000000..c94664b
--- /dev/null
+++ b/renderer/webgpu_player/rivs/Coffee_Cup.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/Santa_Claus.riv b/renderer/webgpu_player/rivs/Santa_Claus.riv
new file mode 100644
index 0000000..e2fad60
--- /dev/null
+++ b/renderer/webgpu_player/rivs/Santa_Claus.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/Timer.riv b/renderer/webgpu_player/rivs/Timer.riv
new file mode 100644
index 0000000..245c55d
--- /dev/null
+++ b/renderer/webgpu_player/rivs/Timer.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/adventuretime_marceline-pb.riv b/renderer/webgpu_player/rivs/adventuretime_marceline-pb.riv
new file mode 100644
index 0000000..3db0769
--- /dev/null
+++ b/renderer/webgpu_player/rivs/adventuretime_marceline-pb.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/avatar_demo.riv b/renderer/webgpu_player/rivs/avatar_demo.riv
new file mode 100644
index 0000000..afea38b
--- /dev/null
+++ b/renderer/webgpu_player/rivs/avatar_demo.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/car_demo.riv b/renderer/webgpu_player/rivs/car_demo.riv
new file mode 100644
index 0000000..dacdf4a
--- /dev/null
+++ b/renderer/webgpu_player/rivs/car_demo.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/cloud_icon.riv b/renderer/webgpu_player/rivs/cloud_icon.riv
new file mode 100644
index 0000000..a3c3cf3
--- /dev/null
+++ b/renderer/webgpu_player/rivs/cloud_icon.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/coffee_loader.riv b/renderer/webgpu_player/rivs/coffee_loader.riv
new file mode 100644
index 0000000..dc62bf2
--- /dev/null
+++ b/renderer/webgpu_player/rivs/coffee_loader.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/documentation.riv b/renderer/webgpu_player/rivs/documentation.riv
new file mode 100644
index 0000000..e324421
--- /dev/null
+++ b/renderer/webgpu_player/rivs/documentation.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/fire_button.riv b/renderer/webgpu_player/rivs/fire_button.riv
new file mode 100644
index 0000000..688991e
--- /dev/null
+++ b/renderer/webgpu_player/rivs/fire_button.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/lumberjackfinal.riv b/renderer/webgpu_player/rivs/lumberjackfinal.riv
new file mode 100644
index 0000000..21559c0
--- /dev/null
+++ b/renderer/webgpu_player/rivs/lumberjackfinal.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/mail_box.riv b/renderer/webgpu_player/rivs/mail_box.riv
new file mode 100644
index 0000000..4626b47
--- /dev/null
+++ b/renderer/webgpu_player/rivs/mail_box.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/new_file.riv b/renderer/webgpu_player/rivs/new_file.riv
new file mode 100644
index 0000000..d5c57a9
--- /dev/null
+++ b/renderer/webgpu_player/rivs/new_file.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/octopus_loop.riv b/renderer/webgpu_player/rivs/octopus_loop.riv
new file mode 100644
index 0000000..e0bf769
--- /dev/null
+++ b/renderer/webgpu_player/rivs/octopus_loop.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/planets.riv b/renderer/webgpu_player/rivs/planets.riv
new file mode 100644
index 0000000..4c2159f
--- /dev/null
+++ b/renderer/webgpu_player/rivs/planets.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/poison_loader.riv b/renderer/webgpu_player/rivs/poison_loader.riv
new file mode 100644
index 0000000..852c6ec
--- /dev/null
+++ b/renderer/webgpu_player/rivs/poison_loader.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/popsicle_loader.riv b/renderer/webgpu_player/rivs/popsicle_loader.riv
new file mode 100644
index 0000000..2d7ba67
--- /dev/null
+++ b/renderer/webgpu_player/rivs/popsicle_loader.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/radio_button_example.riv b/renderer/webgpu_player/rivs/radio_button_example.riv
new file mode 100644
index 0000000..3cdb44b
--- /dev/null
+++ b/renderer/webgpu_player/rivs/radio_button_example.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/skills_demov1.riv b/renderer/webgpu_player/rivs/skills_demov1.riv
new file mode 100644
index 0000000..08a8a2b
--- /dev/null
+++ b/renderer/webgpu_player/rivs/skills_demov1.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/skull_404.riv b/renderer/webgpu_player/rivs/skull_404.riv
new file mode 100644
index 0000000..2b72524
--- /dev/null
+++ b/renderer/webgpu_player/rivs/skull_404.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/stopwatch.riv b/renderer/webgpu_player/rivs/stopwatch.riv
new file mode 100644
index 0000000..b81dd16
--- /dev/null
+++ b/renderer/webgpu_player/rivs/stopwatch.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/towersDemo.riv b/renderer/webgpu_player/rivs/towersDemo.riv
new file mode 100644
index 0000000..5720aa8
--- /dev/null
+++ b/renderer/webgpu_player/rivs/towersDemo.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/travel_icons.riv b/renderer/webgpu_player/rivs/travel_icons.riv
new file mode 100644
index 0000000..67b26b9
--- /dev/null
+++ b/renderer/webgpu_player/rivs/travel_icons.riv
Binary files differ
diff --git a/renderer/webgpu_player/rivs/volume_bars.riv b/renderer/webgpu_player/rivs/volume_bars.riv
new file mode 100644
index 0000000..1307426
--- /dev/null
+++ b/renderer/webgpu_player/rivs/volume_bars.riv
Binary files differ
diff --git a/renderer/webgpu_player/webgpu_player.cpp b/renderer/webgpu_player/webgpu_player.cpp
index 9fa3a43..2b63253 100644
--- a/renderer/webgpu_player/webgpu_player.cpp
+++ b/renderer/webgpu_player/webgpu_player.cpp
@@ -75,7 +75,7 @@
                                              int canvasHeight,
                                              bool invertedY,
                                              int pixelLocalStorageType,
-                                             int maxVertexStorgeBlocks)
+                                             int maxVertexStorageBlocks)
     {
         s_deviceHandle = EmJsHandle(deviceID);
         s_queueHandle = EmJsHandle(queueID);
@@ -92,7 +92,7 @@
             emscripten_webgpu_import_queue(s_queueHandle.get()),
             platformFeatures,
             static_cast<PixelLocalStorageType>(pixelLocalStorageType),
-            maxVertexStorgeBlocks);
+            maxVertexStorageBlocks);
     }
 
     intptr_t EMSCRIPTEN_KEEPALIVE RiveBeginRendering(int textureViewID,
@@ -431,9 +431,9 @@
 
 #endif
 
+#ifdef RIVE_DAWN
 int main(int argc, const char** argv)
 {
-#ifdef RIVE_DAWN
     // Cause stdout and stderr to print immediately without buffering.
     setvbuf(stdout, NULL, _IONBF, 0);
     setvbuf(stderr, NULL, _IONBF, 0);
@@ -606,6 +606,6 @@
         lastTimestamp = timestamp;
     }
     glfwTerminate();
-#endif
     return 0;
 }
+#endif