Commit Graph

2348 Commits

Author SHA1 Message Date
dskuza
405f10d216 chore: release v6.12.2 6.12.2 2025-11-10 14:26:48 +00:00
dskuza
619f4bce6f Updating version files 2025-11-10 14:26:39 +00:00
csmartdalton
1cef7469b4 fix(wasm): Remove ASAN from the default WASM debug build (#10995) 0743b80014
This was causing our wasm debug binaries to become so large that some
browsers couldn't handle them anymore. If we need ASAN, we have a proper
"--with-asan" option for that now.
2025-11-07 17:08:40 +00:00
csmartdalton
8edbc9599a feat: Implement clockwise mode on GL_EXT_shader_pixel_local_storage2 (#10987) 5f018f395b
Clockwise mode finally gives us a really good use case for
EXT_shader_pixel_local_storage2. On scenes that don't use advanced
blend, this is showing speedups around 1.35x.

This PR also does some cleanup around consolidating the logic for
ShaderMiscFlags::fixedFunctionColorOutput, so we don't have to
re-implement the same logic in every backend.
2025-11-06 17:48:06 +00:00
bodymovin
67b17875b6 chore: improve collapsed data bind processing performance (#10962) ed5a446ff2 2025-11-06 12:27:04 +00:00
philter
2a09e7d855 fix(runtime): Revert state machine checks for needsAdvance (#10985) 3b82e09da9
Reverted an update where nested artboards were checking their nested state machine instances for needsAdvance and advancing if true. This appeared to fix (#10842) an issue that required a double advance when running goldens, however, there is actually another issue that this masked rather than fixing it. That will come in a seperate PR.
2025-11-06 02:27:29 +00:00
JoshJRive
1036c35caf Report missing gms in overnight/manual GM Tests (#10988) 5615843df1
Now when Rive Slack Bot posts to the golden channel when a gm run (both gl and vulkan), it will also report the missing results (and missing goldens, should that be a thing) if there are any.
2025-11-06 02:03:45 +00:00
blakdragan7
62386bb425 fix(renderer): d3d12 AMD / Intel support / raster order support (#10983) c47562209d
* proper states based one warnings. Support for gpunamefilter

* fix for raster order mode

* now works on AMD

* factored out wstring conversion

* clang format

* no need for pop back if using len -1

* removed uneeded forward declare
2025-11-05 23:40:40 +00:00
csmartdalton
3d4076e129 Bump to latest wagyu port (build 69) (#10977) d0b67890c8
Bump to latest wagyu port (build 69) to get access to wgpuWagyuStringArrayFreeMembers
2025-11-05 21:33:44 +00:00
csmartdalton
a31298abef feat(vk): Support faster texture updates (#10978) 0049d6e21e 2025-11-05 17:35:36 +00:00
luigi-rosso
64b9f767aa fix: crash when multiple definitions have the same name (#10976) 43585faefe 2025-11-05 02:49:39 +00:00
JoshJRive
5384f7df83 Improvements to Browserstack golden/gm runs (#10967) d2f21b08aa
A few quality-of-life improvements to the way the Browserstack runs (and image diffing) work and look.

- Add a Device Summary to the generated diff page that shows the list of devices and how many tests passed/failed/were missing for each (with failures sorted to the top). This makes it easier when things are failing a lot (like currently in Vulkan) to more easily where the failures are
- Fix an error when running the Browserstack script on Windows
- Add the Android OS version to the device name (there are multiple of the same device make/model on Browerstack running on different OS versions, and we were squishing their results together into one pile)
- Simplify the device name for devices with a redundant model name (i.e. Google_Pixel_6 instead of Google_Pixel_6_Pixel_6)
- Set a display name on browser stack (mostly so that the browserstack dashboard will stop showing a warning that some tests don't have names), but the display name contains the backend name (or default if it was unspecified) so browsing between gl and vulkan runs is easier
- Unified color definitions (and changed a couple to be easier to read, especially in the device summary page)
- Fixed how some of the text was being injected into the template to not contain a bunch of (conveniently invisible) \ns (that is, the actual text \n was in the document, not as newlines)
- Diff page no longer shows the "pass" and "identical" sections if it's in fails_only mode
2025-11-04 22:32:17 +00:00
bodymovin
64294fb1b0 chore(scripting): add support for creating pointer events in scripts (#10968) 2daf848d0a 2025-11-04 21:08:16 +00:00
dskuza
db6704efa4 chore: release v6.12.1 6.12.1 2025-11-04 04:30:46 +00:00
dskuza
32d80c0f25 Updating version files 2025-11-04 04:30:39 +00:00
blakdragan7
1b1e389c1b fix(unreal): Several fixes for unreal (#10963) 5a321f1807
* added setter methods for properties

* made lists a reference. unsettle artboard in a bunch of places that needed it.

* made lists references. Removed field notify value from lists.

* added context menu entry for cleaning generated classes

* started implementing clean function

* added clean context menu entry for cleaning up duplicate blueprint types

* attempting to make list manipulation more stable

* re arranged how view models work

* rebase error

* now properly removes handle even if objects goes out of scope

* uneeded header and clang format

* more uneeded header

* missing check

* added unit test for getHandleForInstance

* addresed pr  comments

* pr comments

* missing semi colon

* clang-format
2025-11-03 23:04:28 +00:00
blakdragan7
a73ef47746 refactor(renderer): move gamma correction logic to atomic resolve. (#10966) b9471b7d2a
* updated unreal msaa shaders to use new includes

* moved gamma convert to be at end instead of begining
2025-11-03 21:37:48 +00:00
luigi-rosso
cf1b97feeb feature: rev to latest luau (#10960) ac8e6c591e 2025-11-03 13:11:15 +00:00
luigi-rosso
590e83bd8f feature: add to path (#10961) 1607b4d220 2025-11-02 23:10:53 +00:00
bodymovin
44370e2b40 feature(scripting): expose pointer events (#10958) d571f01f6e 2025-11-01 19:42:26 +00:00
blakdragan7
8d8c9c3078 feat(unreal): basic rhi msaa support (#10926) a2fcd46df8
* Started adding msaa mode to rhi

* initial state msaa working on d3d12

* Now set stencil ref via set pipeline state

* set stencil in correct location

* vulkan msaa working for non advanced blend in rhi

* fixed missing check for msaa

* proper merge msaa and fix advanced blend for atomics

* added COALESCED_PLS_RESOLVE_AND_TRANSFER permutation and added better shader compile exclusions

* Now uses coalesce resolve

* base msaa working in d3d12 rhi

* mac support for non advanced blend msaa

* finally wokring on both dx12 and vulkan

* seperated out splitting render passes by a platform feature flag

* better name

* merge master

* some odd typo

* better matrix compare

* better comment

* glsl syntax fix

* removed commented code

* removed is matrix function in favor of all() as per PR comment

* factored out modify shader as a subcless

* updated cvar variable

* fix typo

* followed PR comments

* more pr comments

* clip planes actually do work now

* removed FixedFunctionColorOutput variable in favor of the flush desc member var

* fixed type restrictions and clang format

* improved comment and added missed file from last commit

* revert factoring common code because it was causing several errors

* factored out common shader code

* check clip plane support

* changed back to vulkan only
2025-11-01 00:06:02 +00:00
bodymovin
79db72e159 chore: add utf8 library for scripting (#10956) 097cdb71c3 2025-10-31 23:15:04 +00:00
bodymovin
933c1d9a15 fix: treat conditions as unmet if the state machine is not bound (#10955) 5c6dfc4b7a 2025-10-31 22:58:14 +00:00
csmartdalton
72193d72b3 feat: Implement clockwise mode using the interlock in Vulkan (#10951) 9903c18b2e
Pretty straight-forward implementation.

On Intel this is showing speedups in the 1.2-1.6x range (over atomic
mode, and depending on content).
2025-10-31 21:36:56 +00:00
luigi-rosso
4385af7a84 fix: require order causing a crash (#10953) fd749cce47
feature: add word joiners support (#10908) 937778bd8d
2025-10-31 19:36:51 +00:00
bodymovin
68e40134b4 feature: add support for quantization and speed controls on nested artboards (#10839) 96e8debf43
feature: add support for quantization and speed controls on state machines
2025-10-31 18:43:35 +00:00
luigi-rosso
b3aa124684 feature: add scripted nodes! (#10949) 6a61e45ac0 2025-10-31 05:39:08 +00:00
luigi-rosso
8350a41a47 fix: no crash if bindableProperty is nullptr (#10944) 45400d8398 2025-10-30 22:19:08 +00:00
bodymovin
42a7fdbef3 chore: add more scripted converter features (#10939) 5f3da40291 2025-10-30 21:31:33 +00:00
csmartdalton
a4434a8e2d fix: fp16 precision issue in clockwise rendering (#10940) 1a7500295d
We were using an epsilon that became 0 in fp16. Bump it to a nonzero,
non-denormalized fp16 value.
2025-10-30 18:25:19 +00:00
JoshJRive
472b5d11e6 fix(Vulkan): Various Android Vulkan fixes (#10927) a7d233d7c1
Device fixes:
- Break the MSAA resolve off into a separate render subpass to resolve corruption on some Adreno devices
- Work around an issue where some early Mali drivers report Vulkan 1.1 support but are missing the allocation functions that vma is looking for
- Some of those Mali devices spew incorrect validation errors about the inability to create, say, an RGB8 texture because the maximum mipmap count is 0 (and other similar "oops we queried and got 0" errors) even though the images actually create fine. Added them to an ignore list.
- The MSAA color and depth/stencil textures are now being created with the TRANSIENT bit (this doesn't fix any known device issues but it does seem more correct)

Other improvements:
- vk_check now displays a string representation of the vulkan error instead of just its numeric value
- the abort handler on Android now also prints the stack trace (to make debugging easier)
- fiddle_context_vulkan now requests the correct width and height for image capture
- The queueImageCopy function in swapchain was not properly setting the pixel read bounds to the whole swapchain if passed an empty AABB
2025-10-30 02:25:50 +00:00
luigi-rosso
373a438e2d feat: missing Mat2D.invert to use existing Mat2D ref (#10935) a406176fa6
* feat: missing Mat2D.invert to use existing Mat2D ref

* feature: add bounds
2025-10-29 22:30:28 +00:00
luigi-rosso
e1ca0dca69 minor scripting dogfood fixes (mat2d setters & artboard input) (#10934) a15901421d
chore: add missed setters and fix artboard inputs
2025-10-29 19:45:53 +00:00
csmartdalton
980c8f8986 feat(vk): Use the PLS transient backing resource in Vulkan (#10905) 4e366e3ddb 2025-10-28 19:48:12 +00:00
luigi-rosso
dce9d0bd69 feature: adding scripted pointer events (#10915) 3ebf132c40
* feature: adding scripted pointer events

* chore: adding pointer event test
2025-10-28 18:32:48 +00:00
luigi-rosso
2bef1ebae9 feature: expose width/height setter/getter for scripted artboards (#10917) d01497d380 2025-10-28 17:38:15 +00:00
bodymovin
d40103add5 feature(scripting): add data value color support for scripted converters (#10909) dfa19bdfbb 2025-10-28 17:11:21 +00:00
luigi-rosso
f8b3fec5d2 feature: expose time functions (#10916) 6b70e37991 2025-10-28 03:06:37 +00:00
luigi-rosso
7798d11e42 rev to rive_luau_18 (#10901) c1e0f7b595
* rev to rive_luau_18

* fix: for change in luau

* fix: default old solver

* adding back missing files

* fix: test

* update .riv files

* chore: updated to luau 0.697
2025-10-24 22:15:07 +00:00
csmartdalton
75c45fc49e feat: Initial implementation of a clockwise rendering mode (#10897) 2fb75868b5
Add a new InterlockMode that overwrites all fill rules as clockwise and
implements the clockwise path rendering algorithm using raster ordered
PLS. The only backend to support this so far is GL with shader images,
but more will come.

Notably, when there is no advanced blend, we can set
"fixedFunctionColorOutput" and render directly to the target
framebuffer.

Performance so far looks promising, especially on Intel, but more
in-depth perf optimizations arebyet to come.

This is implemented as its own InterlockMode only to give it soak time.
Once this rendering mode is stable, we can merge it back into
"rasterOrdering" and just select draw shaders based on fill rule.
2025-10-24 17:50:05 +00:00
bodymovin
e90b8dd7a5 chore: add support for zero width spaces as word breakers (#10899) c804e738de
chore: add support for zero width spaces as work breakers
2025-10-23 23:23:05 +00:00
bodymovin
eddcb21318 fix: set dataContext to nullptr when unbinding (#10898) 684c603b1a 2025-10-23 23:04:24 +00:00
JoshJRive
974b8838af fix(vulkan): Fix image/gradient rendering on some Android devices (#10894) d8e7fbdb7b
On some Adreno models, gradients were not properly rendering properly, due to the texture/gradient coordinates always being 0

This was caused by what appears to be a driver bug, in which doing vkUpdateDescriptorSets with multiple descriptors (in our case, updating paintData and paintAuxData in a single call) would fail to properly commit the data from the second one. We're only doing this in the one place. Separating this into two calls causes gradients and images to now display as expected.
2025-10-23 20:30:52 +00:00
csmartdalton
71165ba390 chore(vk): Remove a redundant interlock mode from the draw pipeline key (#10887) 979c4feb82
The shader key and render pass key were both including the interlock
mode, and the pipeline key was so full that adding a new interlock mode
would overflow it. Only include the interlock mode once.
2025-10-23 19:59:00 +00:00
aliasbinman
2882ca6b49 Add fire events to player (#10758) 15693e8ff1
* Add code to player

* Update player.cpp

* Update player.cpp

* Update player.cpp

* Clang format

* Update player.cpp
2025-10-23 18:09:31 +00:00
bodymovin
b7356be4ab fix: when the artboard is checking for ancestors it should return its… (#10883) d5b8889321
fix: when the artboard is checking for ancestors it should return itself as source when it is not the instance
2025-10-23 16:09:48 +00:00
aliasbinman
b44d5a0e0c Add gamma texture test (#10856) e9b6d8a64e
* Add gamma texture test

* add texture gm

* Create gamma_texture.png

* Create gamma_texture.png

* Create gamma_texture.png
2025-10-22 22:40:04 +00:00
ErikUggeldahl
909b131a3f feat(Android): Multitouch and pointer exit support (#10848) 9bcc4a6d11
Adds multitouch and pointer exit support.

Also bumps the compile and target SDK to 36, adding `core-ktx` dependency for one method.
2025-10-22 21:22:22 +00:00
csmartdalton
8cc026c6f8 fix(gl): Fix a PLS regression on Oppo & Vivo (#10861) 33c9ac9f95
A recent refactor introduced an issue on Vivo Y21 and Oppo Reno 3 where
writes to pixel local storage got disabled when the color mask was off.
Just leave the color mask enabled in EXT_shader_pixel_local_storage
mode.
2025-10-22 00:53:51 +00:00
bodymovin
90f784473b chore: add support for assigning dynamically loaded images from listeners (#10857) 8df6209168 2025-10-21 23:21:43 +00:00