mirror of
				https://github.com/rive-app/rive-flutter.git
				synced 2025-11-04 22:49:15 +08:00 
			
		
		
		
	feat(flutter): expose component local bounds (#10571) 8165c5c216
Fix endcap flickering bug (#10547) 1421e05aaa * Detect close to zero or zero length segments and move to the next * Change method to fix paths with duplicate points * Added const back * clang format fix(gl): Re-enable pls on ARM (#10569) 8f9cdd5cec PLS is quite stable at this point on ARM. Let's aim for a more gradual transition to our end goal of an all-MSAA GL. fix(gl): Add missing barriers for feathering with image atomics (#10565) 7e8588484d Also turn image atomics off on Adreno since the barriers didn't fix it on 660 on 642L, and they still don't draw anything. fix(gl): Workaround an ARM MSAA synchronization issue (#10568) 848415ed2f Various Android vendors experience synchronization issues with multiple flushes per frame. We used to call glFlush every Rive flush on Qualcomm for this reason. Remove the 'if' and just call glFlush for everyone. Also call glMemoryBarrier for everyone ES 3.1+ at the end of the flush. In particular, ARM Mali-G78 needs this barrier in conjunction with a glFlush to ensure a resolve of EXT_multisampled_render_to_texture. (Note that the spec says these resolves should all be implicit and automatic.) fix(apple): better release and null checking on fallback fonts (#10562) e0baf4e1fa * fix(apple): do not use symbolic trait font copy on failure * fix(apple): release ctfont copy * refactor(apple): do not manually ref rcp'd font, remove cache editor(fix): Fix children collapsed issue when showing/hiding layout (#10566) 15a6eedc71 A layout's collapsed value wasn't being propagated down the tree which resulted in issues if a parent was set to display, but a child layout was set to hidden, it would not hide its contents properly. fix(gl): Drop EXT_shader_pixel_local_storage (#10556) 8df4ac1a56 This extension has been an ever-flowing fountain of bugs for us, especially on PowerVR. Furthermore, it doesn't even work on Pixel 10 (PowerVR D-Series DXT-48-1536). Let's de-fragment our Android GL renderer and consolidate everything on MSAA (except for old PowerVR devices where MSAA doesn't work). MSAA is hopefully a more tried-and-true, less bug-prone rendering mode in the Android ecosystem anyway, and it's nice to be more consistent across devices. The perf story looks positive. On PowerVR, MSAA seems to be generally faster. On ARM it's always been a mixed bag depending on content. Either way, this is a nice approach to switch GL to maintenance mode so we can go all in on Vulkan. NOTE: We are still keeping EXT_shader_pixel_local_storage as a fallback for the feather atlas on devices that don't support float rendering. There are real GPUs where this is our only way to get high quality feathers. Add high level shader debugging for RenderDoc debugging (#10550) 46e6f66b94 * Initial commit * clang format * Added RIVE_RAW_SHADERS #define and now use this in D3D Debug mode * Merge if statements fix(Unreal): Updated UE plugin to no longer do deprecated things (#10555) c799a27dfd * Remove use of `FRHIResourceCreateInfo` which is now deprecated * Updated to c++20 because that is the new requirement for UE * Fixed a bug where the state machine name selection would cause a crash if no state machines are in riv file. * No longer use raw pointers as `TObjectPtr` are preferred now * Fixed bug where `#ifdef WITH_RIVE_TOOLS` was missing in `FrameOptions` declaration Add keyboard toggle to PathFiddle to run updates at fixed 120fps or unlocked (#10548) 576b235996 * Initial commit * Update to using variable timesteps rather than fixed Expose localBounds in CPP (#10537) 0ed12de980 Implement some missing localBounds methods in CPP on core objects that expose this. Basically ported over from Dart. This was requested in order for the new rive_native Flutter runtime to provide a similar API to the legacy Flutter runtime. More profiling markers to runtime (#10549) e58f44d5ec feature: Scripting Revision Manager (#10474) 3cdbce02cb * hydrogen pane uses codefile * feature: reworking theme * feature: working on scrolling panels * fix: missed files * chore: removing print statements * feature: implement CodeFileView * fix: opening linked files starting to add vertical split options * fix: missed file * feature(hydrogen): splittable panels * fix: not advancing state machines from scripts * fix: warning * fix: data_tree_instance_test fix: GL async shader compilation improvements/fixes (#10544) 2d7b1b788f This improves the handling of GL parallel shader compile and the ubershader fallback, centered around fixing the Galaxy S22 goldens - GL ubershaders needed to not set ENABLE_CLIP_RECT in MSAA mode when missing the EXT_clip_cull_distance extension - avoidMaxShaderCompilerThreadsKHR is no longer necessary because the extension is actually working as expected - Similarly an explicit null check on glMaxShaderCompilerThreadsKHR is no longer necessary because the Android egl extension function loading code already does so - The recommended way to use KHR_parallel_shader_compile is to compile the shaders, then start the link, then wait on the link to finish (and then display compilation errors after that if compilation failed). This simplifies the compilation handling - There was an assert in tryGetPipeline that was intended as a "this should be impossible" test but it turns out it is possible (when the ubershader had completed, but errored), so now on an ubershader error case we will return nullptr (and let the renderer not draw) rather than assert fix(gl): Reinstate the pls2 workaround for PowerVR drivers < 1.13 (#10524) dd4dd9f326 feature: add support for different random modes (#10538) dab3b5994d * feature: add support for different random modes fix(ios):fix a metal API validation error on iOS simulator. (#10539) 5d0cf127b2 * fix(ios):fix a metal API validation error in sim. When running on the simulator, we run in atomics mode. In this mode, we weren't binding the clip plane buffer properly. Rml initial work (#10542) 199af78f1e * feature: adding rml compiler * chore: fixing multi fields missing * chore: cleanup * chore: updating to latest master * chore: allowing saving rml * sorting items correctly * hiding unnecessary xml props * stripping unnecessary ids * chore: add missed files * chore: adding missed files * add serializer to rev * fractional index * list id types * include non runtime objects on export * more rml * sort root nodes * add flags support * fixes * add parenting to definitions * fix id clash * skip computed values * add full parentable support * fix bit flags * fix keyframes * add interpolators as children * support multiple parented objects * handle duplicate parent * cli * add rml docker * clang format * add support for new properties in core definition * restore initial values of json fix(runtime): force keep going on 0 advanceAndApply (#10504) 0152183944 * fix(runtime): force keep going on 0 advanceAndApply * Update packages/runtime/src/animation/state_machine_instance.cpp WebGPU: Added way to pass WGPUCommandEncoder to RenderContextWebGPUImpl::flush() function (#10530) b5a50b8118 * WebGPU: Added way to pass WGPUCommandEncoder to RenderContextWebGPUImpl::flush() function * chrisfixes fix: Update image texture usages for wagyu mipmap generation (#10529) 65829bc47a * Add src usage as generateMipMaps blits * ifdef wagyu 38 (#10528) f03e236489 fix(gl): Validate GL extension functions load before using them (#10526) 300809d5bf It is possible that Android GL drivers report an extension as being present, but the extension functions actually are not. This validates that we get valid pointers for any extension (and turn off trying to use the extension if we cannot). fix(gl): Fix rendering issues on Xiaomi Watch models (#10527) 8a0dbb9c80 the GL_EXT_clip_cull_distance extension shader code was using a feature of GL_EXT_shader_io_blocks, which was not otherwise being required by the shader. This use has now been removed. During an attempt to work around some driver issues on an ANGLE device, glsl.glsl was changed to use the EXT_shader_io_blocks extension (which we are otherwise not using) to specify a set number of clip planes for EXT_clip_cull_distance. However, the workaround ended up removing support for EXT_clip_cull_distance in ANGLE and WebGL so the glsl.glsl change was no longer necessary. More recently, developers on a couple Xiaomi Watch devices discovered a rendering issue, which stemmed from the use of GL_EXT_shader_io_blocks functionality without having required it in the shader code. Rather than add the #extension line to do so, since this use of that functionality isn't currently solving any known issues, it seems better to just remove the shader_io_blocks usage and let the GPU/driver set the clip plane count itself. fix(gl): Limit the tess/grad instance counts on Mali/PowerVR (#10520) b0646c5c97 fix(gl): Limit the tess/grad instance conts on Mali/PowerVR Limit the number of instances we draw at a time when rendering the tessellation and gradient textures. PowerVR and ARM GPUs have been known to crash when rendering large instance counts. We're already limiting the instance counts for main draws, but we missed the tessellation and gradient passes when we added this workaround. restore skipping data bind values (#10516) 049120501f fix(gl): Remove EXT_shader_pixel_local_storage2 workarounds (#10519) 84075d7989 We discovered a workaround on older PowerVR devices that involved enabling EXT_shader_pixel_local_storage2. It seemed safe enough, but it is responsible for rendering and perf regressions. Just quit using pls2 altogether. Also disable GL_CULL_FACE when initializing and resolving pixel local storage. Leaving it on is just one more possible bug to crop up if we get the wrong face, and if we do get it wrong it's hard to debug because everything disappears. fix: Work around a PowerVR GLSL compiler bug (#10518) 6062012b6a The PowerVR compiler was (and still is) evaluating both sides of a ternary expression. Rewrite the code to expect this and be safe. fix: Tag RIVE in NSLogs (#10510) ce87aac5e0 fix: revert skipping collapsed data bound properties (#10507) fba405c288 * fix: revert skipping collapsed data bound properties fix(ios): Don't call abort when the unexpected happens. (#10472) 1adc508ecd * removed aborts and properly handle the error case instead. Don't use printf because nslog allows for proper output to log files in ios * more converts to nslog * made checks more specific * Wiring up multiple synthesized failure types * Wiring through the new synthesized failure modes to D3D11, 12, and GL * Move the Metal ubershaderLoad failure synthesis to a better spot * clang format * Missed wrapping a variable in #ifdef WITH_RIVE_TOOLS * Correction: missed *multiple* #ifdef WITH_RIVE_TOOLSes * Still more * Testing to see if the D3D12/GL errors are related to the ubershaderLoad synthesis or not * Removing additional pieces of the testing to see what's causing the issues * It's important to write your preprocessor directives correctly 🙃 * Trying to figure out what the fence value is that is coming out wrong on the D3D12 tests and why GL is failing * trying something dumb to see if this re-breaks the oneplus7 * Split the render test up into three tests to see if it is any better on the oneplus7 * Trying to see where the d3d12 device is getting removed (and why), and also what happens if I run 2 of the same synth test on oneplus7 * Sorry everyone it's effectively printf debugging time 🫤 * Changed the CreateEvent call to see if that works for D3D12 and also more printing for GL * More * Okay testing some other dumb stuff - this might resolve oneplus 7, still no idea on D3D12 yet * Testing an alternate fix for the oneplus7 issue plus a different initial frame value for the copy fence * Adding a comment before push * Clean up the testing code (the D3D and oneplus7 issues are fixed but now there's a GL issue on windows. sigh. * clang format again I'm good at this lol * Okay I think this will fix the windows GLFW issue at the cost of it might break all the android tests or something (but I hope not!) * Now debugging why glfw window creation is failing for windows unit tests * Okay this should "fix" the GL issues on github by just not creating a GL window if GL is not supported. * Some minor cleanup * Clarifying a comment, mostly to get the tests to re-kick feature: console entry can be clicked to open script file (#10484) b555c57747 * feature: console entry can be clicked to open script file * chore: missed files * fix: mixed file * fix: failing tests Co-authored-by: Gordon <pggordonhayes@gmail.com>
This commit is contained in:
		@ -1 +1 @@
 | 
			
		||||
7359e8b824801f268a0506ae948ab5845f610d8c
 | 
			
		||||
8165c5c216f7eb45331d84fded6da38753119c7d
 | 
			
		||||
 | 
			
		||||
@ -1,5 +1,7 @@
 | 
			
		||||
## Upcoming
 | 
			
		||||
 | 
			
		||||
- Expose `localBounds` on `Component`.
 | 
			
		||||
 | 
			
		||||
### Fixes
 | 
			
		||||
 | 
			
		||||
- Fixed [496](https://github.com/rive-app/rive-flutter/issues/496) - playback now properly resumes during pointer interactions, preventing graphics from appearing frozen when users interact with them.
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user