summaryrefslogtreecommitdiff
path: root/src/modules/evas/engines/drm/evas_engine.h (follow)
AgeCommit message (Collapse)Author
2019-03-22evas drm: Implement support for outbuf_idle_flushChristopher Michael
2019-03-22evas drm: Implement support for damage_region_setChristopher Michael
Summary: This patch implements engine support for outbuf_damage_region_set that we can use to mark a framebuffer as being dirty, and to set the dirty regions on that framebuffer. ref T7690 Depends on D8403 Reviewers: raster, cedric, zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7690 Differential Revision: https://phab.enlightenment.org/D8404
2019-03-22evas drm: Fix software output rotationChristopher Michael
Summary: Don't use redraws_clear to handle buffer swapping. Buffer swapping should be done on outbuf_flush. This patch fixes evas drm software output rotation (along with other patches in the series). ref T7690 @fix Depends on D8402 Reviewers: raster, cedric, zmike Subscribers: #reviewers, #committers Tags: #efl Maniphest Tasks: T7690 Differential Revision: https://phab.enlightenment.org/D8403
2018-07-10evas_drm: Trim the queue of buffers if we've had extra for too longDerek Foreman
Summary: In fixing T7099 I've also allowed the buffer queue to grow quite large, so now we should prune it back if it's bigger than it needs to be for a long time. ref T7099 Depends on D6565 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #committers, zmike Tags: #efl Maniphest Tasks: T7099 Differential Revision: https://phab.enlightenment.org/D6566
2018-07-10evas_drm: Move MAX_BUFFERS macro from header to source fileDerek Foreman
Summary: It's no longer needed in the header because it doesn't change the size of the structures there anymore. Depends on D6564 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #committers, zmike Tags: #efl Differential Revision: https://phab.enlightenment.org/D6565
2018-07-10evas_drm: Allocate buffers on demandDerek Foreman
Summary: Instead of allocating a fixed number of buffers immediately, allocate buffers if needed to render to. Normally we only need 2 buffers, but we've been allocating 3 to handle worse case behaviour. As T7099 shows, this is not always enough. We now cap at a max of 10. For the normal case where we always use 2 this results in a slight memory reduction (1 buffer) and a slight renering load reduction because we pick the oldest buffer to render into. A future patch will trim the buffer queue if it's been too large for a long time. fix T7099 Depends on D6563 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #committers, zmike Tags: #efl Maniphest Tasks: T7099 Differential Revision: https://phab.enlightenment.org/D6564
2018-07-10evas_drm: replace outbuf fb array with a listDerek Foreman
Summary: This is just a step towards making it a variable length. ref T7099 Depends on D6562 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #committers, zmike Tags: #efl Maniphest Tasks: T7099 Differential Revision: https://phab.enlightenment.org/D6563
2018-07-10evas_drm: Make the fbs an array of pointersDerek Foreman
Summary: Use pointers instead of an array of structures, since we're going to replace the array with a list shortly. ref T7099 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #committers, zmike Tags: #efl Maniphest Tasks: T7099 Differential Revision: https://phab.enlightenment.org/D6562
2017-11-20drm ee: Allow more than 4 buffersDerek Foreman
Multi-head is hitting corner cases where there are lots of locked buffers and it looks like right now 5 is the magic number that makes the problem go away. Make it possible to set 5 or more (via env var) for testing, make a macro for MAX_BUFFERS instead of just a number.
2017-11-06evas-drm: Remove need for useless free_region functionChris Michael
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-09-19evas-drm: Override eng_output_resize functionChris Michael
This patch provides an override in the evas drm engine for the output resize function. We override this function so that we can reconfigure the output buffer. ref T5999 Signed-off-by: Chris Michael <cp.michael@samsung.com>
2017-08-25evas: Render_Engine_Swap_Mode is actually about output swap.Cedric BAIL
2017-08-09ecore_drm2: Pass Ecore_Drm2_Device instead of fd to most functionsDerek Foreman
Intended to simplify the upcoming commit that merges device find and device open into a single function that returns a device. The fd is something callers shouldn't really need to get their hands on, right now there are still a few places where it's needed, but those will be gone soon too.
2017-05-05drm-ee: Use a plane for the evasDerek Foreman
Assign a plane at startup and update it in flip.
2016-10-19evas_engines: Send both surface and buffer damage to outbuf_flush callbackDerek Foreman
Some engines should using sending surface damage, until now we'd only ever provided them with buffer damage. The difference is that surface damage is the damage to the surface the compositor is displaying, and the buffer damage is the damage to the buffer the client has rendered. These are different when the client is using multiple buffers of different ages to render into. Anything that calls eglSwapBuffersWithDamage, wl_surface_damage() or wl_surface_damage_buffer() should be using surface damage, and not buffer damage. This patch is intended to make no functional change - any flush cb that used buffer damage before still should. Actual fixes to follow. Apologies if I broke any engines - it's a bit of a copy and wasteland out here.
2016-09-08ee_drm: simplify flippingDerek Foreman
We no longer have to track draw and display buffers - the display buffer is completely handled by ecore_evas_drm's busy tracking.
2016-09-08ee_drm: Get page flips out of the render threadDerek Foreman
Now that we have redraws_clear exposed through software generic, we can use that to do the final buffer swap from the main thread instead of doing it in outbuf_flush which runs from the render thread. This becomes more important later when other call sites in the main thread will perform buffer flips.
2016-09-08ee_drm: Move all ticking into ecore_evas_drm and use new tick systemDerek Foreman
Combines all the gl_drm and drm ticking code into one set in ecore_evas_drm and uses the new evas tick register/unregister callbacks to set it up.
2016-09-08ee_drm: use the ecore_drm2_fb busy bitDerek Foreman
Use the new busy getter/setter on the fb instead of keeping state in the outbuf
2016-07-14ecore_drm2: Fix page flippingDerek Foreman
Properly handle the ticker racing ahead of the refresh rate by once again triple buffering. Fixes T3819
2016-05-27evas-engines: Port evas drm engines to use Ecore_Drm2 libraryChris Michael
This patch ports the evas drm and gl_drm engines to use the new Ecore_Drm2 library Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2015-06-02evas-drm: Remove useless fields from Outbuf structureChris Michael
Summary: These fields are not needed in the outbuf structure as they are never used, so just remove them. Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-02evas-drm: Minor formatting fixChris Michael
NB: No functional changes Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-10evas-drm: Cleanup evas_engine header fileChris Michael
Summary: With the evas drm engine refactor, a lot of these fields in the Outbuf structure are unused so remove them. This also removes unused private function declarations. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-09evas-drm: Use Ecore_Drm_Fb for framebuffersChris Michael
Summary: This commit changes the evas drm engine to use Ecore_Drm_Fb for framebuffers. We remove the old 'Buffer' structure from the evas engine and replace it in Outbuf with Ecore_Drm_Fb. This also removes unused functions from the evas_drm.c file as we can now use ecore_drm_fb calls @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-09-23evas/engines: avoid redefinition of typedef OutbufJérémy Zurcher
'typedef struct _Outbuf Outbuf' is in software_generic/Evas_Engine_Software_Generic.h that is always included
2014-08-27evas/drm: Remove rest of the tty handling which is now unusedStefan Schmidt
With the move to ecore_drm for tty handling these all became unused. Ecore_drm already takes care of setting up the SIGUSR1/2 handler and the rest of the tty setup. Now that this is gone evas_drm_init/shutdown have no functionality anymore either.
2014-07-16evas/drm: Make use of ecore_drm for opening DRM deviceStefan Schmidt
We use this functionality already from ecore_drm. The evas version does not even use udev to acquire the device which means we could not support hotplugging. The only missing feature was the capability check for DUMB_BUFFER which I added to ecore_drm now. This is the second iteration of this patch. Thsi time also taking expedite runs of he evas drm engine in account.
2014-07-09evas: correct multi buffer support.Cedric BAIL
2014-07-08Revert "evas/drm: Make use of ecore_drm for opening DRM device"Chris Michael
This reverts commit 31ad73efa96b6c4c2ab01366a0897e6fadad48e4. Conflicts: src/modules/evas/engines/drm/evas_engine.c Revert this commit as these functions are needed to run evas engine standalone (expedite) on drm
2014-07-04evas: add more infrastructure to software_generic backend to be ready for ↵Cedric BAIL
GL_X11 migration.
2014-07-04evas: simplify DRM backend to use Software generic infrastructure more.Cedric BAIL
2014-06-30evas/drm: Make use of ecore_drm for opening DRM deviceStefan Schmidt
We use this functionality already from ecore_drm. The evas version does not even use udev to acquire the device which means we could not support hotplugging. The only missing feature was the capability check for DUMB_BUFFER which I added to ecore_drm now.
2014-04-04evas-drm: Remove all async_page_flip options/referencesChris Michael
Async page flip can cause tearing, is not supported on all cards, and apparently requires a specific libdrm patchlevel...in general, more trouble than it's worth, so let's just remove it. @bugfix Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-18evas-drm: Fix engine to use the output's framebuffer as window idChris Michael
@fix: ecore_evas_window_get expects an Ecore_Window to be returned. Because of this, we need to have a 'window' that can be returned via ecore_evas. For this case, we will use the output's framebuffer id as the 'window' so we need to set that into the engine info so that ecore_evas can fetch it. Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10evas-drm: Remove private framebuffer field from Outbuf structureChris Michael
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-02-28evas-drm: cleanup outbuf structure and functionsChris Michael
@bugfix: this cleans up the Outbuf structure by removing unused fields, Fixing some function declarations, and defaulting the number of buffers to 2 (double-buffering) Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-02-28evas-drm: Start on hardware Plane supportChris Michael
@feature: Start on hardware Plane support - Add Plane structure - Store list of Planes in the Output buffer Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-02-28evas-drm: Triple buffer by default.Chris Michael
@feature: Triple buffer by default on drm engine Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-02-28evas-drm: Add Evas Drm Engine (software only currently)Chris Michael
@feature: Add working Evas_Drm Engine (software only currently) Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-12-26efl: Unified eina critical manro to CRI.Daniel Juyung Seo
Being annoyed by different types of eina critical macros - CRI, CRIT, CRITICAL -, I concluded to unify them to one. Discussed on IRC and finally, CRI was chosen to meet the consistency with other macros - ERR, WRN, INF, DBG - in terms of the number of characters. If there is any missing bits, please let me know.
2013-05-01Add enum for swap mode.Chris Michael
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-01Change rotation to unsigned int.Chris Michael
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-05-01Add evas_outbuf_reconfigure function prototypeChris Michael
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-30Add Outbuf structure and some function prototypesChris Michael
NB: These are not finalized yet and may change. Signed-off-by: Chris Michael <cp.michael@samsung.com>
2013-04-29Add logging macros to drm engine.Chris Michael
Signed-off-by: Chris Michael <cp.michael@samsung.com>