summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ecore_drm2: Add checks for using a plane after deathdevs/derekf/planesDerek Foreman2017-05-051-0/+3
| | | | | | | | | We keep planes on the plane list to ensure a released plane is removed from display - however this means that if a caller starts messing with a plane after release, that it could potentially reposition a plane it doesn't own anymore. Use EINA_SAFETY macros to prevent this.
* ecore_drm2: Replace plane state release flag with plane dead flagDerek Foreman2017-05-043-4/+5
| | | | | | | | | | | | The release flag is actually less useful than the existing in_use flag for determining if a plane is unused. If a new plane is assigned before the next flip cleans up released planes, then it can point to a released plane state, and both it and the previous user will be freed on the next commit, leaking a plane. Putting the flag in the plane structure fixes this while still allowing us to keep released planes around to ensure a recently released plane is cleared from atomic state.
* ecore_drm2: Call flip test in plane releaseDerek Foreman2017-05-041-0/+1
| | | | | | If we don't do a flip test, the atomic state isn't updated. This fixes a potential problem where the last operation in state preparation is a release - the following commit wouldn't include state from the release.
* ecore_drm2: Fix flip test error handlingDerek Foreman2017-05-041-18/+8
| | | | | We need to free the atomic req if commit fails, so let's merge these failure paths and simplify code a bit.
* ecore_drm2: Require x and y value in plane assignDerek Foreman2017-05-044-4/+10
| | | | | Saves us a flip test, and gaurantees that we're always testing with a reasonable x, y and not something leftover from a previous assignment.
* ecore-drm2: Release any marked planes during atomic commitChris Michael2017-05-041-0/+23
| | | | | | | | This patch fixes plane_state values during atomic flip test for any planes marked for release. When the fb_flip actually completes, we will remove the marked plane(s) from the output. Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Add 'release' flag for planesChris Michael2017-05-042-1/+2
| | | | | | | | | As we cannot immediately remove a plane from an output, due to needing an atomic commit to actually remove the plane from screen, we can use a 'release' flag to indicate that a given plane needs removal from the screen during our next atomic commit. Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Don't remove plane from output list on releaseChris Michael2017-05-041-2/+0
| | | | | | | As we need to be able to commit a new plane state for any released planes, we should not be removing them from the output list just yet. Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Fix formattingChris Michael2017-05-041-1/+1
| | | | | | NB: No functional changes Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Don't assign plane to output list if test failsChris Michael2017-05-041-4/+4
| | | | | | | There is little point in assigning a plane to the output list if the atomic flip test fails. Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore_drm2: Use stricter cursor plane size checkDerek Foreman2017-05-041-1/+1
| | | | | | | Unfortunately the plane sized returned from the cursor plane query isn't a limit, it's an exact size. Sometimes you can use a different size, but that's completely hardware dependent - so stick to the advertised size.
* drm-ee: Use a plane for the evasDerek Foreman2017-05-042-0/+6
| | | | Assign a plane at startup and update it in flip.
* gl_drm: Support atomic updatesDerek Foreman2017-05-042-0/+4
| | | | | Grab a plane and lock it down for displaying the canvas, update it on page flip.
* ecore_drm2: Add API to update the fb for a planeDerek Foreman2017-05-042-0/+30
|
* ecore_drm2: Rebuild atomic state from plane_destination_setDerek Foreman2017-05-041-0/+2
| | | | Call a test commit to rebuild the atomic_req
* ecore_drm2: Fix atomic flip with no new bufferDerek Foreman2017-05-041-0/+5
| | | | We don't have an atomic state, so we need to create one before the flip
* ecore_drm2: Pass user data to atomic flipDerek Foreman2017-05-041-1/+2
| | | | | We need the user_data to come back to us in the flip handler like it does in the non atomic flip.
* ecore_drm2: Add some atomic state trackingDerek Foreman2017-05-041-2/+12
| | | | | | | | I think we're now at the point where the two paths are merged. Still no atomic functionality because nothing assigned the primary plane, so we have no atomic state to commit. The machinery should be in place though.
* ecore_drm2: Handle atomic state in _release_bufferDerek Foreman2017-05-041-0/+5
| | | | Further merging of atomic and non-atomic paths
* ecore_drm2: Make _release_buffer take a state struct instead of fbDerek Foreman2017-05-041-12/+10
| | | | Lets us push the NULL set into _release_buffer for some clean up
* ecore_drm2: Refactor common code from non-atomic pathDerek Foreman2017-05-041-24/+25
| | | | We'll need to perform all this for atomic operations as well.
* ecore_drm2: Fix typo in commentDerek Foreman2017-05-041-1/+1
|
* ecore_drm2: treat atomic flip without a req as an errorDerek Foreman2017-05-041-1/+1
| | | | | We should use the safety macro here instead of silently continuing so we can get something in the log if this happens.
* ecore_drm2: remove fb parameter from _fb_flip()Derek Foreman2017-05-041-2/+7
| | | | Time to start smashing the atomic and non-atomic paths together.
* ecore_drm2: Replace output fbs with state structsDerek Foreman2017-05-043-43/+43
| | | | | next, pending, and current are going to have to deal with atomic state instead of just fbs soon
* ecore_drm2: Move atomic state into an output state structDerek Foreman2017-05-043-11/+26
| | | | | This should make it easier to share code paths between atomic and non atomic operations.
* ecore_drm2: Perform test flip during plane assignmentDerek Foreman2017-05-041-0/+8
| | | | | Make sure we can commit that plane at assign time so when we hook up to the scene graph it knows when it can safely use a plane.
* ecore_drm2: Drop static from _fb_atomic_flip_test()Derek Foreman2017-05-042-1/+3
| | | | We're going to need this one in plane assign to test commits
* ecore_drm2: remove flip test from commit pathDerek Foreman2017-05-041-3/+0
| | | | | | | We'll be doing tests as we build up plane state assignment. it's too late to do anything about it if we fail here - failed tests will block plane assignment in the first place so the scene graph knows it still has to render those visual elements.
* ecore_drm2: Add ecore_drm2_plane_release to release planesDerek Foreman2017-05-042-0/+20
| | | | Opposite of plane assign.
* ecore_drm2: Store output in plane structureDerek Foreman2017-05-042-0/+2
| | | | | | This will simplify a bunch of API that would otherwise have to pass in both output and plane - and in some cases we might not have the output handy anyway.
* ecore_drm2: Remove next, current, pending from plane stateDerek Foreman2017-05-042-2/+0
| | | | These will be output state eventually
* ecore_drm2: Assign planes in ecore_drm2_plane_assignDerek Foreman2017-05-042-0/+6
| | | | | Don't just test, allocate the resource, and then prevent further assignments from trying to use it as well.
* ecore_drm2: Don't use drmModeAtomicMergeDerek Foreman2017-05-041-11/+4
| | | | | We're creating the entire state from scratch already - trying to merge with the old state will likely bring in state we just tried to replace.
* ecore_drm2: Remove extra #ifdefDerek Foreman2017-05-041-2/+0
| | | | It's the same as the previous one, so combine them.
* ecore_drm2: Fix typo in error messageDerek Foreman2017-05-041-1/+1
| | | | Stop printing "commit test failed" from non-test commits.
* ecore_drm2: Add an env var to disable atomic pageflipsDerek Foreman2017-05-041-1/+3
| | | | Allows testing non-atomic paths without a reboot or a rebuild.
* ecore-drm2: Do atomic commits per-outputChris Michael2017-05-041-7/+172
| | | | | | | | In cases where output monitors have different frequencies, we need to be doing atomic commits on a per-output basis. This patch modifies the ecore_drm2_fb_flip function to support doing atomic commits per output. Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Free output atomic request on destructionChris Michael2017-05-041-0/+8
| | | | | | | When we free an output, make sure we cleanup any existing atomic commit requests Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Remove newly added atomic API functionsChris Michael2017-05-043-174/+4
| | | | | | | | As we need to do atomic commits on a per-output basis, these 2 newly added API functions can go because these functions did one atomic commit for all outputs Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Remove #ifdef for HAVE_ATOMIC in plane_assign functionChris Michael2017-05-041-4/+0
| | | | | | | | | | As there is nothing inside this function which requires any Atomic API calls, this #ifdef can be removed and the function can then still be used to assign Primary planes for non-atomic use cases. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Minor formatting fixChris Michael2017-05-041-1/+2
| | | | | | NB: No functional changes Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Fill output states regardless if atomicChris Michael2017-05-041-56/+30
| | | | | | | | | | This commit fills in various output 'state' structures during creation so that those state structures can be reused for pageflip handling even if Atomic support is not enabled. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Enable filling state structures without atomic supportChris Michael2017-05-041-16/+13
| | | | | | | | | | | This commit enables the ability to fill our state structures even if atomic support is not enabled. This will allow us to reuse those state structures for dealing with pageflip in both the atomic & non-atomic use cases. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Enable reuse of existing state structures for non-atomicChris Michael2017-05-041-6/+3
| | | | | | | | | | As there is nothing 'atomic' specific in these structures, we can move them outside the atomic ifdef and make use of them for handling pageflip for both atomic and non-atomic use cases. @fix Signed-off-by: Chris Michael <cp.michael@samsung.com>
* ecore-drm2: Minor formatting fixChris Michael2017-05-041-2/+1
| | | | | | NB: No functional changes Signed-off-by: Chris Michael <cp.michael@samsung.com>
* eo: fix missing event emissionMarcel Hollerbach2017-05-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | There have been cases where the logic of _event_callback_call break'ed too early in the event submission. Reason for that was the line ((const unsigned char *) desc - (const unsigned char *) it->desc) producing a overflow. This means the if statement if (!legacy_compare && ((const unsigned char *) desc - (const unsigned char *) it->desc) < 0) was true while the pointer desc was smaller than it->desc, which means the event subscription got aborted, even if it should not. This turned out on two 32 bit maschines. And led to not rendering apps anymore. It was introduced by commit in 605fec91ee7. @fix
* efl_ui_focus_object: that definition is not needed.Marcel Hollerbach2017-05-041-4/+1
|
* efl_ui_focus_manager_sub: replace a wrong commentMarcel Hollerbach2017-05-041-1/+1
|
* efl_ui_focus_manager: specify the event in the same way evas doesMarcel Hollerbach2017-05-045-12/+12
|