summaryrefslogtreecommitdiff
path: root/src/lib/ecore_drm2 (follow)
AgeCommit message (Collapse)Author
2019-05-22ecore-drm2: Add API to check if vblank is supportedChristopher Michael
This patch adds a small API that we can use to check if the current video driver supports the usage of drmWaitVBlank. This check is required for certain drivers (like vbox) which do not support drmWaitVBlank and thus are causing our animators in ecore_evas to freeze. We can now use this API from within Ecore_Evas to disable vsync'd animators and fall back to timer based ones. @feature
2019-05-13ecore drm2 - fix warnigns in DBG eina logs for long typesCarsten Haitzler (Rasterman)
on 32bit longs are 32bit so cast appropriately to not have warnings.
2019-04-30ecore drm2 - fix timeout in case case called from threadCarsten Haitzler (Rasterman)
so sw rendering make call ecore drm2 calls from a thread - i didnt know that. so this makes my fix for gl hangs add hangs in sw as a result. this fixes that. not perfect but better. do need refcoutnts on outputs to be perfect... also sometimes the commits fail so retry a few times... this still leaves us wth another hang that is a separate issue. @fix
2019-04-18ecore-drm2: Fix API function parameters for background color setChristopher Michael
Passing int as parameters here is too small for left shifting the colors so make these parameters uint64_t
2019-04-18ecore-drm2: Update printf format to match changed value typeChristopher Michael
Commit 8e0c4d83edd changed the atomic property value type to be uint64_t so we need to update the printf's to reflect that
2019-04-18ecore-drm2: Add API function to set crtc background colorChristopher Michael
This patch adds a new API function we can be called in order to set the crtc background color of a given output. @feature
2019-04-18ecore-drm2: Fill in crtc background color (if supported) during atomicChristopher Michael
commits Small patch to add the crtc background_color property (if supported) to any atomic tests/commits @feature
2019-04-18ecore-drm2: Add background_color to crtc atomic propertiesChristopher Michael
This patch adds a new field to the crtc atomic state which will be used to support crtc background_color property, and also fills in that state during crtc atomic state fill. @feature
2019-04-18ecore-drm2: Make atomic property values support uint64_tChristopher Michael
Some Atomic property values are actually uint64_t, so fix the structure to reflect that. @fix
2019-04-10ecore drm2 - handle possible NULL fb when doing a flipCarsten Haitzler (Rasterman)
2019-04-01ecore-drm2: Add missing @ingroup for some doxyChristopher Michael
Small patch to add missing @ingroup for doxygen comments, and correct one that was in the wrong group @fix
2019-03-22ecore-drm2: Factor in output rotation when getting output infoChristopher Michael
Summary: Enlightenment uses this function to get information about a given output, so we should be accounting for output rotation when returning width/height values. ref T7690 @fix Depends on D8114 Reviewers: raster, cedric, zmike Reviewed By: cedric Subscribers: cedric Tags: #efl, #do_not_merge Maniphest Tasks: T7690 Differential Revision: https://phab.enlightenment.org/D8115
2019-03-22ecore-drm2: Add API function to return output rotationChristopher Michael
Summary: Small patch to add an API function which can be used to return a given output's rotation value ref T7690 @feature Depends on D8113 Reviewers: raster, cedric, zmike, stefan_schmidt, bu5hm4n Reviewed By: cedric Subscribers: cedric Tags: #efl, #do_not_merge Maniphest Tasks: T7690 Differential Revision: https://phab.enlightenment.org/D8114
2019-03-22ecore-drm2: Set output rotation valueChristopher Michael
Summary: When we call ecore_drm2_output_rotation_set we need to store that value in the Output structure so that it can be checked later when needed. ref T7690 Depends on D8112 Reviewers: raster, cedric, zmike Reviewed By: cedric Subscribers: cedric Tags: #efl, #do_not_merge Maniphest Tasks: T7690 Differential Revision: https://phab.enlightenment.org/D8113
2019-03-22ecore-drm2: Disable hardware rotation for outputsChristopher Michael
Summary: Setting output primary plane rotation is broken at the moment, so this commit will disable that for now until this can be investigated ref T7690 Depends on D8111 Reviewers: raster, cedric, zmike Subscribers: cedric Tags: #efl, #do_not_merge Maniphest Tasks: T7690 Differential Revision: https://phab.enlightenment.org/D8112
2019-03-22ecore-drm2: Update plane state values based on FBChristopher Michael
Summary: When we are trying to set an FB onto a plane, we need to update the plane state values to reflect any changes in the FB. Failure to do this will result in Atomic Commit failures as the plane state values will not match what the FB is. ref T7690 @fix Depends on D8110 Reviewers: raster, cedric, zmike Reviewed By: cedric Subscribers: cedric Tags: #efl, #do_not_merge Maniphest Tasks: T7690 Differential Revision: https://phab.enlightenment.org/D8111
2019-03-22ecore-drm2: Don't use AtomicAddProperty for plane rotationChristopher Michael
Summary: Apparently something has been changed recently in libdrm that causes AtomicAddProperty to fail when trying to set plane rotation. Until this can be found & fixed, let's just disable trying to rotate hardware planes with atomic commits. ref T7690 @fix Reviewers: raster, cedric, zmike Subscribers: zmike, cedric Tags: #efl, #do_not_merge Maniphest Tasks: T7690 Differential Revision: https://phab.enlightenment.org/D8110
2019-02-21ecore drm2 - work around kms/drm bug seemingly when no flip event comesCarsten Haitzler (Rasterman)
so we request a flip so we can do vsync events. the flip event never comes. i am not sure why it never comes, but we ask and nothing arrives, and this basically halts all rendering in wayland compositor mode as we are syncing rendering to vsync (of course). put in a timeout of 0.05s (50ms) to try ask again if the event never comes and log the error. this is a pretty useful workaround becauswe having your entire display freeze is a ... bad thing. @fix
2019-02-06ecore-drm2: Minor formatting fixes.Christopher Michael
NB: No functional changes
2019-02-06ecore-drm2: Reduce duplicated codeChristopher Michael
No need for this line to be there twice as it is going to be called in either case. NB: No functional changes
2019-02-06ecore-drm2: Remove useless if checkChristopher Michael
_ecore_drm2_use_atomic is already checked just above this, so there is no need for this if statement
2019-01-31ecore_drm2: Add API to allow settings tap-to-click on pointer deviceMichaƫl Bouchaud (yoz)
Summary: Add a way to configure pointer device with tap-to-click features. @feature Depends on D7843 Reviewers: devilhorns Reviewed By: devilhorns Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7847
2019-01-28ecore-drm2: Support multiple gpus during vblankChristopher Michael
Summary: When we try to calculate a drm vblank type, we should take into account the output's pipe value which is used to determine if we are using multiple gpus (if so, we need to use the high_crtc_mask. Reviewers: ManMower Reviewed By: ManMower Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7803
2019-01-17ecore-drm2: Fix formattingChristopher Michael
NB: No functional changes
2019-01-17ecore-drm2: Pass output as data to drmModePageFlip and drmModeAtomicCommitChristopher Michael
In order to support per-output ticking, the drmModePageFlip and drmModeAtomicCommit functions need to pass the actual Output as data to the pageflip callback so that the pageflip callback function can pass the proper rectangle to ecore_evas_animator_tick Differential Revision: https://phab.enlightenment.org/D7678
2019-01-02ecore-drm2: Add support for specifying a particular drm cardChristopher Michael
Summary: There are cases where the drm card that we wish to run on is not always the first card (ie: card1, card2, etc). In our previous code, we would always start searching at card0 and if found we would always use that card. This patch allows a card to be specified in the environment that can be searched for and used. For example, if we specify ECORE_DRM2_CARD=card1 than that card will be searched and used if found. This also allows wildcard searches such as ECORE_DRM2_CARD=card[1-9]* which can be used to skip the first card (card0). Reviewers: ManMower Reviewed By: ManMower Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7530
2019-01-02ecore-drm2: Fix drmModeSetCrtc call during fb flipChristopher Michael
drmModeSetCrtc x & y values are actually offsets into the framebuffer memory. As such, we should not be sending output position here. @fix
2019-01-02ecore-drm2: Minor formatting fixesChristopher Michael
NB: No functional changes
2018-10-02here comes mesonMarcel Hollerbach
a new shiny buildtool that currently completes in the total of ~ 4 min.. 1 min. conf time 2:30 min. build time Where autotools takes: 1:50 min. conf time 3:40 min. build time. meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read. Further informations can be gathered from the README.meson Right now, bindings & windows support are missing. It is highly recommented to use meson 0.48 due to optimizations in meson that reduced the time the meson call would need. Co-authored-by: Mike Blumenkrantz <zmike@samsung.com> Differential Revision: https://phab.enlightenment.org/D7012 Depends on D7011
2018-06-26ecore_drm2: Fix failure to properly set up new planeDerek Foreman
Summary: When we add a plane we need to add it to the list before doing the atomic test to ensure we're testing new state that includes the plane, and to ensure the next screen update includes the plane we just added. Fix T7066 Reviewers: devilhorns Subscribers: cedric, #committers, zmike Tags: #efl Maniphest Tasks: T7066 Differential Revision: https://phab.enlightenment.org/D6432
2018-02-27ecore-drm2: Add API function to retrieve output user dataChris Michael
With the rework of Ecore_Evas drm engine, we need to get the ecore_evas itself in the pageflip callback so we have to reassign output->user_data to the ecore_evas which we can then use to retrieve via this function This is needed as the pageflip callback will pass us the output on which the pageflip completed. @feature Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-02-27ecore-drm2: Free stringshare for relative output during output_freeChris Michael
When we destroy a given output, we should be freeing the eina_stringshare for relative.to Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-02-27ecore-drm2: Add API to get/set which output is relative to anotherChris Michael
In order to know which output we should clone, we need a way to store/retrieve the output which should be cloned. This patch adds a small api we can use in randr config dialog to get/set that value. @feature Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-02-20ecore-drm2: Fix typo when comparing output relative modeChris Michael
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-02-20ecore-drm2: Account for output relative mode when getting cloned valueChris Michael
As an output may have it's relative mode set to clone from the E randr dialog, we should account for that also when returning output cloned mode. Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-02-13ecore-drm2: Add API functions to get/set output relative modeChris Michael
These API functions will be used inside Enlightenment in order to determine the proper extended screen size based on outputs relative position. @feature Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-02-06ecore-drm2: Ensure output changed event is sent for removed outputsChris Michael
If an output gets disconnected, we would still like to be notified of that. In the _outputs_update function, we mark an output as disconnected by setting output->connected and output->enabled to FALSE. With this line in place (in the output_event_send function) we would never get notified if an output was disconnected. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
2018-01-22ecore_drm2: fix seat matching when checking for a device with a null seatChris Michael
Summary: Check to make sure that the seat from the matching device is still null. Test Plan: Make sure that devices are not being rejected while on seat1. This depends on another patch Reviewers: ManMower, devilhorns Reviewed By: devilhorns Subscribers: ManMower, devilhorns, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5711
2018-01-10ecore_drm2: simplify device selection codeDerek Foreman
The platform check was added for systems (like ARM) that don't generally have PCI graphics devices. However, now we pick a fallback device that doesn't have a PCI constraint, so the platform check should no longer be necessary.
2018-01-10ecore_drm2: Allow non-pci DRM devices to be selectedDerek Foreman
Summary: This is a tweak to c264ef264f0936632a1603fef45c59a50369631d for D5712 . chosen_dev in the loop was only being set for DRM devices attached to PCI devices. While this is useful for determining if the device is the preferred boot_vga device, There is no apparent requirement (comparing to Weston) for all DRM devices to be attached to a PCI device. (This is considering USB DisplayLink devices. I am not sure how the parent device tree is with these...) Reviewers: devilhorns, ManMower Reviewed By: devilhorns, ManMower Subscribers: cedric, jpeg, #efl Tags: #efl Differential Revision: https://phab.enlightenment.org/D5727
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 <cp.michael@samsung.com>
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 <cp.michael@samsung.com>
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 <cp.michael@samsung.com>
2017-09-19ecore-drm2: Minor formatting fixChris Michael
NB: No functional changes Signed-off-by: Chris Michael <cp.michael@samsung.com>
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 <cp.michael@samsung.com>
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 <cp.michael@samsung.com>