summaryrefslogtreecommitdiff
path: root/src/lib/ecore_drm2
Commit message (Collapse)AuthorAgeFilesLines
* ecore drm - increase timeout for flips from 0.05 to 2.0 secCarsten Haitzler (Rasterman)2020-09-041-1/+1
| | | | | | | | so our timeout is far too agressive. we cant stay hung on buggy devices/drivers though so make the timeout 2s instead of 0.05s so we dont go retrying flips too agressively which causes stuttering @fix
* refactor buildMarcel Hollerbach2020-05-271-4/+5
| | | | | | | | | | libraries are split into deps, external deps, and pub deps. Evas engines are refactored to use the predefined engine deps. this is preparation work for efl-one. Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org> Differential Revision: https://phab.enlightenment.org/D11806
* lib: add more c_args handling for places we missed beforeStefan Schmidt2020-05-261-0/+1
| | | | | | | | | These meson files did not have the c_args handling before. Make sure we use package_c_args here as well. Reviewed-by: Vincent Torri <vincent.torri@gmail.com> Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br> Differential Revision: https://phab.enlightenment.org/D11860
* ecore-drm2: Add missing params for doxygenChristopher Michael2020-05-151-0/+2
|
* ecore-drm2: Add API function to return default depthChristopher Michael2020-05-152-0/+30
| | | | | | | Rather than hard-coding depth & bpp in the evas drm engines, we can use this function to return the default depth & bpp. @feature
* ecore-drm2: Add support for using page_flip_handler2Christopher Michael2020-05-011-0/+2
| | | | | | | | | | | In our current Ecore_Drm2_Context structure, we are missing support for using page_flip_handler2. This patch adds that ability. This could prove useful when working with ecore_drm2 as it allows page_flip_handler callbacks to setup a handler for page_flip_handler2, which when the callback gets received, passes back the crtc_id which the pageflip occured on. @feature
* ecore-drm2: Change _output_crtc_find to accept an intChristopher Michael2020-04-281-3/+3
| | | | | There is no reason to be passing the whole device structure here just to get the fd
* ecore-drm2: Change ERR to WRNChristopher Michael2020-04-201-2/+2
| | | | | No real need for these to be ERR because we are not going to crash if these happen anyway.
* doxygen docs: Fix all invalid @param namesXavi Artigas2020-04-201-6/+6
| | | | There were quite a few of these...
* ecore-drm2: Fix issue of shifting 1 by more than 32bitsChris Michael2019-11-142-3/+3
| | | | | | | Based on 9ca573f40f1065cc717c0c5aabb787671bab852b, this patch fixes potential undefined behaviour on 64 bit systems. @fix
* ecore-drm2: Add API to check if vblank is supportedChristopher Michael2019-05-222-0/+28
| | | | | | | | | | | 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
* ecore drm2 - fix warnigns in DBG eina logs for long typesCarsten Haitzler (Rasterman)2019-05-131-8/+8
| | | | on 32bit longs are 32bit so cast appropriately to not have warnings.
* ecore drm2 - fix timeout in case case called from threadCarsten Haitzler (Rasterman)2019-04-301-10/+42
| | | | | | | | | | | | | 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
* ecore-drm2: Fix API function parameters for background color setChristopher Michael2019-04-182-2/+2
| | | | | Passing int as parameters here is too small for left shifting the colors so make these parameters uint64_t
* ecore-drm2: Update printf format to match changed value typeChristopher Michael2019-04-181-8/+8
| | | | | Commit 8e0c4d83edd changed the atomic property value type to be uint64_t so we need to update the printf's to reflect that
* ecore-drm2: Add API function to set crtc background colorChristopher Michael2019-04-182-0/+35
| | | | | | | This patch adds a new API function we can be called in order to set the crtc background color of a given output. @feature
* ecore-drm2: Fill in crtc background color (if supported) during atomicChristopher Michael2019-04-182-0/+23
| | | | | | | | | commits Small patch to add the crtc background_color property (if supported) to any atomic tests/commits @feature
* ecore-drm2: Add background_color to crtc atomic propertiesChristopher Michael2019-04-182-1/+6
| | | | | | | | 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
* ecore-drm2: Make atomic property values support uint64_tChristopher Michael2019-04-181-1/+2
| | | | | | | Some Atomic property values are actually uint64_t, so fix the structure to reflect that. @fix
* ecore drm2 - handle possible NULL fb when doing a flipCarsten Haitzler (Rasterman)2019-04-101-0/+10
|
* ecore-drm2: Add missing @ingroup for some doxyChristopher Michael2019-04-011-2/+4
| | | | | | | Small patch to add missing @ingroup for doxygen comments, and correct one that was in the wrong group @fix
* ecore-drm2: Factor in output rotation when getting output infoChristopher Michael2019-03-221-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* ecore-drm2: Add API function to return output rotationChristopher Michael2019-03-222-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | 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
* ecore-drm2: Set output rotation valueChristopher Michael2019-03-222-1/+4
| | | | | | | | | | | | | | | | | | | | | | | 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
* ecore-drm2: Disable hardware rotation for outputsChristopher Michael2019-03-221-0/+7
| | | | | | | | | | | | | | | | | | | | 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
* ecore-drm2: Update plane state values based on FBChristopher Michael2019-03-221-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* ecore-drm2: Don't use AtomicAddProperty for plane rotationChristopher Michael2019-03-221-0/+19
| | | | | | | | | | | | | | | | | | | | | | 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
* ecore drm2 - work around kms/drm bug seemingly when no flip event comesCarsten Haitzler (Rasterman)2019-02-213-0/+34
| | | | | | | | | | | | 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
* ecore-drm2: Minor formatting fixes.Christopher Michael2019-02-061-4/+3
| | | | NB: No functional changes
* ecore-drm2: Reduce duplicated codeChristopher Michael2019-02-061-2/+2
| | | | | | | No need for this line to be there twice as it is going to be called in either case. NB: No functional changes
* ecore-drm2: Remove useless if checkChristopher Michael2019-02-061-3/+0
| | | | | _ecore_drm2_use_atomic is already checked just above this, so there is no need for this if statement
* ecore_drm2: Add API to allow settings tap-to-click on pointer deviceMichaël Bouchaud (yoz)2019-01-312-0/+19
| | | | | | | | | | | | | | | | | | 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
* ecore-drm2: Support multiple gpus during vblankChristopher Michael2019-01-281-0/+15
| | | | | | | | | | | | | | | | | 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
* ecore-drm2: Fix formattingChristopher Michael2019-01-171-23/+23
| | | | NB: No functional changes
* ecore-drm2: Pass output as data to drmModePageFlip and drmModeAtomicCommitChristopher Michael2019-01-172-5/+5
| | | | | | | | | 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
* ecore-drm2: Add support for specifying a particular drm cardChristopher Michael2019-01-021-2/+7
| | | | | | | | | | | | | | | | | | | | | | | 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
* ecore-drm2: Fix drmModeSetCrtc call during fb flipChristopher Michael2019-01-021-1/+1
| | | | | | | drmModeSetCrtc x & y values are actually offsets into the framebuffer memory. As such, we should not be sending output position here. @fix
* ecore-drm2: Minor formatting fixesChristopher Michael2019-01-021-8/+4
| | | | NB: No functional changes
* here comes mesonMarcel Hollerbach2018-10-021-0/+34
| | | | | | | | | | | | | | | | | | | | | | | 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
* ecore_drm2: Fix failure to properly set up new planeDerek Foreman2018-06-261-1/+3
| | | | | | | | | | | | | | | | | | | 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
* ecore-drm2: Add API function to retrieve output user dataChris Michael2018-02-272-0/+19
| | | | | | | | | | | | | | 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>
* ecore-drm2: Free stringshare for relative output during output_freeChris Michael2018-02-271-0/+1
| | | | | | | 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>
* ecore-drm2: Add API to get/set which output is relative to anotherChris Michael2018-02-273-0/+38
| | | | | | | | | | 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>
* ecore-drm2: Fix typo when comparing output relative modeChris Michael2018-02-201-1/+1
| | | | Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Account for output relative mode when getting cloned valueChris Michael2018-02-201-1/+2
| | | | | | | | 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>
* ecore-drm2: Add API functions to get/set output relative modeChris Michael2018-02-133-0/+53
| | | | | | | | | | 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>
* ecore-drm2: Ensure output changed event is sent for removed outputsChris Michael2018-02-061-2/+0
| | | | | | | | | | | | 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>
* ecore_drm2: fix seat matching when checking for a device with a null seatChris Michael2018-01-221-3/+3
| | | | | | | | | | | | | | 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
* ecore_drm2: simplify device selection codeDerek Foreman2018-01-101-19/+6
| | | | | | | 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.
* ecore_drm2: Allow non-pci DRM devices to be selectedDerek Foreman2018-01-101-1/+2
| | | | | | | | | | | | | | 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