Feature: Add XRender-GLX hybird backend
- Add new backend "xr_glx_hybird", which uses X Render for all compositing but GLX on the last step of rendering to screen. This makes GLX-backend-specific VSync methods usable while may avoid certain bugs with GLX backend. The idea comes from ali1234. Experimental. - GLX backend: Stop using or rendering to depth buffer. - Use glFinish() instead of glFlush() before VSync. It probably uses more CPU but could be more reliable than glFlush().
This commit is contained in:
@ -124,7 +124,8 @@ glx_init(session_t *ps, bool need_render) {
|
||||
if (need_render) {
|
||||
glx_on_root_change(ps);
|
||||
|
||||
// glEnable(GL_DEPTH_TEST);
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glDepthMask(GL_FALSE);
|
||||
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
@ -880,7 +881,7 @@ glx_set_clip(session_t *ps, XserverRegion reg, const reg_data_t *pcache_reg) {
|
||||
|
||||
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
|
||||
glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
|
||||
glDepthMask(GL_TRUE);
|
||||
// glDepthMask(GL_TRUE);
|
||||
}
|
||||
|
||||
cxfree(rects_free);
|
||||
|
Reference in New Issue
Block a user