Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • xorg/xserver
  • avolkov/xserver
  • keithp/xserver
  • aplattner/xserver
  • ajax/xserver
  • ofourdan/xserver
  • anholt/xserver
  • abono/xserver
  • airlied/xserver
  • romangg/xserver
  • ross/xserver
  • mupuf/xserver
  • jturney/xserver
  • CendioOssman/xserver
  • kamarul6401/xserver
  • daenzer/xserver
  • afett/xserver
  • coypoop/xserver
  • 3v1n0/xserver
  • llandwerlin/xserver
  • alanc/xserver
  • lyudess/xserver
  • twaik/xserver
  • shadeslayer/xserver
  • djlucas/xserver
  • aditj/xserver
  • dbn/xserver
  • awilfox/xserver
  • rmader/xserver
  • peterh/xserver
  • dk/xserver
  • dslater38/xserver
  • yshui/xserver
  • PaulKocialkowski/xserver
  • dixler/xserver
  • bentiss/xserver
  • mbiebl/xserver
  • rarbab/xserver
  • causztic/xserver
  • agoins/xserver
  • kbrenneman/xserver
  • Hi-Angel/xserver
  • mlankhorst/xserver
  • rgfernandes/xserver
  • topimiettinen/xserver
  • bphaslett/xserver
  • adamjrichter/xserver
  • karolherbst/xserver
  • carlosg/xserver
  • jwrdegoede/xserver
  • mattrope/xserver
  • sthibaul/xserver
  • J-Bu/xserver
  • nacho.resa/xserver
  • emersion/xserver
  • xexaxo/xserver
  • 1480c1/xserver
  • knisht/xserver
  • mattst88/xserver
  • goosen78/xserver
  • zubzub/xserver
  • vsyrjala/xserver
  • gerddie/xserver
  • JeffyCN/xserver
  • gtrentalancia/xserver
  • lostgoat/xserver
  • headrush/xserver
  • jadahl/xserver
  • webi123/xserver
  • zeising/xserver
  • marv/xserver
  • puleglot/xserver
  • zwenna/xserver
  • TAAPArthur/xserver
  • doraskayo/xserver
  • maos20008/xserver
  • tjbp/xserver
  • pq/xserver
  • yarivb/xserver
  • miztake/xserver
  • lynxeye/xserver
  • zboszor/xserver
  • kwg/xserver
  • Gorg/xserver
  • lkundrak/xserver
  • justazarsky/xserver
  • HermannSW/xserver
  • E5ten/xserver
  • bbrezillon/xserver
  • manu/xserver
  • lucyllewy/xserver
  • marvinjr35/xserver
  • jbeich/xserver
  • dirbaio/xserver
  • strassek/xserver
  • mntmn/xserver
  • uvas/xserver
  • azhadchenko/xserver
  • anarsoul/xserver
  • stapelberg/xserver
  • peigongdsd/xserver
  • sjoerd/xserver
  • Ma/xserver
  • mherrb/xserver
  • pichika/xserver
  • qarmin/xserver
  • cooperch/xserver
  • davidriley/xserver
  • lucmann/xserver
  • chema/xserver
  • whot/xserver
  • xdandys/xserver
  • Spintzyk/xserver
  • mikeroyal/xserver
  • ydirson/xserver
  • SimonPilkington/xserver
  • daniels/xserver
  • andrebsguedes/xserver
  • chenhuacai/xserver
  • Vivek/xserver
  • meMuszr/xserver
  • MisterDA/xserver
  • linkmauve/xserver
  • starnight/xserver
  • ekurzinger/xserver
  • DPA/xserver
  • hmazlan/xserver
  • alagner/xserver
  • tagr/xserver
  • alex-tu-cc/xserver
  • kaniini/xserver
  • p12tic/xserver
  • valpackett/xserver
  • Kishore409/xserver
  • bernhardu/xserver
  • kaichuan.hsieh/xserver
  • icenowy/xserver
  • rilian-la-te/xserver
  • smelenius/xserver
  • vfjpl/xserver
  • mvlad/xserver
  • vliaskov/xserver
  • hitong602/xserver
  • haagch/xserver
  • freemangordon/xserver
  • tmlind/xserver
  • vitoux.pascal/xserver
  • luporl/xserver
  • hassoon1986/xserver
  • chengbo7135/xserver
  • sri-ka1ki/xserver
  • kaocher82/xserver
  • heymiaoO/xserver
  • xry111/xserver
  • jcristau/xserver
  • lanodan/xserver
  • jcourreges/xserver
  • dottedmag/xserver
  • jeremyhu/xserver
  • jcherry/xserver
  • Zamundaaa/xserver
  • gsittyz/xserver
  • OlCe/xserver
  • manuelcrack642/xserver
  • kupper.pa/xserver
  • ZhiJie.Zhang/xserver
  • Michaelypk/xserver
  • msizanoen1/xserver
  • andreyknyazev077/xserver
  • christian-rauch/xserver
  • karlosrangel337/xserver
  • niveditharau/xserver
  • antonovitch/xserver
  • galaxytgtabiday/xserver
  • ryanneph/xserver
  • ismailsiege/xserver
  • orbea/xserver
  • FeepingCreature/xserver
  • ydc-dadada/xserver
  • davidedmundson/xserver
  • arichardson/xserver
  • 1740301466jxz/xserver
  • DemiMarie/xserver
  • kennylevinsen/xserver
  • mrisaacb/xserver
  • robclark/xserver
  • JoseExposito/xserver
  • refi_64/xserver
  • kleinerm/xserver
  • Acidburn0zzz/xserver
  • vinilokorlok/xserver
  • cubanismo/xserver
  • n3rdopolis/xserver
  • mwyraz/xserver
  • halfline/xserver
  • cpmichael/modesetting
  • sherrodejjohnson/xserver
  • eschwartz/xserver
  • oreaus/xserver
  • jocelyn/xserver
  • ernstp/xserver
  • LickmeDown/xserver
  • Daasin/xserver
  • huxd1532/xserver
  • cgzones/xserver
  • davidre/xserver
  • jsg/xserver
  • zagursky/xserver
  • thesamesam/xserver
  • ashafer/xserver
  • dengbo/xserver
  • josch/xserver
  • denisfa/xserver
  • benpicco/xserver
  • Tuetuopay/xserver
  • tholin/xserver
  • tzimmermann/xserver
  • Sjecai2/xserver
  • tintou/xserver
  • zaps166/xserver
  • schreibemirhalt/xserver
  • tomty89/xserver
  • contactshashanksharma/xserver-fork-shashank
  • os369510/xserver
  • liyi42/xserver
  • Kyawswat/xserver
  • psyruss85/xserver
  • akihiko.odaki/xserver
  • StarsGreen/xserver
  • klniu/xserver
  • pekdon/xserver
  • pkubaj/xserver
  • kerneltoast/xserver
  • wengxt/xserver
  • vanvugt/xserver
  • cbur201592/xserver
  • bkylerussell/xserver
  • wujiangGitHub/xserver
  • frog/xserver
  • bafanahub/xserver
  • Ivaniku/x-taylan
  • bigon/xserver
  • jrtc27/xserver
  • djacewicz/xserver
  • kylin0061/xserver
  • Fatton1/xserver
  • gmbr3/xserver
  • devin11911191/xserver
  • guillem/xserver
  • mahkoh/xserver
  • acelan/xserver
  • dkorkmazturk/xserver
  • olv/xserver
  • SpikyCaterpillar1/xserver
  • lihongtao/xserver
  • luke-jr/xserver
  • karamjameelmoore/xserver
  • mehdigh419/xserver
  • wiz/xserver
  • ecurtin/xserver
  • muesli4/xserver
  • iv-m/xserver
  • ForTheReallys/xserver
  • BBaoVanC/xserver
  • ccullumbine2018/xserver
  • mgorse1/xserver
  • road2react/xserver
  • mwei/xserver
  • Rui511/xserver
  • ThatMG393/xserver
  • haihao/xserver
  • ipominov/xserver
  • tsutsui/xserver
  • fweimer/xserver
  • gilvbp/xserver
  • themaister/xserver
  • bbeckett/xserver
  • TMR5454/xserver
  • erwinou/xserver
  • aarondill/xserver
  • peng.jin/xserver
  • russellcnv/xserver
  • yangxiaojuan-loongson/xserver
  • LiChenG-P/xserver
  • looi/xserver
  • NSUTanghaixiang/xserver
  • XDXTHX/xserver
  • City-busz/xserver
  • arrowd/xserver
  • zzyiwei/xserver
  • dongwonk/xserver
  • EXtremeExploit/xserver
  • luyn/xserver
  • hexiaodong/xserver
  • sewn/xserver
  • cl91/xserver
  • rnpnr/xserver
  • adamdruppe/xserver
  • RyzenDew/xserver
  • jexposit/xserver
  • svalaskevicius/xserver
  • floppym/xserver
  • metux/xserver
  • YusufKhan-gamedev/xserver
  • Drakulix/xserver
  • wjp/xserver
  • dawnhan/xserver
  • noblock/xserver
  • zzag/xserver
  • catap/xserver
  • trevdave/xserver
  • ids1024/xserver
  • gabifalk/xserver
  • Emantor/xserver
  • sknsean/xserver
  • hongaoo/xserver
  • penguin42/xserver
  • heitbaum/xserver
  • fvalasiad/xserver
  • AkiSakurai/xserver
  • chenx_dust/xserver
  • jmonteiro/xserver
  • gldrk/xserver
  • dougg3/xserver
  • pepp/xserver
  • Julia/xserver
  • nathankidd/xserver
  • jannau/xserver
  • zhangyaning/xserver
  • xinbowang/xserver
  • sergiomb/xserver
  • andy-zetier/xserver
  • jayantpranjal0/xserver
  • zzxyb/xserver
  • dkg/xserver
  • GermanAizek/xserver
  • dougvj/xserver
  • volkanorhan/xserver
  • rbernon/xserver
  • matt335672/xserver
  • gfxstrand/xorg-xserver
  • nicolas-guichard/xserver
  • rc_05/xserver
343 results
Show changes
Commits on Source (3)
......@@ -437,8 +437,8 @@ xwl_eglstream_consumer_ready_callback(void *data,
DebugF("eglstream: win %d completes eglstream for pixmap %p, congrats!\n",
pending->window->drawable.id, pending->pixmap);
xwl_eglstream_window_set_pending(pending->window, NULL);
out:
xwl_eglstream_window_set_pending(pending->window, NULL);
xorg_list_del(&pending->link);
free(pending);
}
......@@ -939,4 +939,5 @@ xwl_glamor_init_eglstream(struct xwl_screen *xwl_screen)
xwl_screen->eglstream_backend.post_damage = xwl_glamor_eglstream_post_damage;
xwl_screen->eglstream_backend.allow_commits = xwl_glamor_eglstream_allow_commits;
xwl_screen->eglstream_backend.is_available = TRUE;
xwl_screen->eglstream_backend.backend_flags = XWL_EGL_BACKEND_NO_FLAG;
}
......@@ -1116,4 +1116,7 @@ xwl_glamor_init_gbm(struct xwl_screen *xwl_screen)
xwl_screen->gbm_backend.init_screen = xwl_glamor_gbm_init_screen;
xwl_screen->gbm_backend.get_wl_buffer_for_pixmap = xwl_glamor_gbm_get_wl_buffer_for_pixmap;
xwl_screen->gbm_backend.is_available = TRUE;
xwl_screen->gbm_backend.backend_flags = XWL_EGL_BACKEND_HAS_PRESENT_FLIP |
XWL_EGL_BACKEND_NEEDS_BUFFER_FLUSH |
XWL_EGL_BACKEND_NEEDS_N_BUFFERING;
}
......@@ -176,6 +176,37 @@ glamor_egl_fd_name_from_pixmap(ScreenPtr screen,
return 0;
}
Bool
xwl_glamor_has_present_flip(struct xwl_screen *xwl_screen)
{
if (!xwl_screen->glamor || !xwl_screen->egl_backend)
return FALSE;
return (xwl_screen->egl_backend->backend_flags &
XWL_EGL_BACKEND_HAS_PRESENT_FLIP);
}
Bool
xwl_glamor_needs_buffer_flush(struct xwl_screen *xwl_screen)
{
if (!xwl_screen->glamor || !xwl_screen->egl_backend)
return FALSE;
return (xwl_screen->egl_backend->backend_flags &
XWL_EGL_BACKEND_NEEDS_BUFFER_FLUSH);
}
Bool
xwl_glamor_needs_n_buffering(struct xwl_screen *xwl_screen)
{
/* wl_shm benefits from n-buffering */
if (!xwl_screen->glamor || !xwl_screen->egl_backend)
return TRUE;
return (xwl_screen->egl_backend->backend_flags &
XWL_EGL_BACKEND_NEEDS_N_BUFFERING);
}
void
xwl_glamor_init_backends(struct xwl_screen *xwl_screen, Bool use_eglstream)
{
......
......@@ -32,10 +32,20 @@
#include "xwayland-types.h"
typedef enum _xwl_egl_backend_flags {
XWL_EGL_BACKEND_NO_FLAG = 0,
XWL_EGL_BACKEND_HAS_PRESENT_FLIP = (1 << 0),
XWL_EGL_BACKEND_NEEDS_BUFFER_FLUSH = (1 << 1),
XWL_EGL_BACKEND_NEEDS_N_BUFFERING = (1 << 2),
} xwl_egl_backend_flags;
struct xwl_egl_backend {
/* Set by the backend if available */
Bool is_available;
/* Features and requirements set by the backend */
xwl_egl_backend_flags backend_flags;
/* Called once for each interface in the global registry. Backends
* should use this to bind to any wayland interfaces they need.
*/
......@@ -109,6 +119,10 @@ void xwl_glamor_post_damage(struct xwl_window *xwl_window,
PixmapPtr pixmap, RegionPtr region);
Bool xwl_glamor_allow_commits(struct xwl_window *xwl_window);
void xwl_glamor_egl_make_current(struct xwl_screen *xwl_screen);
Bool xwl_glamor_has_present_flip(struct xwl_screen *xwl_screen);
Bool xwl_glamor_needs_buffer_flush(struct xwl_screen *xwl_screen);
Bool xwl_glamor_needs_n_buffering(struct xwl_screen *xwl_screen);
#ifdef XV
/* glamor Xv Adaptor */
......
......@@ -540,10 +540,7 @@ xwl_present_init(ScreenPtr screen)
{
struct xwl_screen *xwl_screen = xwl_screen_get(screen);
/*
* doesn't work with the EGLStream backend.
*/
if (xwl_screen->egl_backend == &xwl_screen->eglstream_backend)
if (!xwl_glamor_has_present_flip(xwl_screen))
return FALSE;
if (!dixRegisterPrivateKey(&xwl_present_window_private_key, PRIVATE_WINDOW, 0))
......
......@@ -330,10 +330,8 @@ xwl_screen_post_damage(struct xwl_screen *xwl_screen)
return;
#ifdef XWL_HAS_GLAMOR
if (xwl_screen->glamor &&
xwl_screen->egl_backend == &xwl_screen->gbm_backend) {
if (xwl_glamor_needs_buffer_flush(xwl_screen))
glamor_block_handler(xwl_screen->screen);
}
#endif
xorg_list_for_each_entry_safe(xwl_window, next_xwl_window,
......
......@@ -279,6 +279,11 @@ xwl_window_buffers_get_pixmap(struct xwl_window *xwl_window,
window_pixmap = (*xwl_screen->screen->GetWindowPixmap) (xwl_window->window);
#ifdef XWL_HAS_GLAMOR
if (!xwl_glamor_needs_n_buffering(xwl_screen))
return window_pixmap;
#endif /* XWL_HAS_GLAMOR */
xwl_window_buffer = xwl_window_buffer_get_available(xwl_window);
if (!xwl_window_buffer)
return window_pixmap;
......