-
-
Notifications
You must be signed in to change notification settings - Fork 6.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
remove boost from GUIFontCache #8996
Conversation
|
||
EntryList m_list; | ||
CGUIFontCache<Position, Value> *m_parent; | ||
std::map<size_t, Value*> test; |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
updated. this is basically the same behaviour without the boost clutter |
Will this have the same performance chracteristics as the multi_index solution? Not sure that it matters in real life use though. I'll close mine so we can focus work here. |
I can't think of any reason why it should perform worse. Maybe it is even better because index of age is simplified. Writing this I think I access this index from the wrong end :) |
typedef typename EntryList::template index<Hash>::type::iterator EntryHashIterator; | ||
struct EntryList | ||
{ | ||
typedef std::multimap<size_t, CGUIFontCacheEntry<Position, Value>*> HashMap; |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
hehe :) No real objections to the solution from my side but there's a few minors.
Interested to see the testing by @popcornmix and @MilhouseVH how it performs. |
I used value_type as suggested by the docs. This make the code shorter because you don't need the template stuff |
lets see how it compiles on the various platforms |
This causes a performance regression. |
{ | ||
delete &m_key.m_colors; | ||
delete &m_key.m_text; |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
@popcornmix can you log the size of HashMap every couple of seconds? |
@FernetMenta HashMap size isn't changed, but agemap is decreased gradually every few minutes |
@popcornmix @afedchin you were right. there was an issue with AgeMap.erase was called with wrong iterator |
I tested my theory and it works fine on gcc which is picky about these things. |
With "squash me" commit it looks okay. Still ~47fps after 15 minutes. |
@FernetMenta seems now it works as expected. both sizes of maps are identical and constant |
jenkins build this please |
@FernetMenta reverted the make_pair changes Paxxi/xbmc@d76d467 |
jenkins build this please |
@popcornmix @MilhouseVH did you hear any issues related to this? |
None reported so far, but it's only been 12 hours (though 82 installations). |
I'm okay with this being merged. We'll let you know if any issues show up down the line, but I think this is probably fine. |
remove boost from GUIFontCache
I'm seeing evidence of text/font "glitching" which is a result of this PR, but only with OpenELEC RPi/RPi2 builds and not OpenELEC x86 builds. I also do not see the glitching with Kodi on Ubuntu x86, so it may be GL/GLES related. In my RPi test builds the problem first appears in build #0131, which is when I introduced this PR. In a test build I have reverted this PR on RPi/RPi2 (and also #9021, restoring Boost) and the glitching problem went away, so it's definitely a result of this PR. The problem only seems to affect the debug overlay text, I haven't seen issues with other non-debug GUI text, but it may be a prelude to further problems down the line. See the following frame grabs from this video (Dropbox, 62MB):
To reproduce:
Result:
Glitching of the debug overlay text continues after the screensaver is deactivated. Using a screensaver such as Shader Toy does NOT cause this problem. I haven't tested any other screensavers. Edit: Fixed by #9065 |
see title
superseds #7495