Comments (7)
Note that this change doesn't "solve" batching drawcalls, just some cases. If your images are nested inside wrapper frames, this change has no impact, for example. Your mileage may vary, but if your tree is pretty flat this can have some real benefit.
from fusion.
Since discovering that ZIndex can control batching without the library having to add hardcoded behaviour for this, is it necessary for us to account for this detail ourselves?
from fusion.
I would argue that yes, it does still help. Managing ZIndexes to layer things for batching is a headache to do in every component (you'd need to create your Children array in parenting order, which is annoying and unwieldy), and there are cases where you can't do that anyway.
from fusion.
Since making this issue, I've pushed this implementation to production and have had no problems with it. My drawcalls decreased by 20%, although that does include some additional work I did to restructure some trees to benefit from this.
from fusion.
I opened the PR to show what that implementation looks like, but if we decide not to do this then I don't mind closing it. I do believe that this simple change provides value though.
from fusion.
I mentioned this in the PR, but I'm going to defer on this for a while until we know whether Roblox themselves plan to address this soon.
from fusion.
Unblocking this; see #298.
from fusion.
Related Issues (20)
- Allow T everywhere we publicly accept StateObject<T> HOT 1
- Dissolve state objects that don't deal with state HOT 4
- Rename CanBeState<T> to be more concise HOT 7
- Dealing with re-entrant updates HOT 2
- Introduce a more efficient connector between state and data model properties
- Heuristic memoisation for state objects HOT 1
- Add debugging protocol for non-invasive inspection
- Change design of Observer to allow pooling listeners HOT 1
- Reuse scopes from primitive computed objects HOT 3
- Test what an ideal scope pool size is HOT 1
- Integrate under-documented APIs into tutorials
- Explore safer interpretations of `deriveScope` HOT 1
- Spring setters don't work immediately after construction
- Memoise special key generation functions
- Poor typechecking for use functions with UsedAs<T>
- Derive scopes with additional methods HOT 2
- Standard set of reactive graph shapes for testing HOT 1
- Write tutorial for `Safe` expressions
- Broken default props link (still uses .lua)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fusion.