Page MenuHomePhabricator

evas map: check render condition more elaborately.
ClosedPublic

Authored by Hermet on Jun 26 2018, 12:00 AM.

Details

Summary

Ok, this was started from a bug that canvas getting not be updated.
If map is just disabled, at least one frame in the map region should be redrawn
So I added a condition 'map changed' in the render even though map is off
status. Now, I got a performance regression issue because it makes dirty
region is always true for the map object.

That is a corner case acutally, that object is not rendered but map still
have changed status.

I replaced the condition only if object is changed + map is changed.

At least, my test case works better with this patch.

@fix T6975

Diff Detail

Repository
rEFL core/efl
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
Hermet created this revision.Jun 26 2018, 12:00 AM
Hermet requested review of this revision.Jun 26 2018, 12:00 AM
Hermet added subscribers: ManMower, ApB.

Hi Hermet, I'm testing this patch locally and it still doesn't resolve the performance problems I see when moving around windows with Enlightenment software rendering.

Hermet abandoned this revision.Jun 26 2018, 9:24 PM
Hermet reclaimed this revision.Jun 26 2018, 9:31 PM
Hermet updated this revision to Diff 15309.Jun 26 2018, 9:43 PM

evas map: check render condition more elaborately.

Ok, this was started from a bug that canvas getting not be updated.
If map is just disabled, at least one frame in the map region should be redrawn
So I added a condition 'map changed' in the render even though map is off
status. Now, I got a performance regression issue because it makes dirty
region is always true for the map object.

That is a corner case acutally, that object is not rendered but map still
have changed status.

I replaced the condition only if object is changed + map is changed.

At least, my test case works better with this patch.

@fix T6975

@ManMower I updated patch, could you please re-check with this?

Hermet edited reviewers, added: ManMower; removed: devilhorns.Jun 26 2018, 10:08 PM
ManMower accepted this revision.Jun 27 2018, 8:19 AM

This is a *huge* improvement in the window drag case, back to previous performance levels!

However, bringing up a menu still seems to result in full redraws like it did before T4904.

I've tried to read and understand this and surrounding code to provide a good review, and I think it makes sense, so I'll accept revision. It's not really my area of expertise, so on any other project this would be acked-by and tested-by instead of solidly reviewed-by. :)

This revision is now accepted and ready to land.Jun 27 2018, 8:19 AM
This revision was automatically updated to reflect the committed changes.