Skip to content

blur and wobbly: Fix for transformed outputs - #3171

Merged
ammen99 merged 1 commit into
masterfrom
fix-blur-on-transformed-outputs
Oct 24, 2026
Merged

ammen99 merged 1 commit into
masterfrom
fix-blur-on-transformed-outputs

Conversation

@soreau

@soreau soreau commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

This fixes broken rendering for blurred and wobbly surfaces on outputs transformed 90 and 270.

Fixes #3161.

@EoceneMiacid

EoceneMiacid commented Oct 14, 2026 •

Copy link
Copy Markdown

Interesting. Disabling the 'blur' plugin does indeed fix the problem in the sense that apps now maximize correctly on it, so the rotated screen is at least usable now.

But it would appear there's another problem - here's a video that showcases it > https://imgur.com/NJz8UIH

This is when dragging an unmaximized window on it, only the upper half is used.

plugins=ipc ipc-rules autostart alpha animate command move switcher resize place zoom fisheye place wobbly window-rules wf-info xdg-activation wm-actions csd-decorator

@soreau

soreau commented Oct 14, 2026

Copy link
Copy Markdown
Member Author

Interesting. Disabling the 'blur' plugin does indeed fix the problem in the sense that apps now maximize correctly on it, so the rotated screen is at least usable now.

But it would appear there's another problem - here's a video that showcases it > https://imgur.com/NJz8UIH

This is when dragging an unmaximized window on it, only the upper half is used.

I'm pretty sure the bug in your video is precisely the bug that this fixes. I would suggest either double checking that blur is disabled or to install the one-liner patch in this pull request.

@soreau

soreau commented Oct 14, 2026

Copy link
Copy Markdown
Member Author

Ah, I didn't have wobbly enabled. Seems like we'll need this for wobbly too:

diff --git a/plugins/wobbly/wobbly.cpp b/plugins/wobbly/wobbly.cpp
index ea0da710..e314def6 100644
--- a/plugins/wobbly/wobbly.cpp
+++ b/plugins/wobbly/wobbly.cpp
@@ -1004,7 +1004,7 @@ class wobbly_render_instance_t :
             wf::gles::for_each_scissor_rect(data.target, data.damage, [&]
             {
                 wobbly_graphics::render_triangles(self->wobbly_program, tex,
-                    wf::gles::render_target_aligned_orthographic_projection(data.target),
+                    wf::gles::render_target_orthographic_projection(data.target),
                     vert.data(), uv.data(), count_triangles);
             });
         });

@soreau soreau changed the title blur: Fix for transformed outputs blur and wobbly: Fix for transformed outputs Oct 14, 2026
@EoceneMiacid

Copy link
Copy Markdown

Yes - disabling 'wobbly' fixes that too - nice catch. It's almost perfect now.

Only one problem remains, which is that the vertical size doesn't align properly between the rotated and the non-rotated screen > https://imgur.com/4aD42YD

The left screen is 1920 pixels high sitting next to a screen 2160 pixels high, yet it will only allow me to move the mouse cursor from the left to the right screen in the upper half.

@soreau

soreau commented Oct 14, 2026

Copy link
Copy Markdown
Member Author

Only one problem remains, which is that the vertical size doesn't align properly between the rotated and the non-rotated screen > https://imgur.com/4aD42YD

The left screen is 1920 pixels high sitting next to a screen 2160 pixels high, yet it will only allow me to move the mouse cursor from the left to the right screen in the upper half.

This is a different matter entirely for which you should file a separate issue.

@EoceneMiacid

Copy link
Copy Markdown

Ok will do

@soreau
soreau force-pushed the fix-blur-on-transformed-outputs branch from f2dc512 to c7c4397 Compare October 18, 2026 16:46
@ammen99

ammen99 commented Oct 20, 2026

Copy link
Copy Markdown
Member

This is the wrong fix. I have made these changes particularly so that rendering remains crisp with fractional scale - moving back to the not-aligned versions will break that.

Somehow, we need to ensure that alignment works the same across rotated outputs. Maybe we'll have to invert the order of scaling and rotating in this path, or some other trick to ensure alignment works as it should.

@soreau
soreau force-pushed the fix-blur-on-transformed-outputs branch from c7c4397 to b5d4aa7 Compare October 20, 2026 07:31
@soreau

soreau commented Oct 20, 2026

Copy link
Copy Markdown
Member Author

This is the wrong fix. I have made these changes particularly so that rendering remains crisp with fractional scale - moving back to the not-aligned versions will break that.

Somehow, we need to ensure that alignment works the same across rotated outputs. Maybe we'll have to invert the order of scaling and rotating in this path, or some other trick to ensure alignment works as it should.

Thank you for your review. I think I found the real culprit. Please check the latest diff.

@ammen99 ammen99 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM now, thanks!

@ammen99

ammen99 commented Oct 24, 2026

Copy link
Copy Markdown
Member

Could you please rebase so that the CI can run and we make sure style is ok?

@soreau
soreau force-pushed the fix-blur-on-transformed-outputs branch from b5d4aa7 to b3826a7 Compare October 24, 2026 09:01
@ammen99
ammen99 merged commit ff64308 into master Oct 24, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Desktop area wrong on a rotated 1080p screen

3 participants