D23669: Generate mipmaps for image down-scaling
Roman Gilg
noreply at phabricator.kde.org
Thu Sep 5 11:39:21 BST 2019
romangg added inline comments.
INLINE COMMENTS
> davidedmundson wrote in scene_opengl.cpp:1383
> That's a bit lazy.
>
> Always using GL_LINEAR AFAIK is fine, but always generating mipmaps has a cost.
>
> We should be able to do some sort of
>
> if (windowPixmap->surface()->scale() != output->scale())
>
> We also probably only want to generate mipmaps if the contents have changed.
>
> GLTexture has a dirty() flag which signifes this.
> if (windowPixmap->surface()->scale() != output->scale())
One would need to loop through all surface-entered outputs and check if logical size and mode size don't have a common divisor. I can't say if that would be worth it or if we should create mipmaps just all the time. After all they are generated on the GPU and that very fast.
> We also probably only want to generate mipmaps if the contents have changed.
>
> GLTexture has a dirty() flag which signifes this.
This makes sense. But can you explain to me how the dirty() flag actually works? I see that it gets set at some point but I don't see where it gets unset again.
> zzag wrote in scene_opengl.cpp:1495-1497
> I don't understand this part. Window contents is rendered and after that mipmaps are generated. I think it should be vice versa.
Why do you think it should be vice versa?
Mipmaps are scaled down copies of a texture such that arbitrary down-scaling can be done quickly and without artifacts. That means the original must have been rendered already so it can be duplicated.
Maybe in the end it doesn't make a difference because it's a Gl command on the GPU.
REPOSITORY
R108 KWin
REVISION DETAIL
https://phabricator.kde.org/D23669
To: romangg, #kwin, zzag
Cc: zzag, davidedmundson, kwin, LeGast00n, The-Feren-OS-Dev, sbergeron, jraleigh, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kwin/attachments/20190905/b35a7c6d/attachment.html>
More information about the kwin
mailing list