* Initial commit
* Update macros
* Add GPU Markers
* Fix builds without microprofile
* minor updates
* clang format
* Update profiler.cpp
* clang format
* Name Main Thread
* Update profiler_macros.h
* Fix end flip
* Update fiddle_context_gl.cpp
* clang format
* Update rive_build_config.lua
* Update rive_build_config.lua
* forked microprofile so I can use a tag
* Update render_context_d3d_impl.cpp
* clang
Adreno 308 had a few issues:
* Crash from drawing too many instances, which we work around by
breaking them up with glFlush.
* Compiler failure from the compiler declaring a 3.1 bulitin in ESSL
3.0, which we work around with a #define.
* The advertised max texture size is 8192, but textures larger than
2048 seem to not work with EXT_multisampled_render_to_texture.
Either way, we shouldn't have any gms larger than 2048 since that's
the bare minimum per the spec. Shrink the larger gms down to 2048.
Rive had an issue as well:
* With EXT_multisampled_render_to_texture but not
KHR_blend_equation_advanced, we were trying to use the same texture
for both msaa and the dstRead. Separate these into their own
textures.
The C++ runtime requires a ScriptingVM and lua_State to run scripts. Previously when a runtime File was built, we would always instance a ScriptingVM and lua_State. At runtime, this is required, however, when building the runtime in the editor, this resulted in additional objects being created that weren't needed. This PR passes the lua_State into File::import so that the file will only create the ScriptingVM once and either use the passed in lua_State or instance a new one if none is passed.
Adds the build flags required to enable scripting. Adds two samples, one for legacy, one for Compose, using the Blinko example.
Also patches the command server to accept script assets and not crash for unrecognized assets.
With clockwise mode, we introduced ".vert" and ".frag" files and started
sharing the main vertex shaders with multiple fragment shaders. This PR
is a cleanup that removes redundant code and moves the clockwiseAtomic
shaders to that same system. clockwiseAtomic shaders also work out paint
colors via varyings now instead of storage buffers, which seems better
but doesn't register a difference in performance.
* fix effects sorting
* fix Feature values
* invalidate effects on update instead than when dirt is added to avoid multiple invalidations per frame
* fix key conflict
fix(editor): Properly remove all script core objects when deleted (#11324) a3e784a1f0
3 Fixes for Script asset deletion in this PR:
- Present a confirmation dialog if the script is being used by any scripted object on any artboard
- When script asset is deleted, make sure to clean up all of the associated core code file/line/points
- Also remove the LibraryCodeFile from the library cache. This fixes a bug where after deleting a library script, you couldn't add it back to the file again.
Testing window was restructured to allow the tests to destroy/recreate the device, but the render target was not being (re)created when the device was.
When the renderTarget doesn't support
VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, we have to use an offscreen color
texture instead. Previously, we would copy this offscreen texture back
into the renderTarget after the render pass, which incurred a
substantial amount of memory bandwidth. This PR instead transfers the
offscreen texture to the renderTarget as part of the render pass, and
then discards the offscreen texture, saving a fullscreen copy on TBDR
architectures.
Color ramps are the final resource texture we need to make interruptible
for old Android GPUs that don't support complex render passes.
Also fix lots_of_tess_spans to look the same on MSAA and not.