1
0
Fork 0
forked from wry/wry

gfx: wait for idle if rendering doesn't support explicit sync

This commit is contained in:
Julian Orth 2024-09-10 14:27:45 +02:00
parent 80c7a1f47c
commit 12c9b36ded
4 changed files with 7 additions and 2 deletions

View file

@ -129,6 +129,10 @@ impl EglDisplay {
.exts
.contains(KHR_FENCE_SYNC | KHR_WAIT_SYNC | ANDROID_NATIVE_FENCE_SYNC);
if !dpy.explicit_sync {
log::error!("Driver does not support explicit sync. Rendering will block.")
}
Ok(Rc::new(dpy))
}
}

View file

@ -66,7 +66,7 @@ dynload! {
glClear: unsafe fn(mask: GLbitfield),
glBlendFunc: unsafe fn(sfactor: GLenum, dfactor: GLenum),
glClearColor: unsafe fn(red: GLfloat, green: GLfloat, blue: GLfloat, alpha: GLfloat),
glFlush: unsafe fn(),
glFinish: unsafe fn(),
glReadnPixels: unsafe fn(
x: GLint,

View file

@ -86,7 +86,7 @@ impl Framebuffer {
let fd = run_ops(self, ops);
if fd.is_none() {
unsafe {
(gles.glFlush)();
(gles.glFinish)();
}
}
Ok(fd)

View file

@ -747,6 +747,7 @@ impl VulkanRenderer {
Ok(s) => Some(s),
Err(e) => {
log::error!("Could not export sync file from fence: {}", ErrorFmt(e));
self.block();
None
}
};