fredrik (Fredrik Höglund)
User

Projects

User does not belong to any projects.

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Monday

  • Clear sailing ahead.

User Details

User Since
Jul 4 2016, 1:06 PM (407 w, 4 d)
Availability
Available

Recent Activity

Dec 12 2019

fredrik added a comment to D23881: Possible solution for scheduling repaints on NVIDIA.

For the record, I wouldn't mind if someone who is in a better position to test it commandeered this revision. I think I mentioned that on irc.

Dec 12 2019, 11:42 PM · KWin
fredrik updated the diff for D23881: Possible solution for scheduling repaints on NVIDIA.
  • Rebase on master
  • Limit the line length to 100 characters.
Dec 12 2019, 11:10 PM · KWin
fredrik added inline comments to D25904: [libkwineffects] Set original backend framebuffer for render targets.
Dec 12 2019, 12:26 AM · KWin

Dec 11 2019

fredrik added inline comments to D25904: [libkwineffects] Set original backend framebuffer for render targets.
Dec 11 2019, 10:24 PM · KWin

Nov 30 2019

fredrik added a comment to D25611: [scene] Fix decoration texture bleeding.
In D25611#569457, @zzag wrote:

The decoration parts should already be padded. The commit message in the commit that introduced the atlas (6ad4c775d7840e64a07e27d6719a3ea7c3ee5eb8) even says so:
"The images are separated by a row of transparent texels to minimize artifacts from oversampling."

Yes, it does and that's the problem since the transparent texels contribute to the final output value. Am I missing something?

Nov 30 2019, 7:24 PM · KWin

Nov 29 2019

fredrik added a comment to D25611: [scene] Fix decoration texture bleeding.

The decoration parts should already be padded. The commit message in the commit that introduced the atlas (6ad4c775d7840e64a07e27d6719a3ea7c3ee5eb8) even says so:
"The images are separated by a row of transparent texels to minimize artifacts from oversampling."

Nov 29 2019, 5:21 PM · KWin

Nov 26 2019

fredrik updated the diff for D23881: Possible solution for scheduling repaints on NVIDIA.

Rebase on master.

Nov 26 2019, 12:42 AM · KWin

Oct 7 2019

fredrik added inline comments to D24461: Fix coding style issues in Scene::paintSimpleScreen.
Oct 7 2019, 4:51 PM · KWin

Sep 22 2019

fredrik updated the diff for D23881: Possible solution for scheduling repaints on NVIDIA.

Use a fence to ensure that all rendering is complete before swapping buffers.

Sep 22 2019, 11:47 PM · KWin

Sep 21 2019

fredrik added a comment to D23881: Possible solution for scheduling repaints on NVIDIA.

Also, apart from the above two comments, any thoughts to how this relates to Roman's pending re-work of a lot of the GLX code https://phabricator.kde.org/D23105?

@fredrik: I would be interested in this as well. This change allows to schedule buffer swaps like we do with swap events at some point before the vblank and then get an event through second thread when the thread is unblocked again i.e. when the swap has been completed, right? This should also work with my rework patches only providing a single path with an event after swap (or a fallback timer if such an event is not available on the hardware).

Sep 21 2019, 12:32 AM · KWin

Sep 11 2019

fredrik edited reviewers for D23881: Possible solution for scheduling repaints on NVIDIA, added: romangg; removed: ngraham.
Sep 11 2019, 5:27 PM · KWin
fredrik requested review of D23881: Possible solution for scheduling repaints on NVIDIA.
Sep 11 2019, 5:06 PM · KWin

Sep 7 2019

fredrik updated the diff for D22203: glx: Don't use sRGB configs on llvmpipe with depth 16.

Only disable sRGB configurations on LLVMpipe when the default depth is 16.

Sep 7 2019, 11:37 AM · KWin

Aug 28 2019

fredrik added a comment to D23504: [platforms/x11] Remove triple buffering detection.

This code doesn't actually have anything to do with triple-buffering. Its sole function is to detect whether glXSwapBuffers() blocks; the (incorrect) assumption being that if it doesn't, then the driver uses triple-buffering.
But this information is only used to decide whether to call glXSwapBuffers() in prepareRenderingFrame() or endRenderingFrame(). KWin doesn't try to render more than one frame per swap interval regardless.

Aug 28 2019, 3:42 PM · KWin

Aug 23 2019

fredrik added a comment to D23105: WIP: [platforms/x11] Cleanup GLX backend, revise compositing.

NVIDIA doesn't support the OML extensions. They can't be implemented efficiently on their hardware IIRC.
[...]

That's good to know. Thanks! I believe we can let in some of these extensions again without increasing the complexity too much as long as the SGI ones is ignored and we have no manual control of vsync. The complexity in the old code came mostly from that.

That would leave the user without a way to override the driver's default vsync setting.

I want KWin to run v-synced always. I don't think it makes sense to make this configurable by the user. It's the default in our Wayland session and on X11 the compositor should always run v-synced as well. Or is there a valid use case for running it async in your opinion?

Aug 23 2019, 12:04 AM · KWin

Aug 19 2019

fredrik added a comment to D23105: WIP: [platforms/x11] Cleanup GLX backend, revise compositing.

By the way, you are partially duplicating work already done in this branch:
https://cgit.kde.org/kwin.git/log/?h=fredrik/swap-event-wip2

Aug 19 2019, 2:01 AM · KWin
fredrik added a comment to D23105: WIP: [platforms/x11] Cleanup GLX backend, revise compositing.

NVIDIA doesn't support the OML extensions. They can't be implemented efficiently on their hardware IIRC.
[...]

That's good to know. Thanks! I believe we can let in some of these extensions again without increasing the complexity too much as long as the SGI ones is ignored and we have no manual control of vsync. The complexity in the old code came mostly from that.

Aug 19 2019, 1:40 AM · KWin

Aug 14 2019

fredrik added a comment to D23105: WIP: [platforms/x11] Cleanup GLX backend, revise compositing.

NVIDIA doesn't support the OML extensions. They can't be implemented efficiently on their hardware IIRC.

Aug 14 2019, 5:15 PM · KWin

Jul 21 2019

fredrik committed R108:d36927b9335e: glx: Enable swap events by default (authored by fredrik).
glx: Enable swap events by default
Jul 21 2019, 10:52 AM
fredrik committed R108:2e737e1463a5: Schedule repaints using presentation timestamps (authored by fredrik).
Schedule repaints using presentation timestamps
Jul 21 2019, 10:51 AM
fredrik committed R108:2e4d6b243f93: scene: Improve the time diff calculation (authored by fredrik).
scene: Improve the time diff calculation
Jul 21 2019, 10:51 AM
fredrik committed R108:617d75b3a91c: glx: Skip triple-buffer detection with Mesa (authored by fredrik).
glx: Skip triple-buffer detection with Mesa
Jul 21 2019, 10:51 AM
fredrik committed R108:a11b64fe4275: drm: Set the presentation timestamp in the output (authored by fredrik).
drm: Set the presentation timestamp in the output
Jul 21 2019, 10:51 AM
fredrik committed R108:a740305d89eb: opengl: Add support for timer queries (authored by fredrik).
opengl: Add support for timer queries
Jul 21 2019, 10:51 AM
fredrik committed R108:da24cdf446f9: glx: Set the presentation timestamp in the output (authored by fredrik).
glx: Set the presentation timestamp in the output
Jul 21 2019, 10:51 AM
fredrik committed R108:4bce5173f7a3: Add a presentationTimestamp property in AbstractOutput (authored by fredrik).
Add a presentationTimestamp property in AbstractOutput
Jul 21 2019, 10:51 AM
fredrik committed R108:49be9d7202f3: Fix the X11Output refresh rate (authored by fredrik).
Fix the X11Output refresh rate
Jul 21 2019, 10:51 AM
fredrik committed R108:11cb8a4f758f: Remove the assert() in Compositor::bufferSwapComplete() (authored by fredrik).
Remove the assert() in Compositor::bufferSwapComplete()
Jul 21 2019, 10:51 AM
fredrik committed R108:c769a93dd9bb: Set m_bufferSwapPending to false in Compositor::finish() (authored by fredrik).
Set m_bufferSwapPending to false in Compositor::finish()
Jul 21 2019, 10:51 AM
fredrik committed R108:5875baaaeec7: Don't call performCompositing() directly from bufferSwapComplete() (authored by fredrik).
Don't call performCompositing() directly from bufferSwapComplete()
Jul 21 2019, 10:51 AM

Jul 9 2019

fredrik committed R108:dd49887044cc: drm: Pass the timestamp to bufferSwapComplete() (authored by fredrik).
drm: Pass the timestamp to bufferSwapComplete()
Jul 9 2019, 3:46 PM
fredrik committed R108:d37cf2f34e2a: glx: Pass the timestamp to bufferSwapComplete() (authored by fredrik).
glx: Pass the timestamp to bufferSwapComplete()
Jul 9 2019, 3:46 PM
fredrik committed R108:6a955864c82e: Add a timestamp parameter to bufferSwapComplete() (authored by fredrik).
Add a timestamp parameter to bufferSwapComplete()
Jul 9 2019, 3:46 PM
fredrik committed R108:076c6a8de052: Remove the assert() in Compositor::bufferSwapComplete() (authored by fredrik).
Remove the assert() in Compositor::bufferSwapComplete()
Jul 9 2019, 3:46 PM
fredrik committed R108:d9765fdb51be: Set m_bufferSwapPending to false in Compositor::finish() (authored by fredrik).
Set m_bufferSwapPending to false in Compositor::finish()
Jul 9 2019, 3:46 PM
fredrik committed R108:da1b607722e6: Don't call performCompositing() directly from bufferSwapComplete() (authored by fredrik).
Don't call performCompositing() directly from bufferSwapComplete()
Jul 9 2019, 3:46 PM
fredrik requested review of D22342: Fix potential lockups with swap events.
Jul 9 2019, 2:59 PM · KWin

Jul 8 2019

fredrik committed R108:5191311d36fb: [effects/blur] Disable sRGB when the framebuffer is linear (authored by fredrik).
[effects/blur] Disable sRGB when the framebuffer is linear
Jul 8 2019, 10:46 PM
fredrik closed D22153: blur: Disable sRGB when the framebuffer is linear.
Jul 8 2019, 10:46 PM · KWin

Jul 2 2019

fredrik added a comment to D22153: blur: Disable sRGB when the framebuffer is linear.
In D22153#489729, @zzag wrote:

... also please change blur: to [effects/blur] in the subject line

Jul 2 2019, 10:39 PM · KWin
fredrik added a comment to D21916: egl: Create sRGB platform surfaces.

There are now two open reviews and a merged patch to 5.16 that wasn't merged back to master (now merged back by Vlad) and apparently induces a regression on openQA. The merged patch didn't reference its review. All open reviews don't reference each other.

What I mean by that: It's difficult for me and probably other people as well to have an overview of which patch does what and how they are all connected with each other. Please create an overview task where you describe the overall goal of these patches and the intend of each patch singularly. Reference all patches in the task and in between each other when it makes sense.

Jul 2 2019, 12:33 AM · KWin
fredrik requested review of D22203: glx: Don't use sRGB configs on llvmpipe with depth 16.
Jul 2 2019, 12:19 AM · KWin

Jul 1 2019

fredrik added inline comments to D22153: blur: Disable sRGB when the framebuffer is linear.
Jul 1 2019, 9:59 PM · KWin
fredrik updated the diff for D22153: blur: Disable sRGB when the framebuffer is linear.

Make sure that the default framebuffer is bound when checking the color encoding.

Jul 1 2019, 9:29 PM · KWin

Jun 29 2019

fredrik added inline comments to D22153: blur: Disable sRGB when the framebuffer is linear.
Jun 29 2019, 5:05 PM · KWin
fredrik closed D21908: Possible fix for the blur effect on Intel.

To ssh://git.kde.org/kwin
61956025f..3d384f3c9 Plasma/5.16 -> Plasma/5.16

Jun 29 2019, 4:33 PM · KWin
fredrik added inline comments to D22153: blur: Disable sRGB when the framebuffer is linear.
Jun 29 2019, 4:30 PM · KWin
fredrik requested review of D22153: blur: Disable sRGB when the framebuffer is linear.
Jun 29 2019, 11:50 AM · KWin
fredrik committed R108:3d384f3c9020: glx: Prefer an sRGB capable fbconfig (authored by fredrik).
glx: Prefer an sRGB capable fbconfig
Jun 29 2019, 11:39 AM

Jun 23 2019

fredrik added inline comments to D10750: [wayland] Add support for zwp_linux_dmabuf.
Jun 23 2019, 10:07 PM · KWin

Jun 20 2019

fredrik added a comment to D21916: egl: Create sRGB platform surfaces.
In D21916#482561, @zzag wrote:

This happens on all platforms with Intel.

Jun 20 2019, 3:31 PM · KWin
fredrik added a comment to D21916: egl: Create sRGB platform surfaces.
In D21916#482461, @zzag wrote:

Now eglCreatePlatformWindowSurface fails with EGL_BAD_MATCH.

Jun 20 2019, 2:00 PM · KWin
fredrik updated the diff for D21916: egl: Create sRGB platform surfaces.

So this is kind of embarrassing, but it turns out that EGL_NONE is not defined to 0.

Jun 20 2019, 12:51 PM · KWin
fredrik added a comment to D21908: Possible fix for the blur effect on Intel.

Yeah, I somehow had the idea that we always use GLES on Wayland, which would have made it unaffected by the bug.
It will need a similar patch.

Does D21916 take care of it, or is that patch for something else?

Jun 20 2019, 10:50 AM · KWin

Jun 19 2019

fredrik requested review of D21916: egl: Create sRGB platform surfaces.
Jun 19 2019, 11:52 PM · KWin
fredrik added a comment to D21908: Possible fix for the blur effect on Intel.

Is the code here common between X11 and Wayland sessions? Or is there other code involved for Wayland that needs to be addressed separately? 408594 is reproduceable for me on Wayland as well as X11, which is why I ask.

EDIT: a user on the bug report confirmed this works on X11 but the bug is still present on Wayland session, feel free to disregard the original question

Jun 19 2019, 11:24 PM · KWin
fredrik requested review of D21908: Possible fix for the blur effect on Intel.
Jun 19 2019, 4:40 PM · KWin

Jun 16 2019

fredrik added a comment to D18377: [effects/blur] Update blur to be more natural.
In D18377#480824, @zzag wrote:

I just downloaded the KDE Neon 5.16 iso from the website, installed it and updated it

You need an Intel graphics card to reproduce this bug.

Jun 16 2019, 11:15 PM · KWin

May 27 2019

fredrik added a comment to T10980: Switch default UI font to Noto Sans Display.

A display typeface is a typeface optimized for large headings and billboards.
So the term "display" has nothing to do with computer displays.

May 27 2019, 6:00 PM · VDG, Plasma

May 8 2019

fredrik added a comment to D19867: [X11] Force glXSwapBuffers to block with NVIDIA driver.

That'd be a nice easy fix at least.

Here's a patch: https://phabricator.kde.org/P385

I think it might tear because we have the threaded render loop so it's got no reason to be in sync with kwin/anything - but it looks to me to work fine.

May 8 2019, 10:01 PM · KWin
fredrik added a comment to D19867: [X11] Force glXSwapBuffers to block with NVIDIA driver.

Do we actually want the QtQuick rendering to sync to vblank in this case?
If not, the solution could be to set the swap interval for those drawables to zero.

May 8 2019, 6:38 PM · KWin

Jan 31 2019

fredrik added inline comments to D18570: EGLStream DRM Backend Initial Implementation.
Jan 31 2019, 1:41 PM · KWin
fredrik accepted D18377: [effects/blur] Update blur to be more natural.

Looks good to me.

Jan 31 2019, 1:21 PM · KWin

Jan 27 2019

fredrik added a comment to D18377: [effects/blur] Update blur to be more natural.
In D18377#400445, @zzag wrote:

May it cause issues on GLES?

Jan 27 2019, 12:09 PM · KWin

Jan 26 2019

fredrik added a comment to D18377: [effects/blur] Update blur to be more natural.

I tried experimenting what fredrik suggested without luck so far.
@fredrik @zzag is this the correct approach? This gives the exact same result as not using sRGB textures.

Jan 26 2019, 10:52 AM · KWin

Jan 23 2019

fredrik added a comment to D18377: [effects/blur] Update blur to be more natural.
In D18377#398821, @zzag wrote:

Hmm, it looks like during each render pass we'll be wasting resources on "sRGB - linear RGB" conversions. Intermediate results should be in linear colorspace.

Jan 23 2019, 11:25 PM · KWin

Nov 26 2018

fredrik added a comment to D13575: [scenes/opengl] Pad decoration parts.
In D13575#366344, @zzag wrote:

So, if I understand you correctly, we could have either WindowQuadShadow/WindowQuadContents/WindowQuadDecoration/WindowQuadSubSurface or WindowQuadComposite(which is the union of the previously mentioned quads), depending on what an effect would like to do, right?

Nov 26 2018, 2:47 PM · KWin
fredrik added a comment to D13575: [scenes/opengl] Pad decoration parts.
In D13575#366246, @zzag wrote:

Another way to fix this problem is to render an untransformed window into an off-screen texture, then map it on the screen. The problem with this method is that we probably would need to get rid of different window quad types (e.g. WindowQuadShadow, WindowQuadDecoration, etc), which might break some effects, like the Screenshot. This would probably also fix T4441. We could maybe introduce different flags to control what parts of windows(e.g. shadows, etc) are rendered.

Difficult.

Nov 26 2018, 1:13 PM · KWin

Jun 19 2018

fredrik accepted D13479: [effects] Ignore previous state of WindowForceBlurRole.

It would be easy to change WindowForceBlurRole from a bool to an int, and have effects increment/decrement the value though.

Jun 19 2018, 11:47 AM · KWin

Jun 17 2018

fredrik added a comment to D13382: [RFC] Half pixel correction.
In D13382#279309, @zzag wrote:

My preferred long term solution to this problem would be to render the window untransformed to a texture, and transform that texture instead of the individual parts. This is something kwin will have to do anyway to implement wayland sub-surfaces in a conformant manner.

Yeah, it sounds better and would work for both X11 and Wayland. So, we don't need D13575, right?

Jun 17 2018, 5:05 PM · KWin
fredrik added a comment to D13382: [RFC] Half pixel correction.

My preferred long term solution to this problem would be to render the window untransformed to a texture, and transform that texture instead of the individual parts. This is something kwin will have to do anyway to implement wayland sub-surfaces in a conformant manner.

Jun 17 2018, 4:53 PM · KWin

Jun 7 2018

fredrik added a comment to D13382: [RFC] Half pixel correction.

Array textures wouldn't help in this case, because all layers must have the same size.

Jun 7 2018, 10:47 PM · KWin

Apr 22 2018

fredrik added a reviewer for D12452: [libkwineffects/kwinglutils] Calculate correct srcY0 and srcY1 in GLRenderTarget::blitFromFramebuffer: davidedmundson.

Looks good to me, but I'd also check with @davidedmundson.

Apr 22 2018, 5:09 PM · KWin

Apr 21 2018

fredrik added a comment to T8484: Making settting up a development environment quick and easy.

@ervin I think you are confusing me with someone else here.

Apr 21 2018, 5:11 PM

Apr 11 2018

fredrik added a comment to D10747: Implement zwp_linux_dmabuf_v1.

Regarding the "drm_fourcc.h" file: do we want to copy it in KWayland's code base or could we use the system one? It's only available on Linux? In this case could we include it as a dummy only on non-Linunx systems? This way we could use the system one on Linux.

Apr 11 2018, 1:01 PM · Plasma on Wayland, Frameworks

Mar 27 2018

fredrik committed R242:612494e2b2e9: windowthumbnail: Use mipmap texture filtering (authored by fredrik).
windowthumbnail: Use mipmap texture filtering
Mar 27 2018, 2:57 PM
fredrik committed R242:42d3fde1eef6: windowthumbnail: Use gamma correct scaling (authored by fredrik).
windowthumbnail: Use gamma correct scaling
Mar 27 2018, 2:57 PM

Mar 19 2018

fredrik updated the diff for D10750: [wayland] Add support for zwp_linux_dmabuf.

Fix issues pointed out by romangg.

Mar 19 2018, 11:47 PM · KWin
fredrik added a comment to D10750: [wayland] Add support for zwp_linux_dmabuf.

An issue that this patch does not fully address is switching compositing backends at runtime.

Do we support that at all? The backend is set at startup. Don't think you can change this later on.

Mar 19 2018, 11:25 PM · KWin

Mar 18 2018

fredrik updated the diff for D10251: [RFC] Use mipmap filtering in window thumbnails.

Rebase on master.

Mar 18 2018, 12:42 PM · Frameworks, Plasma

Mar 17 2018

fredrik added a comment to D10251: [RFC] Use mipmap filtering in window thumbnails.

What's the state of this? Bug 391915 just cropped up

Mar 17 2018, 3:21 PM · Frameworks, Plasma

Mar 14 2018

fredrik accepted D11301: don't override m_canUseMipmaps.
Mar 14 2018, 12:44 AM · KWin

Mar 13 2018

fredrik added inline comments to D11262: KDE logout screen background color fix.
Mar 13 2018, 1:13 PM · Plasma

Mar 12 2018

fredrik updated the diff for D10750: [wayland] Add support for zwp_linux_dmabuf.

Import the context.

Mar 12 2018, 2:07 PM · KWin

Mar 7 2018

fredrik updated the diff for D10747: Implement zwp_linux_dmabuf_v1.

Import the context.

Mar 7 2018, 11:06 PM · Plasma on Wayland, Frameworks

Mar 1 2018

fredrik added a comment to D10750: [wayland] Add support for zwp_linux_dmabuf.

An issue that this patch does not fully address is switching compositing backends at runtime.

Mar 1 2018, 4:06 PM · KWin

Feb 23 2018

fredrik edited projects for D10750: [wayland] Add support for zwp_linux_dmabuf, added: Plasma; removed KWin.

Concerning the tests: the ones requiring OpenGL work best if module vgem is loaded. That normally makes them pass. The tests regarding keyboard layout need env variable XDG_DEFAULT_LAYOUT being unset or on us.

Feb 23 2018, 3:36 PM · KWin

Feb 22 2018

fredrik requested review of D10750: [wayland] Add support for zwp_linux_dmabuf.
Feb 22 2018, 5:40 PM · KWin
Restricted Application edited projects for D10747: Implement zwp_linux_dmabuf_v1, added: Plasma; removed Plasma on Wayland.
Feb 22 2018, 3:07 PM · Plasma on Wayland, Frameworks
fredrik requested review of D10747: Implement zwp_linux_dmabuf_v1.
Feb 22 2018, 2:27 PM · Plasma on Wayland, Frameworks

Feb 20 2018

fredrik committed R108:8f6509b9cb3f: Improve robustness in some QML paths (authored by fredrik).
Improve robustness in some QML paths
Feb 20 2018, 3:38 PM

Feb 19 2018

fredrik committed R108:82dcbd654f29: wayland: Add support for zwp_linux_dmabuf (authored by fredrik).
wayland: Add support for zwp_linux_dmabuf
Feb 19 2018, 3:35 PM

Feb 16 2018

fredrik committed R108:c49100861692: vulkan: Convert the window quads in QuadSplitter (authored by fredrik).
vulkan: Convert the window quads in QuadSplitter
Feb 16 2018, 5:03 PM
fredrik committed R108:dc8e9baddf73: vulkan: Add a VulkanDecorationThread (authored by fredrik).
vulkan: Add a VulkanDecorationThread
Feb 16 2018, 5:03 PM
fredrik committed R108:d474eb730ece: vulkan/window: Use the new QuadSplitter (authored by fredrik).
vulkan/window: Use the new QuadSplitter
Feb 16 2018, 5:03 PM
fredrik committed R108:c21ad7c310cb: vulkan: Introduce a new QuadSplitter class (authored by fredrik).
vulkan: Introduce a new QuadSplitter class
Feb 16 2018, 5:03 PM
fredrik committed R108:8a7db7830fe0: effects/cubeslide: Use the new CullMode property (authored by fredrik).
effects/cubeslide: Use the new CullMode property
Feb 16 2018, 5:03 PM
fredrik committed R108:dd2ba88836b0: effects/cubeslide: Support Vulkan compositing (authored by fredrik).
effects/cubeslide: Support Vulkan compositing
Feb 16 2018, 5:03 PM
fredrik committed R108:7d038309b936: vulkan: Use ScreenPaintData::cullMode() (authored by fredrik).
vulkan: Use ScreenPaintData::cullMode()
Feb 16 2018, 5:03 PM
fredrik committed R108:aa92f360ae7f: opengl: Use ScreenPaintData::cullMode() (authored by fredrik).
opengl: Use ScreenPaintData::cullMode()
Feb 16 2018, 5:03 PM