Summary: We should be marking the framebuffer dirty regions Before we
send the pageflip to the kernel so that the kernel can properly
optimize drawing dirty regions before scheduling a pageflip.
NB: Slightly optimizes evas drm rendering a bit more. Thanks to Daniel
Stone for the help :)
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: We really do not need to check the enable flag here because
if we are setting a valid mode, then we will be enabled anyway
NB: This makes it actually possible to Enable/Disable outputs in the
RandR config dialog of E-Wl ;)
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This fixes a segfault which could happen if we enable an
output before setting the output current mode. Now we test for an
output having a current_mode, and if not we use the crtc size when
sending the output event.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
When the ecore_evas of wayland_egl/shm is freed with ecore_evas_free(),
ecore_wl_shutdown() is called by _ecore_evas_wl_common_free().
so ecore_wl_shutdown() after ecore_evas_free() has to be skipped.
@fix
Reviewers: devilhorns, raster, zmike, gwanglim
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2503
Summary:
There are no APIs for getting window auxiliary hint ID and value which was set by a user.
Below API can get the ID of the window auxiliary hint.
- ecore_evas_aux_hint_id_get
Below API can get the value of the window auxiliary hint id.
- ecore_evas_aux_hint_val_get
Test Plan: N/A
Reviewers: seoz, bryceharrington, ManMower, devilhorns, cedric, raster, Hermet
Reviewed By: Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2493
Summary:
There are no APIs for getting window auxiliary hint value which was set by a user.
Below APIs can get the window auxiliary hint value.
- ecore_evas_aux_hint_val_get
- ecore_evas_aux_hint_string_val_get
And below API can set the window auxiliary hint value by using string not id.
- ecore_evas_aux_hint_string_val_set
Test Plan: N/A
Reviewers: raster, cedric, seoz, Hermet
Reviewed By: Hermet
Subscribers: c, cedric
Differential Revision: https://phab.enlightenment.org/D2493
Summary: This should not have been included in the previous push as it
was just debug noise which was added during testing
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds a new API function (ecore_drm_output_mode_set) that
we can use from within RandR code to set the resolution of an output
(or disable an output if NULL is passed in).
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This fixes ecore_drm_output_current_resolution_get function
to properly operate if an output does not have a current mode assigned.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This reduces the number of output events that wl_drm module
will receive from ecore-drm. We now only send those events when an
output gets enabled/disabled where previously we were also sending
them during output creation.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This greatly improves rendering speed in evas drm engine.
Previously we would always call drmModeSetCrtc regardless if it was
needed or not. These changes greatly improve rendering speed in drm as
we now only call drmModeSetCrtc if it is needed.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: These API functions should be used for enable/disable of a
given output. They were previously being misused to stop/start
rendering on an output when we VT switch away so now we add an
internal function we can call to disable/enable rendering.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
I hope this will be enough to make the suite less broken.
This fails often on jenkins and cedric's box. This should
either be made reliable, or removed, but the current state
is definitely not good if we would like to increase the trust
in Jenkins.
Summary: This fixes build for aarch64 when TILE_ROTATE is disabled and BUILD_NEON is enabled(it is enabled by default for aarch64 since https://phab.enlightenment.org/D2309).
Reviewers: cedric, raster
Subscribers: cedric
Projects: #efl
Differential Revision: https://phab.enlightenment.org/D2498
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
if your virtual size is fairly big AND your actual object size is also
big, you easily overflow a signed int for intermediate coordinate
calculations, resulting in seeing only a small fractin of your objects
correctly. this fixes that by expanding up to long longs internally to
allow for the added space needed for the multiplications
@fix
EGL might very well not support RGBA read mode, so we
need to check for it first.
Also remove some error logs (see previous commit), and useless
initialization of the Evas GL engine.
@fix
Summary: When we make a call to get the geometry of all outputs, we
should be skipping ones which are not connected.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This fixes an issue when searching for possible crtcs that an
output can work on. Previously, we would end up not returning any
possible crtcs due to not looping the crtcs of the resource.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds a new 'name' field to the Ecore_Drm_Event_Output
structure so that when we catch drm output events in E, we can compare
this name to find an e_randr screen and update compositor's outputs.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: As we will use the edid string inside RandR code to store
unique information about an output, we should be returning this edid
in a "readable" form.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: When we are parsing the edid string, if the string is random
junk, then we need to ignore it. Prior to this commit, we were not
setting the returned text properly.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: As input->grab_count is an unsigned int there is no need for
the < 0 comparison as that will always return false
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
The touch screen device generates touch events.
But in some special enviroments, a first finger will be matched to a pointer event(not touch event).
And other fingers (second, third, ...) will be matched touch events.
In that case ecore_wl_input_ungrab() is called abnormally.
A first finger pressed, _ecore_wl_input_cb_pointer_button() call ecore_wl_input_grab().
A second finger pressed, _ecore_wl_input_cb_touch_down() is called but not grab.
But when a second finger is released, _ecore_wl_input_cb_touch_up() call ecore_wl_input_ungrab()
So ungrab function generate two mouse up events and a first finger is released.
In other case, first finger pressed -> second finger pressed -> first finger release.
That case when a first finger released a second finger release event is generated.
So after that application doesn't get a release event about a second finger
when a second finger is really released.
I think in a multitouch case, ungrab function will be called when a all finger are released.
So I add a grab_count variable for count currently touched fingers.
And only called a ungrab funtion all fingers are released.
Test Plan:
In a touch screen supported multitouch, press two or more fingers and release.
And watch events generation.
Reviewers: raster, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2481