path: root/src/lib/ecore_drm (unfollow)
AgeCommit message (Collapse)Author
2017-03-09ecore_drm: avoid crash during shutdown due to Ecore_Event queue.Cedric BAIL
2017-02-27docs: Fix typos and some wrong expressionsMyoungwoon Roy, Kim
Covers: Ecore_Drm, Ecore_Evas, Ecore_File, Ecore_IMF, and Ecore_IMF_Evas API reference doxygen. Summary: I had fixed some typos and wrong expressions, such as capital letters, singular Etc. in Ecore_Drm, Ecore_Evas, Ecore_File, Ecore_IMF, and Ecore_IMF_Evas API reference doxygen. Test Plan: Doxygen Revision Reviewers: stefan, cedric, raster, jpeg, Jaehyun_Cho Subscribers: conr2d Differential Revision:
2016-05-31ecore-drm: Deprecate Ecore_Drm libraryChris Michael
Small patch to deprecate Ecore_Drm. This patch also adds a configure option to enable ecore_drm for older code. This option is disabled by default, so must be explicitly specified during build. Signed-off-by: Chris Michael <>
2016-05-13ecore_drm: Handle wheel scrolling separately from finger scrollingDerek Foreman
Wheels are discrete and scroll in clicks, fingers are continuous and scroll in fractional pixels. This change causes wheel based scrolling to be returned in "clicks" instead of "degrees" - allowing us to roll a single menu item with a click. It also will allow us to reduce the speed of two finger scrolling without messing up the speed of wheel scrolling.
2016-05-10ecore-drm: Fix potential segfault when setting output modeChris Michael
If a NULL mode is passed into ecore_drm_output_mode_set, then we try to disable the given output. If disabling the output fails, we were trying to print an ERR message which tried to access the NULL mode. @fix Signed-off-by: Chris Michael <>
2016-05-06ecore_drm: Fix off by 1000 in output rate calculationDerek Foreman
This results in wayland wl_output modes having their refresh rates 1000x too high, which has the magical effect of making some native Qt apps fail with a GTK error when Xwayland crashes on 32-bit systems. @fix Fixes T3587
2016-04-27ecore-drm: reuse any created xkb map if no cached map existsMike Blumenkrantz
this prevents creating many identical maps during init
2016-04-26ecore-drm: Add missing initializer for fb2 commandChris Michael
drm_mode_fb_cmd2 has fields for a modifier to handle tiling, compression, etc (per plane). Even tho we do not use these, we should at least initialize them to zero else we end up with uninitialized bytes in the cmd structure. ==11706== Syscall param ioctl(generic) points to uninitialised byte(s) ==11706== at 0x57E05D9: ioctl (in /usr/lib/ ==11706== by 0x4D30FA3: drmIoctl (in /usr/lib/ ==11706== by 0x4CDF66B: _ecore_drm_fb_create2 (ecore_drm_fb.c:63) @fix Signed-off-by: Chris Michael <>
2016-04-21ecore-drm: Fix typo in doxygenChris Michael
Signed-off-by: Chris Michael <>
2016-04-13ecore-drm: Don't leak object propertiesChris Michael
When fetching possible planes for an output, we end up leaking object properties here as these were never freed. @fix Signed-off-by: Chris Michael <>
2016-04-01ecore-drm: do not attempt to destroy sprite outputs which have never repaintedMike Blumenkrantz
silences a surprisingly large number of errors on shutdown @fix
2016-03-14ecore_drm: Disable custom tick if we can't wait for vblankDerek Foreman
If we fail to schedule a VBlank event, then we should disable custom ticks and fallback to timer-based animators. This patch fixes some issues with Intel Atom based setups where rendering would fail when using custom animators. @fix
2016-03-11ecore_drm: Update device copy of framebuffer after page flip completesDerek Foreman
The device struct is API, so its copy of the fb pointer needs to be kept in sync with the output struct's. We do this when the flip completes to try to prevent access to an fb that's about to flip. This fixes Enlightenment screenshots. @fix
2016-03-09ecore-drm: don't set DBG on log level if DBG not already setMike Blumenkrantz
2016-03-09ecore-drm: Disable default DBG log levelChris Michael
Simple patch to disable setting ecore-drm log level to DBG by default @fix Signed-off-by: Chris Michael <>
2016-03-09ecore-drm: Don't re-include config.hChris Michael
As ecore_drm_private.h already includes config.h header, we don't need to include it here in these files also @fix Signed-off-by: Chris Michael <>
2016-03-09ecore-drm: Update copyright noticeChris Michael
As portions of this code have been derived from existing code in Weston, we should also be including their copyright/licence text to give credit. NB: Fixes T3286 @fix Signed-off-by: Chris Michael <>
2016-02-22ecore-drm: Don't reset event modifiers on touch motionChris Michael
When we are sending an event for touch motion, we should be specifing the modifers in the event structure (not setting them to zero). @fix Signed-off-by: Chris Michael <>
2016-02-18ecore_drm: Check list presence by NULL test instead of countingDerek Foreman
a count of < 1 will just be a NULL pointer, and a count of > 0 will be non NULL, so we can simplify these conditionals.
2016-02-18ecore_drm: Add pointer warping APIDerek Foreman
Adds a new API: ecore_drm_device_pointer_warp() which warps the pointer to the specified location. All libinput seats with pointers are warped.
2016-02-18ecore-drm: Only queue re-flip on the head that needs itDerek Foreman
Prevents stuttering when a head that was successfully set bounces back to a previous frame the other head failed to set.
2016-02-18ecore_drm: Refactor ecore_drm_fb_send into two functionsDerek Foreman
We'll need to set outputs individually from the page flip handle to handle page flip problems, so we need the per output setting logic in its own function.
2016-02-18ecore_drm: Change page flipping logic so we can't tearDerek Foreman
Summary: Previously if we ever tried to queue up two page flips in less than a retrace interval (which can easily happen since the evas clock isn't based on vblank) we'd give up on ever using page flips again, and tear on every screen update. This fixes that by using a vblank callback for custom ticks and using page flips whenever possible. If a page flip fails it means a page flip raced with the vblank ticker, so we need to queue up that frame when the current page flip completes. This ensures that while we might drop interim frames, we will never lose the most recent. Now it should only be possible to tear if two ticks fire during the wait for a page flip to complete. This would result in rendering taking place in the front buffer. I don't think this can happen, but an error is logged if it does. Reviewers: zmike, devilhorns Subscribers: cedric, jpeg Differential Revision:
2016-02-15ecore-drm: Make ecore_drm_output_rotation_set fail properlyDuna Oh
When trying to set a rotation on a given output, we would previously always be returning EINA_TRUE. We should be returning EINA_FALSE when the rotation_set fails. @fix Summary: ecore_drm_output_rotation_set should be returning EINA_FALSE when the output doesn't have a plane of requested type. Test Plan: 1. call ecore_drm_output_rotation_set() with ECORE_DRM_PLANE_TYPE_CURSOR 2. If output doesn't have a plane of ECORE_DRM_PLANE_TYPE_CURSOR, the for statement does nothing. But return value is TRUE; Reviewers: raster, stefan_schmidt, gwanglim, devilhorns, zmike Subscribers: input.hacker, cedric, JHyun, ManMower, jpeg Differential Revision:
2016-02-04This should not have been pushed. RevertChris Michael
Revert "ecore-drm: Add API functions for rotation support" This reverts commit b8ceaf0d403ce640ed6a485a59a3bd5a7b06a260.
2016-02-04This should not have been pushed. Unsure what happened here, butChris Michael
revert this Revert "ecore-drm: Add opaque type for Plane support" This reverts commit 94082f54e8ce7d47402ea5d8d57e3871f8fa98a4.
2016-02-04ecore-drm: Add API functions for rotation supportChris Michael
This adds 2 new API functions for getting supported rotations of an output, and for setting rotation on an output @feature Signed-off-by: Chris Michael <>
2016-02-04ecore-drm: Add opaque type for Plane supportChris Michael
This adds an opaque structure to represent a hardware plane for use in rotation, setting cursor/overlay/primary plane content, etc Signed-off-by: Chris Michael <> ecore-drm: Add API functions for rotation support This adds 2 new API functions for getting supported rotations from an output, and for setting rotation on an output. @feature Signed-off-by: Chris Michael <>
2016-02-04ecore-drm: Add internal function to create planes for an outputChris Michael
This patch adds an internal function that we use during output creation in order to create the planes necessary and get the supported rotation values for an output Signed-off-by: Chris Michael <>
2016-02-04ecore-drm: Add API function to set rotation on an outputChris Michael
This patch adds an API function to allow the Screen Setup dialog in Enlightenment to support setting rotations on an output when running under drm @feature Signed-off-by: Chris Michael <>
2016-02-04ecore-drm: Add API function to get supported rotations from an outputChris Michael
This patch adds an API function so that we can get the supported rotations from an output. This is needed so that the Screen Setup dialog in Enlightenment can list the rotations supported for the user to choose from while running using drm @feature Signed-off-by: Chris Michael <>
2016-02-04ecore-drm: Add opaque structure for Ecore_Drm_PlaneChris Michael
Signed-off-by: Chris Michael <>
2016-01-21ecore-drm: Unify and cleanup tty codeChris Michael
This patch brings the tty code more inline with what the logind code Was doing. It also fixes the return value from the vt_signal handler, and opens the tty in non-blocking mode now. @fix Signed-off-by: Chris Michael <>
2016-01-21ecore-drm: Don't unset logind variable when disconnecting a deviceChris Michael
For a case where we have more than one device open, if we set the 'logind' variable to false, then the second device would never close properly. @fix Signed-off-by: Chris Michael <>
2016-01-21ecore-drm: Destroy any existing eeze watch when we free the deviceChris Michael
If a user frees a device without closing it we could end up with a dangling eeze watch. This small patch just makes sure to delete the watch if it exists @fix Signed-off-by: Chris Michael <>
2016-01-21ecore-drm: Refactor logind code to use tty functionsChris Michael
This patch cleans up some of the logind code to make use of the existing tty functions as they both did the same thing @fix Signed-off-by: Chris Michael <>
2016-01-21ecore-drm: Cleanup ecore-drm shutdown routineChris Michael
This patch addresses an issue where when closing Enlightenment, the shutdown procedure would previously end up calling the same functions twice. These functions should be called from the ecore_evas drm shutdown routine as the sprites, inputs, outputs, etc are all called from the ecore_evas drm init routine. @fix Signed-off-by: Chris Michael <>
2016-01-14ecore_drm/ecore_wl2: logging: remove errant usage of %mDerek Foreman
Summary: printf %m stringifies and prints errno. I've tried to remove its use anywhere that the immediately preceding function might not set errno or is a complicated function for which knowing errno doesn't really give any useful information. I've left a few of the drmMode calls because they're just wrappers around ioctl, which legitimately sets errno. @fix Reviewers: zmike, devilhorns Reviewed By: zmike, devilhorns Subscribers: cedric, jpeg Differential Revision:
2016-01-13ecore_drm: close all devices in shutdownMarcel Hollerbach
2016-01-13ecore_drm: check if device is already opened before open and freeMarcel Hollerbach
check if fd is -1 before opening a device, so a device cannot be opened twice. Also check if fd is != -1 before closing it.
2016-01-13ecore_drm: make sure we include math.h and link against libm for floor()Stefan Schmidt
When we introduced the usage of floor() in ecore_drm_evdev.c we forgot to include math.h for it as well as linking against libm. This caused linking failures on some systems while it still worked on others. Better fix it for good. Original patch by aerodynamik. ref T2953
2016-01-12ecore-drm: Call inputs shutdown before eina_shutdownChris Michael
As we end up freeing the input hash inside the _ecore_drm_inputs_shutdown function, it should be called before we shutdown eina @fix Signed-off-by: Chris Michael <>
2016-01-07ecore-drm: Fix formattingChris Michael
NB: No functional changes Signed-off-by: Chris Michael <>
2016-01-04ecore-drm: Add a new API for keymap cacheJengHyun Kang
Summary: Originally, each keyboard devices could have their own keymap. The one keyboard's keymap could different with others. But for this, Ecore_Drm compile a new keymap when a keyboard is connected. But this is a burden for some people who doesn't manage keymap for each keyboard. They want to maintain only one keymap for system. So, I added cached context/keymap and just ref/unref for each keyboard device. People who want to different keymap for each keyboard just do not set cached context/keymap. Then Ecore_Drm maintain keymaps about each keyboard devices. Test Plan: Connect a keyboard device and watch flow of ioctl. Originally Ecore_Drm opened xkb data and compile keymap, but after patch, that ioctl is disppeared. @feature Reviewers: raster, devilhorns, ManMower Reviewed By: devilhorns, ManMower Subscribers: cedric, input.hacker, ohduna, jpeg Differential Revision:
2015-12-29ecore-drm: Add missing variable 'dev'Chris Michael
Seems this should have been declared in the previously pushed patch, but was missing. @fix Signed-off-by: Chris Michael <>
2015-12-29Add a new Ecore_Drm API for setting left-handed mouseJengHyun Kang
Summary: Add a new Ecore_Drm API named ecore_drm_device_left_handed_set(). Libinput support various input options. Left handed mode is one of options. Right-handed people and left-handed people use a mouse using different button mapping. So if a left handed option is enabled, libinput change right mouse button and left mouse button. So support this option, I added this api using libinput's left handed option. @feature Test Plan: After set left handed mode, left mouse button generate button numbered 3, and right mouse button generate button numbered 1. Reviewers: raster, ManMower, devilhorns Subscribers: ohduna, cedric, jpeg, input.hacker Differential Revision:
2015-12-28ecore-drm: Add APIs to support key remap functionalitySung-Jin Park
Summary: This adds two new APIs to enable/set key remap functionality and a number of keys to be remapped to the other keys. As of now there is no api to do this therefore we need to remap using linux utility such as 'setkeycodes'. By adding/calling these apis, each Ecore_Drm_Evdev device will have its specific key remap hash and we can apply each remapping keys for each key/keyboard device. Test Plan: (1) Enable key remap and set remapping of a key on a specific keyboard device (2) Plug in the keyboard device and check the key is being remapped or not (3) Check the other keys are coming normally (4) Check the the remapping key on a specific keyboard doesn't affect to any other devices Signed-off-by: Sung-Jin Park <> Reviewers: raster, zmike, gwanglim, ManMower, devilhorns Subscribers: JHyun, ohduna, cedric, jpeg Differential Revision:
2015-12-15ecore-drm: Fix failure of setting/closing evdev->fd which causes fd leakDuna Oh
Summary: When a input device is plugged in, _cb_open_restricted() is called before creating evdev. So setting fd value on evdev was failed in _cb_open_restricted() and also closing evdev->fd was invalid. Using a eina_hash which has 'path-fd' pairs, we can find fd value after evdev is created. @fix Test Plan: (1) Multiple input devices are connected. Their evdev->fd remains zero or initial value. (2) When one of those devices are plugged out, fd leak would happen. Reviewers: raster, zmike, gwanglim, stefan_schmidt, devilhorns, ManMower Subscribers: cedric, jpeg, Jeon, input.hacker Differential Revision:
2015-11-30ecore-drm: Add logical pointer x, y variable in seat for reflecting multiple ↵Duna Oh
pointer's movement Summary: When one pointer moves, we should update the position of other devices. Test Plan: (1) Two pointer devices are connected. (2) Move the cursor to (x, y) position using "device 1". (3) When you move the cursor using "device 2", the cursor doesn't start from (x, y) position. This causes discontinuous mouse motion. Reviewers: raster, zmike, gwanglim, stefan_schmidt, devilhorns, ManMower Reviewed By: devilhorns, ManMower Subscribers: cedric, Jeon, input.hacker, jpeg Differential Revision:
2015-11-17ecore-drm: Don't send mouse_move event too earlyChris Michael
We cannot be sending an ecore_event for mouse move here as it is too early in the startup process for that too happen. Raising the event here never gets caught because the ecore_evas has not yet registered for ecore_input listening. @fix Signed-off-by: Chris Michael <>