Unify storage buffers for atomic mode and normal
Now that atomic mode is proving to be a good solution and normal mode has switched to storage buffers, we can unify the two and delete the hacky back door we were using before for atomic storage buffers.
Diffs=
af2f2d632 Unify storage buffers for atomic mode and normal (#6449)
Co-authored-by: Chris Dalton <99840794+csmartdalton@users.noreply.github.com>
diff --git a/.rive_head b/.rive_head
index 8446bd5..3b784ab 100644
--- a/.rive_head
+++ b/.rive_head
@@ -1 +1 @@
-dcbe806b0485977a4c968e93eefcc7e6e01a4460
+af2f2d632619ec298e58ec54c4a9b6a66f9d27dc
diff --git a/include/rive/math/math_types.hpp b/include/rive/math/math_types.hpp
index f9b28d7..f79c6fd 100644
--- a/include/rive/math/math_types.hpp
+++ b/include/rive/math/math_types.hpp
@@ -83,6 +83,9 @@
#endif
}
+// Attempt to generate a "rotate-left" (rotl) assembly instruction.
+constexpr static uint32_t rotl(uint32_t x, int shift) { return (x << shift) | (x >> (32 - shift)); }
+
// Returns x rounded up to the next multiple of N.
// If x is already a multiple of N, returns x.
template <size_t N> RIVE_ALWAYS_INLINE constexpr size_t round_up_to_multiple_of(size_t x)