On Mon, 4 Nov 2019 16:41:15 +0100 michael bouchaud <michael.bouch...@gmail.com> said:
> 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 This shouldn't be necessary. In drm/fb mode the window will automatically be told it's focused. it works for me without such a workaround in terminology... i can type in: elementary_test -to "Entry 3" no problems. no workarounds in elementary_test.... :) > 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 -- ------------- 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