path: root/src/lib/ecore_drm2 (follow)
AgeCommit message (Collapse)Author
2018-01-09ecore-drm2: return supported rotations if not using hardwareChris Michael
If we are Not using Atomic/Hardware support for output rotations, we should return all available rotations as these will still work in software mode. @fix Signed-off-by: Chris Michael <>
2018-01-09ecore-drm2: Fix enabling outputsChris Michael
Commit 9d583b3fdbed686642dbc0d96d1e417485ca0077 broke ecore_drm2_output_enabled_set function due changing order of setting output->enabled value. This patch fixes both issues by checking the 'enabled' variable being passed in. @fix Signed-off-by: Chris Michael <>
2018-01-05ecore_drm2: Remove pointless gotoDerek Foreman
This "out" label probably used to be the target of multiple gotos, but now it's just being used to jump over a single line of code.
2018-01-05ecore_drm2: Don't fail if there's no boot_vga deviceDerek Foreman
In a multi-seat configuration it's quite likely that only one seat will have a boot_vga device. While we should use the boot_vga device if possible, we shouldn't fail just because a seat's gpu isn't the boot_vga device. Fallback to the last viable drm device we saw. Reported-by: n3rdopolis ref D5712 ref T6455
2018-01-04efl: remove _MSC_VER (Visual Studio macro) usage in source codeVincent Torri
2017-11-01ecore-drm2: Fix issue of not being able to set output modeChris Michael
If we pass in screen geometry here when trying to set an output mode, we can encounter "out of memory" errors from libdrm with outputs that have a high resolution. As it turns out, we should be passing 0, 0 for the x/y values when trying to set an output mode. @fix Signed-off-by: Chris Michael <>
2017-09-19ecore-drm2: Minor formatting fixChris Michael
NB: No functional changes Signed-off-by: Chris Michael <>
2017-09-05ecore_drm2: Better handling of blank time checksDerek Foreman
On some systems we'll successfully complete the vblank ioctl but get a reply of 0. When that happens we can't use that time for ticking as it will break all of the entire world. Fixes immediate screen blank on rpi3. @ref T5977
2017-08-24ecore-drm2: Add API to allow setting pointer acceleration profileChris Michael
Small patch to allow setting pointer acceleration profile (for wayland) from within Enlightenment. ref T4736 @feature Signed-off-by: Chris Michael <>
2017-08-24ecore-drm2: Add API function to allow setting pointer acceleration speedChris Michael
Small patch to add a new API function which can be called from Enlightenment in order to allow setting pointer acceleration speed. ref T4736 @feature Signed-off-by: Chris Michael <>
2017-08-11ecore_drm2: Add query for pending pageflipDerek Foreman
We've been tracking this in ecore_evas, but ecore_evas isn't the only caller, and it doesn't know about flips initiated by the evas engines.
2017-08-09ecore_drm2: Remove ecore_drm2_output_resolution_get()Derek Foreman
No local callers. Superseded by ecore_drm2_output_info_get()
2017-08-09ecore_drm2: Remove ecore_drm2_output_crtc_size_get()Derek Foreman
Replaced with ecore_drm2_output_info_get()
2017-08-09ecore_drm2: Remove ecore_drm2_output_geometry_get()Derek Foreman
Replaced with ecore_drm2_output_info_get()
2017-08-09ecore_drm2: Add ecore_drm2_output_info_getDerek Foreman
We've got too many ways to query output information, so let's add more. (this will soon replace all of them)
2017-08-09ecore_drm2: Remove useless safety checksDerek Foreman
Now that the device is opened and found in one operation it's impossible to have fd == -1, so we can stop testing for it.
2017-08-09ecore_drm2: Merge ecore_drm2_device_free and _closeDerek Foreman
There's no reason to have them be separate, all callers must do them back to back, so let's just combine them.
2017-08-09ecore_drm2: Merge ecore_drm2_device_find and ecore_drm2_device_openDerek Foreman
There's never a reason to find a device and not open it, so all callers end up calling these two functions back to back.
2017-08-09ecore_drm2: Remove connector bitfieldDerek Foreman
This is unreliable - there's no reason to expect these connector ids will be low enough to sensibly store in a bit field.
2017-08-09ecore_drm2: remove unused crtc bitfieldDerek Foreman
We'll need something like this when multi-head works, but it can't be implemented this way anyway. There's no guarantee that crtc ids will be low enough to fit sensibly in a bitfield.
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-08-04ecore_drm2: Fix linker problemsDerek Foreman
Accidentally used functions in the library directly instead of through the sym_* dlsym looked-up variants. Why this only caused problems in some installations may still be worth investigating - we may be pulling in libdrm at link time from some other library?
2017-07-31ecore_drm2: Stop making dumb fbs and mmapping for gbm fdsDerek Foreman
We were doing this so E could do screenshots in a hackish way, E has been fixed so this hack here no longer needs to live.
2017-07-31ecore_drm2: Remove dead code in blank time getDerek Foreman
When I added the fallback block I left an if statement that could never evaluate to true. Remove it.
2017-07-30ecore_drm2 - fix startup if edid blob is null.. assume all 0'sCarsten Haitzler (Rasterman)
this causes a crash when no edid is available. survive and dont crash. this causes e wayland to not work at all on my baytrail laptop. @fix
2017-07-28ecore_drm2: Add a fallback method for vblank waitingDerek Foreman
We can't depend on vblank waits being implemented by the driver, but we can count on page flips functioning, so add a fallback that does a page flip and waits for it.
2017-07-28ecore_drm2: Allow picking a sequence number for blanktime_getDerek Foreman
This lets us do a blocking wait for a vsync. Something we should try to do as infrequently as possible, but in some cases we need it one time at startup to catch graphics driver bugs.
2017-07-21ecore_drm2: Ensure device we find can mode setDerek Foreman
Some systems have dri devices that can't mode set, and if they're first in the directory they'll get picked by our code and things fall apart later. So, open the potential device and ensure it has basic functionality before selecting it. This is a little inefficient as it gets the device via elput twice before it can be used - this will be addressed later as the changes are a little more invasive to optimize.
2017-07-21ecore_drm2: Open elput manager before drm deviceDerek Foreman
We're going to need to access the device as part of the find process, so we need a manager.
2017-07-13ecore_drm2: Add a query for the next vblank timeDerek Foreman
I guess this is a feature, and we're deep in freeze, but: a) this is critical for fixing T5462 properly without any side effects. b) ecore_drm2 is all beta api c) this should only affect wayland users ref T5462
2017-06-30ecore_drm2: fix scanout_on callback firing too oftenDerek Foreman
We need to increase the on scanout count for a buffer only when the plane it's on makes its transition from pending to visible. Previously it was firing for every refresh which would break refcounting for any plane using surface that didn't change every frame.
2017-06-23ecore_drm2: Add scanout status callbacksDerek Foreman
This generates callbacks when a fb becomes scanned out on a hardware plane or when it no longer is.
2017-06-23ecore_drm2: Add callbacks for plane assign/releaseDerek Foreman
E will need these to gate wayland buffer releases.
2017-06-23ecore_drm2: Add Fb deleted eventDerek Foreman
2017-06-23ecore_drm2: Track number of times an fb is on scanoutDerek Foreman
The same fb can be placed in multiple hardware planes, we need to keep track of the number of planes it's on at any time so we can send events to a compositor in a later commit.
2017-06-23ecore_drm2: Track whether an Ecore_Drm2_Plane has ever been on scanoutDerek Foreman
2017-06-23ecore_drm2: Move fb from plane state struct to plane structDerek Foreman
The plane state struct needs the fb id for drm updates, and the plane state can be updated even if it's pointed to by a dead plane. Dead planes need to keep their fb so we can properly handle the fb lifetime.
2017-06-23ecore_drm2: Don't clear plane fb on releaseDerek Foreman
We'll need this later for post-page flip bookkeeping, and nothing will notice that it's not cleared now anyway.
2017-06-23ecore_drm2: Remove obsolete per output fb callback apiDerek Foreman
It's all beta API so I can throw this away now that there are no in-tree users anymore.
2017-06-23ecore_drm2: Stop using the old per output release callbacksDerek Foreman
2017-06-23ecore_drm2: Update buffer release mechanism to send new status informationDerek Foreman
Begin moving internals over to the new per fb status updates.
2017-06-23ecore_drm2: Add ecore_drm2_fb_status_handler_setDerek Foreman
The old per output release handler is no longer complicated enough. In the near future we'll need to be able to tell an engine that its fb has been placed on scanout via hardware plane, or removed from a hardware plane. It's simpler to provide that information as well as release information through a single callback.
2017-06-16ecore-drm2: add ecore_drm2_output_subpixel_get()Mike Blumenkrantz
2017-06-09ecore-drm2: Remove #ifdef HAVE_ATOMIC_DRMChris Michael
As we now use static_libs/libdrm for compiling ecore-drm2, we can remove the atomic #ifdefs as we can run-time check this now. Signed-off-by: Chris Michael <>
2017-06-09ecore-drm2: Fix drm_mode variables to work with static libChris Michael
As we now use static_libs/libdrm to build ecore_drm2, we need to fix how our drm_mode variables are declared so we can use them. @fix Signed-off-by: Chris Michael <>
2017-06-09ecore-drm2: Use static libdrm to build ecore-drm2Chris Michael
As we will now use static_libs/libdrm to build ecore_drm2, we no longer need to include the copied code from the libdrm headers so remove all of the copied code from our source files. @fix Signed-off-by: Chris Michael <>
2017-06-09ecore-drm2: Group API functions within their doxy groupChris Michael
NB: No functional changes Signed-off-by: Chris Michael <>
2017-06-08ecore-drm2: Fix potential SIGFPE when adding output modeChris Michael
If we receive bad crtc info from libdrm, then we could end up with a SIGFPE here due to division by zero if info h/v total are not set. @fix Signed-off-by: Chris Michael <>
2017-06-08ecore-drm2: Add API function to set pointer rotationChris Michael
This patch adds a new API function which can be used to swap x & y pointer axis and invert them according to rotation angle. Mouse input events occur according to canvas coordinates so this can be used when a canvas is rotated. @feature Signed-off-by: Chris Michael <>
2017-06-06ecore-drm2: Don't use Atomic functions to set DPMS levelsChris Michael
This was initially an experiment in trying to use Atomic properties to set dpms on/off, however it does not turn off backlight support when triggered so it is useless. Fixes T5462 @fix Signed-off-by: Chris Michael <>