better handle skipped frames and cache eviction
Add Renderer::skipFrame() which should be called when intentionally skipping frames, for instance because the screen content hasn't changed, allowing Filament to performance needed periodic tasks, such as cache garbage collection and callback dispatches. We also improve the ResourceAllocator cache eviction policy: - the cache is aggressively purged when skipping a frame - we aggressively evict entries older than 3 frames The default Config is now set to a more agressive setting.
This commit is contained in:
committed by
Mathias Agopian
parent
730bc99025
commit
e7c96cd124
@@ -28,6 +28,14 @@
|
||||
using namespace filament;
|
||||
using namespace backend;
|
||||
|
||||
|
||||
extern "C" JNIEXPORT void JNICALL
|
||||
Java_com_google_android_filament_Renderer_nSkipFrame(JNIEnv *, jclass, jlong nativeRenderer,
|
||||
jlong vsyncSteadyClockTimeNano) {
|
||||
Renderer *renderer = (Renderer *) nativeRenderer;
|
||||
renderer->skipFrame(uint64_t(vsyncSteadyClockTimeNano));
|
||||
}
|
||||
|
||||
extern "C" JNIEXPORT jboolean JNICALL
|
||||
Java_com_google_android_filament_Renderer_nBeginFrame(JNIEnv *, jclass, jlong nativeRenderer,
|
||||
jlong nativeSwapChain, jlong frameTimeNanos) {
|
||||
|
||||
Reference in New Issue
Block a user