From kde-panel-devel Thu Jan 28 11:19:29 2016 From: =?utf-8?q?Martin_Gr=C3=A4=C3=9Flin?= Date: Thu, 28 Jan 2016 11:19:29 +0000 To: kde-panel-devel Subject: Re: Review Request 126906: Simplified fullscreen blur for Application Dashboard Message-Id: <20160128111929.17778.47433 () mimi ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-panel-devel&m=145398000629578 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--===============8693412441071296538==" --===============8693412441071296538== Content-Type: multipart/alternative; boundary="===============3478462317818566096==" --===============3478462317818566096== MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit > On Jan. 27, 2016, 6:22 p.m., Thomas Lübking wrote: > > effects/blur/blur.cpp, line 474 > > > > > > Did you try the behavior on a varying scene? > > > > Generating mipmaps isn't exactly cheap and linear interpolation suffers from artifacts when things below move (I had tried an even smarter trick for general blurring, looks stunning and is incredibly fast ... as long as you deal with static contents) > > Martin Gräßlin wrote: > just tried a youtube video + the blur on my Ivybridge system. Didn't notice any problems. That's of course not a scientific measurement ;-) > > Thomas Lübking wrote: > Harsh contrast changes would cause "flicker" - playing a video would likely be more a CPU/GPU overhead (mipmapping) concern. in the given usage scenario (app dashboard) it's rather unlikely that there are contrast changes. After all the set of windows below is supposed to be kind of static. - Martin ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/126906/#review91675 ----------------------------------------------------------- On Jan. 27, 2016, 2:24 p.m., Martin Gräßlin wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://git.reviewboard.kde.org/r/126906/ > ----------------------------------------------------------- > > (Updated Jan. 27, 2016, 2:24 p.m.) > > > Review request for kwin, Plasma and Eike Hein. > > > Repository: kwin > > > Description > ------- > > [kwineffects] Expose fullScreen property in EffectWindow > Also copied to Deleted. > > [effects] Add a simplified fullscreen blur > > If a window is fullscreen and wants fullscreen blur behind it, we > use the blur from logout effect. This is mostly intended for the > Application Dashboard which requires a fullscreen blur. The generic > blur effect is not designed for such usage and is rather costly. > > This simplified blur just needs framebuffer blit and midmaps. This > makes it rather cheap in usage and also doesn't need a cached texture. > > > Diffs > ----- > > deleted.h bb87ae9611a5b59a5b37cf5a4cd38e99ed987069 > deleted.cpp 239ba8fec76ad520728182faf6429be8730ebec1 > effects/blur/blur.h fd5a020688d0e4397ce18e03aa4f79565418e9c5 > effects/blur/blur.cpp a360f0301e2983d0fb0bf3effff71f95ac46ff22 > libkwineffects/kwineffects.h 4350e2b1c86252af43186164b10ad55fa388266e > libkwineffects/kwineffects.cpp b767f6671284295d2e81b023ef62b24fcca8929a > > Diff: https://git.reviewboard.kde.org/r/126906/diff/ > > > Testing > ------- > > > File Attachments > ---------------- > > Dashboard with new algorithm. > https://git.reviewboard.kde.org/media/uploaded/files/2016/01/27/b6607afa-cf10-4cd8-a490-7b56de4faaec__Spectacle.o12214.png > > > Thanks, > > Martin Gräßlin > > --===============3478462317818566096== MIME-Version: 1.0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: 8bit
This is an automatically generated e-mail. To reply, visit: https://git.reviewboard.kde.org/r/126906/

On January 27th, 2016, 6:22 p.m. CET, Thomas Lübking wrote:

effects/blur/blur.cpp (Diff revision 1)
474
    GLTexture blurTexture = GLTexture(GL_RGBA8, w->size(), 3);

Did you try the behavior on a varying scene?

Generating mipmaps isn't exactly cheap and linear interpolation suffers from artifacts when things below move (I had tried an even smarter trick for general blurring, looks stunning and is incredibly fast ... as long as you deal with static contents)

On January 28th, 2016, 9 a.m. CET, Martin Gräßlin wrote:

just tried a youtube video + the blur on my Ivybridge system. Didn't notice any problems. That's of course not a scientific measurement ;-)

On January 28th, 2016, 11:28 a.m. CET, Thomas Lübking wrote:

Harsh contrast changes would cause "flicker" - playing a video would likely be more a CPU/GPU overhead (mipmapping) concern.

in the given usage scenario (app dashboard) it's rather unlikely that there are contrast changes. After all the set of windows below is supposed to be kind of static.


- Martin


On January 27th, 2016, 2:24 p.m. CET, Martin Gräßlin wrote:

Review request for kwin, Plasma and Eike Hein.
By Martin Gräßlin.

Updated Jan. 27, 2016, 2:24 p.m.

Repository: kwin

Description

[kwineffects] Expose fullScreen property in EffectWindow Also copied to Deleted.

[effects] Add a simplified fullscreen blur

If a window is fullscreen and wants fullscreen blur behind it, we use the blur from logout effect. This is mostly intended for the Application Dashboard which requires a fullscreen blur. The generic blur effect is not designed for such usage and is rather costly.

This simplified blur just needs framebuffer blit and midmaps. This makes it rather cheap in usage and also doesn't need a cached texture.

Diffs

  • deleted.h (bb87ae9611a5b59a5b37cf5a4cd38e99ed987069)
  • deleted.cpp (239ba8fec76ad520728182faf6429be8730ebec1)
  • effects/blur/blur.h (fd5a020688d0e4397ce18e03aa4f79565418e9c5)
  • effects/blur/blur.cpp (a360f0301e2983d0fb0bf3effff71f95ac46ff22)
  • libkwineffects/kwineffects.h (4350e2b1c86252af43186164b10ad55fa388266e)
  • libkwineffects/kwineffects.cpp (b767f6671284295d2e81b023ef62b24fcca8929a)

View Diff

File Attachments

  • Dashboard with new algorithm.
  • --===============3478462317818566096==-- --===============8693412441071296538== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KUGxhc21hLWRl dmVsIG1haWxpbmcgbGlzdApQbGFzbWEtZGV2ZWxAa2RlLm9yZwpodHRwczovL21haWwua2RlLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL3BsYXNtYS1kZXZlbAo= --===============8693412441071296538==--