Vulkan: offscreen perftests: use two FBOs and call glFlush every frame
For offscreen variant of perf tests, we blit from offscreen to onscreen
for every frame and then every N frames we call swap. Right now we never
call glFlush. This causes test accumulate many frames rendering without
a flush, which changes the behavior. For example, gfxbench does issue
glFlush for every frame. This CL adds glFlush call for every frame when
swap is not called.
Also ARM native GLES driver and ANGLE skip glFlush call if it is issued
within the same FBO. For some traces that does not use any FBO, there
is no frame boundary for drivers to detect, versus for onscreen there is
actual frame boundary. To solve this mismatch problem, this CL also uses
two offscreen FBOs and ping pong between them so that it will still have
the frame boundary but not goes to screen. This allows drivers that try
to detect frame boundary still function properly.
Bug: b/184766477
Change-Id: I23edda66fdf391930afd3f6b1d955b41ec6ad019
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2861844
Commit-Queue: Charlie Lao <cclao@google.com>
Reviewed-by:
Cody Northrop <cnorthrop@google.com>
Reviewed-by:
Ian Elliott <ianelliott@google.com>
Reviewed-by:
Jamie Madill <jmadill@chromium.org>
Showing
Please
register
or
sign in
to comment