WillPower3309 / swayfx

SwayFX: Sway, but with eye candy!
MIT License
1.29k stars 48 forks source link

Blur damage tracking simplification #155

Closed WillPower3309 closed 1 year ago

WillPower3309 commented 1 year ago

This PR primarily moves the damage expansion for blur and shadows to the output_damage_whole_container function in output.c. This lets us clean up a lot of render.c.

WillPower3309 commented 1 year ago

Artifacts visible on bottom right corner of floating chromium window 2023-05-07_02-05-1683441844, also visible towards edges of floating terminal

Artifacts also occur when moving a floating window over a transparent floating window (more visible if the windows are different colors).

Seems to just be on the edges of the windows, will investigate further.

ErikReider commented 1 year ago

Artifacts visible on bottom right corner of floating chromium window IMAGE, also visible towards edges of floating terminal

Artifacts also occur when moving a floating window over a transparent floating window (more visible if the windows are different colors).

Seems to just be on the edges of the windows, will investigate further.

This has to do with how we treated the damage.

First we expanded the damage twice the amount if needed (I'll call it damage) while also creating and only expanding extended_damage once, then we render everything as usual with damage. The trick was to then only render to the wlr framebuffer with the extended_damage with the render_whole_output function, essentially clipping the blur edges

WillPower3309 commented 1 year ago

Still have artifacting issues despite bringing back expanded_damage, hmm. Will look into it later!

ErikReider commented 1 year ago

Still have artifacting issues despite bringing back expanded_damage, hmm. Will look into it later!

Should be fixed now :)

WillPower3309 commented 1 year ago

Not 100% happy with where this is but I figure we can push for a merge and the iterate in a future PR (don't want to hold off 0.3 any longer)