You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All major components required for high-performance are in place (if not yet in the developer edition), but the emulator isn't quite reaching 60 FPS on anything but high-end devices yet. There must be low-hanging fruit somewhere that I've missed.
Some good candidates to look into are:
Graphics:
Streaming of vertex/texture/uniform data has poor efficiency. Persistent mapping of buffers and explicit flushing should perform better.
framebuffer management (implement more fast paths for blits; avoid unnecessary flushing to/reloading from memory)
MemoryFills currently invalidate textures/render targets (causing them to be reloaded from memory on next use). Instead, they should be translated to clears of the covered resources.
Kernel:
kernel scheduler (the task rotation is highly inefficient, which may add up to considerable overhead)
The thread timeout checks at the bottom of OS::ElapseTime is a major bottleneck that can be fixed fairly easily by storing all threads in WaitingForTimeout/Sleeping states in a list instead of traversing all threads.
Fixed in 7d2c663.
All major components required for high-performance are in place (if not yet in the developer edition), but the emulator isn't quite reaching 60 FPS on anything but high-end devices yet. There must be low-hanging fruit somewhere that I've missed.
Some good candidates to look into are:
The thread timeout checks at the bottom ofOS::ElapseTime
is a major bottleneck that can be fixed fairly easily by storing all threads inWaitingForTimeout
/Sleeping
states in a list instead of traversing all threads.Fixed in 7d2c663.
Implement null-audio(implemented in b094815)The text was updated successfully, but these errors were encountered: