-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Conversation
Under what circumstances do you see the parent/children finding becoming an issue? This never appears in my performance profiles. |
Why not stick all into a |
No, this looks great for me on everything except a retina iPad 3 fullscreen. The combination of other things going on to drive the display at larger size + so many textures is what causes issues, but we need to solve for this hardware. It's just not a matter of acceptable delay, either, it affects frame rate and gesture responsiveness. |
The The |
One thing I am going to try next is to pre-set packed integers in the tile constructor, rather than on demand, and use those for the |
@kkaefer To give you a sense, I just made two videos with Reflector. The frame rate loss you see in the iPad is real, not the video. iPhone: https://dl.dropboxusercontent.com/u/575564/iphone_raster.mov And here's a representative profiling: Here And breaking it down, A CSV export of the profile (Instruments does this?): https://dl.dropboxusercontent.com/u/575564/Time%20Profiler%20-%20llmr_Run1.csv |
My latest work here is on somehow seeing if HTTP connections need to be throttled. They can max out at 25-35 simultaneous connections, depending, and although the |
URL loads are not a bottleneck problem. I worked with local, cached tiles and wasn't able to get satisfactory performance, either. Now I'm thinking that despite I experimented with not actually uploading textures and the performance is a lot better. These uploads could be offloaded to a second OpenGL context and a background thread instead of being kept in the render loop, so that's my next approach. |
Pausing this for a bit to get my head out of raster for a while, as this works well on smaller devices now. |
I'm going to have a look at this as part of #101 |
Closing this as stale.
Among other things, we do this already. |
Here is one possible improvement towards #103, though it's not done yet.
It moves from a
std::forward_list
fortiles
to astd::map
, binned by zoom level and constantly sorted (with custom comparatorstd::greater
) per normalmap
behavior. Could trystd::unordered_map
but the sort here is negligible as it's among ~20 keys, tops (zoom levels).Pro:
Con:
@kkaefer @springmeyer I feel like I'm hitting the limits of my C++ knowledge here and spinning my wheels so I would appreciate some eyes. @springmeyer I also tried your suggestion of
std::find(tiles.begin(),tiles.end(),...)
, which yielded a slight improvement but not as much as the move tomap
.I'm going to work on some raster binding improvements now, which is showing as a higher bottleneck now that these improvements are in place, as well as grabbing #105.