Hi Jing, As you're running now your app without window manager you need to tell your app is focused. Check the code into terminology with the nowm option (check below). https://git.enlightenment.org/apps/terminology.git/tree/src/bin/main.c#n656
Regards Le lun. 4 nov. 2019 à 13:03, Jing <chenjing...@126.com> a écrit : > Hi Carsten, > Follow your advice, i change to use drm method and the image tearing issue > is fixed now, but i met new issue that, the application layer can not > receive the KEY/BUTTON UP and DOWN events any more. > _ecore_fb_li_device_event_key() in ecore_fb_li.c can received the event, > but in application layer i use function > ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, keyDownCB, cardstack); The > callback function will not be called. > > > Please help to advise how fix this issue, many thanks. > > At 2019-09-28 01:34:32, "Carsten Haitzler" <ras...@rasterman.com> wrote: > >On Fri, 27 Sep 2019 13:42:09 +0800 (CST) Jing <chenjing...@126.com> > said: > > > >> Hi Carsten, > >> > >> > >> Thanks for your reply. You are saying "drm can be vsynced and tear-free > even > >> if it is configured without gl-drm", right? > > > >drm is separate to gl_drm. drm is software rendered but with display > target of > >drm/kms. gl_drm is opengl rendered with a display target of drm/kms. kms > allows > >for tear-free vsynced display of buffers direct to "the framebuffer" (not > >fbcon which is the old single front-buffered kernel fb display). > > > >> But from source code in > src/modules/ecore_evas/engines/drm/ecore_evas_drm.c, > >> it seems only enabling vsync with option BUILD_ECORE_EVAS_GL_DRM, how > can we > >> build efl to enable vsync without gl-drm package: > > > >drm/kms vsync by design. google "kernel mode switching" :) just try it... > > > >> #ifdef BUILD_ECORE_EVAS_GL_DRM > >> if (tinfo && gl) > >> { > >> char *num; > >> Evas_Engine_Info_GL_Drm *einfo = tinfo; > >> > >> einfo->info.vsync = EINA_TRUE; > >> > >> num = getenv("EVAS_DRM_VSYNC"); > >> if ((num) && (!atoi(num))) > >> einfo->info.vsync = EINA_FALSE; > >> > >> einfo->info.dev = edata->dev; > >> einfo->info.bpp = edata->bpp; > >> einfo->info.depth = edata->depth; > >> einfo->info.format = edata->format; > >> einfo->info.rotation = ee->rotation; > >> einfo->info.output = edata->output; > >> if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo)) > >> { > >> ERR("evas_engine_info_set() for engine '%s' failed", > ee->driver); > >> goto eng_err; > >> } > >> } > >> else > >> #endif > >> > >> > >> Looking forward to your reply, thanks. > >> > >> At 2019-09-23 22:13:11, "Carsten Haitzler" <ras...@rasterman.com> > wrote: > >> >On Mon, 23 Sep 2019 14:02:09 +0800 (CST) Jing <chenjing...@126.com> > said: > >> > > >> >> Hi Carsten, > >> >> Thanks for your reply. Correction: Actually, we didn't use X11 and > only > >> >> use frame buffer, based on our flash and memory performance > considering, > >> >> we are using a light configuration, here is our configuration for > your > >> >> reference. Our system do support basic drm, but vsync needs gl_drm(we > >> >> didn't have gl accelerate), do you have any simple option to avoid > tear > >> >> issue or implemented a simple ping pong buffer mechanism. > >> > > >> >there's gl_drm that needs gl accel an also just drm which is software > >> >rendered, but uses kms/drm to display buffers. this will be vsynced and > >> >tear-free. the fb backend will tear because of the reasons i already > gave in > >> >the previous mail. :) > >> > > >> >> --with-tests=none --disable-systemd --disable-doc > --disable-cxx-bindings > >> >> --enable-fb --disable-cocoa --disable-poppler --disable-spectre > >> >> --disable-libraw --disable-xcf --disable-libmount --disable-audio > >> >> --disable-avahi --disable-pulseaudio --disable-xinput2 --disable-xim > >> >> --disable-scim --disable-ibus --disable-elua --without-glib > --with-x11=none > >> >> --with-opengl=none --without-x --without-mount --without-umount > >> >> --without-eject --disable-image-loader-bmp --disable-image-loader-dds > >> >> --disable-image-loader-tgv --disable-image-loader-xpm > >> >> --disable-image-loader-webp --disable-image-loader-wbmp > >> >> --disable-image-loader-tiff --disable-image-loader-tga > >> >> --disable-image-loader-psd --disable-image-loader-pmaps > >> >> --disable-image-loader-jp2k --disable-image-loader-ico > >> >> --disable-image-loader-gif --disable-gstreamer1 --disable-xinput22 > >> >> --disable-librsvg --disable-vg-loader-svg --disable-vg-loader-eet > >> >> --with-crypto=none --disable-doc --disable-v4l2 --disable-libvlc > >> >> --with-net-control=none --disable-libeeze --disable-gesture > >> >> --disable-xpresent --disable-cserve --disable-always-build-examples > >> >> --with-profile=dev --disable-physics --disable-valgrind > >> >> --disable-quick-launch > >> >> > >> >> > >> >> Looking forward to your reply, thanks. > >> >> > >> >> At 2019-09-21 15:53:12, "Carsten Haitzler" <ras...@rasterman.com> > wrote: > >> >> >On Sat, 21 Sep 2019 13:47:40 +0800 (CST) Jing <chenjing...@126.com> > said: > >> >> > > >> >> >> I use efl-1.21.1(define the image/rect in edc file) to develop in > linux > >> >> >> environment. Using X11 and framebuffer. Looking forward to your > reply, > >> >> >> thanks. > >> >> > > >> >> >what framebuffer engine/rendering path? in x11 what rendering > engine? what > >> >> >windowmanager/compositor? > >> >> > > >> >> >tl;dr; short version: this stuff is complicated and crosses lots of > >> >> >software boundaries (protocols, kernel vs xserver vs client vs > multiple > >> >> >toolkits vs compositor etc.). i'll cover some of those details > below s > >> >> >you didn't tell me everything above. > >> >> > > >> >> >if you are using the fb engine for framebuffer rendering, then it > has no > >> >> >vsync or double buffering support. it's built on the old /dev/fb > interface > >> >> >and mmaps the existing fb and renders to cpu local memory then > copies > >> >> >stuff to the framebuffer. thus it will tear at times. that's life > with > >> >> >fbcon as it doesn't have buffer swapping semantics (it could > allocated > >> >> >double-height buffers and do panning... but it still has no ability > to > >> >> >explicitly vsync this so will still lead to tearing). that's why > there is > >> >> >a drm engine... thus sues drm/kms as the framebuffer interface > which does > >> >> >have swapping/atomic/vsync semantics and will then not tear. this > is the > >> >> >engine that e uses as a wayland compositor (well drm or gl_drm > depending > >> >> >if you have gl accel on or not). > >> >> > > >> >> >with software rendering in x11, no mechanism exists to explicitly > avoid > >> >> >tearing for clients (ignoring the double buffer extension in x > which > >> >> >doesn't actually provide SWAPPING mechanics and leads to worse > performance > >> >> >anyway. it at best does copies from the backbuffer to the window... > - i > >> >> >can go into gory details if you want). > >> >> > > >> >> >if you have no compositor in x then rendering goes straight to the > >> >> >frontbuffer framebuffer. by that i mean the update regions once > filled by > >> >> >the cpu in shared memory are COPIED over to the window which lives > in the > >> >> >framebuffer. if it's composited then these regions are copied to the > >> >> >pixmap that represents the window and the compositor will, at some > point > >> >> >after that render that pixmap to its own backbuffer and swap and the > >> >> >compositor itself may also tear in its presenting to the screen > depending > >> >> >on the compositor you have. i have seen compiz (the compositor > ubuntu has > >> >> >used for unity) EXPLICITLY do copies to the front buffer to try to > do > >> >> >partial update rendering to reduce rendering amount BUT at the > expense of > >> >> >always tearing. that's why i asked. > >> >> > > >> >> >efl/e only does this in the software path - with the gl path we > always > >> >> >buffer swap and request vsynced swaps if asked (tear-free0 for the > >> >> >compositor. we can't do anything about the client rendering, but if > >> >> >clients use gl as well and do swaps then they have a chance of the x > >> >> >implementation doing proper buffer swaps (not copies) from the gl > >> >> >backbuffer to the composited target pixmap (exchange the buffers if > sizes > >> >> >match). again - depends on your compositor/wm and how it may > reparent > >> >> >windows and do frame draws. e doesn't draw frames via x when > compositing > >> >> >but does it in-compositor making the client pixmap an exact 1:! of > the > >> >> >client window with frame drawn around it only in the compositing > step. > >> >> >other wm's compositors may reparent and raw frame inside the parent > >> >> >window, thus forcing x to copy to the composited pixmap, thus > tearing... > >> >> > > >> >> >wayland avoids this by using CSD (client side decorations) and > being an > >> >> >explicit buffer presentation protocol, thus being designed from the > >> >> >ground up to avoid tearing as long s e everyone does everything > right. > >> >> >tearing in x is "part of life". > >> >> > > >> >> >if you have the right compositor you can reduce tearing but it will > ever > >> >> >go away in x. in theory i could have designed a private x11 display > >> >> >protocol between efl and e and literally do what wayland does - > present > >> >> >whole pixmaps with update/damage region metadata via x client > messages > >> >> >and have the x compositor render them without tearing but it'd be > then > >> >> >only for efl apps using software rendering in enlightenment and > nowhere > >> >> >else. this would still result in extra copies if e is also software > >> >> >rendering as a compositor and i'd have to actually do a private shm > >> >> >buffer sharing scheme between efl clients and x... and even then the > >> >> >compositor itself will still tear as there is no way for a software > >> >> >rendering compositor to ensure it gets to atomically present an > updated > >> >> >render buffer in x11 ... unless we move to gl. :) > >> >> > > >> >> >> At 2019-09-20 20:55:53, "Carsten Haitzler (The Rasterman)" > >> >> >> <ras...@rasterman.com> wrote: > >> >> >> >On Fri, 20 Sep 2019 18:48:14 +0800 (CST) Jing < > chenjing...@126.com> > >> >> >> >said: > >> >> >> > > >> >> >> >> Hi all, > >> >> >> >> > >> >> >> >> > >> >> >> >> I met a problem that when i slide the screen(mouse move), the > edge of > >> >> >> >> the image or rectangle object will tear( appear jagged, see my > >> >> >> >> attached snapshot). I have set various values with > >> >> >> >> ecore_animator_frametime_set, but there is no improvement. > What can > >> >> >> >> I do to fix this issue? Please help, thanks a lot. > >> >> >> > > >> >> >> >what environment? x? wayland? what is rendering the object? what > kind > >> >> >> >of environment? > >> >> >> > > >> >> >> >-- > >> >> >> >------------- Codito, ergo sum - "I code, therefore I am" > >> >> >> >-------------- Carsten Haitzler - ras...@rasterman.com > >> >> >> > >> >> >> _______________________________________________ > >> >> >> enlightenment-devel mailing list > >> >> >> enlightenment-devel@lists.sourceforge.net > >> >> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> >> > > >> >> > > >> >> >-- > >> >> >------------- Codito, ergo sum - "I code, therefore I am" > -------------- > >> >> >Carsten Haitzler - ras...@rasterman.com > >> > > >> > > >> >-- > >> >------------- Codito, ergo sum - "I code, therefore I am" > -------------- > >> >Carsten Haitzler - ras...@rasterman.com > >> > >> _______________________________________________ > >> enlightenment-devel mailing list > >> enlightenment-devel@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > >-- > >------------- Codito, ergo sum - "I code, therefore I am" -------------- > >Carsten Haitzler - ras...@rasterman.com > > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- Michaël Bouchaud _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel