Skip to content
This repository has been archived by the owner on Nov 1, 2021. It is now read-only.

render/pixman: doesn't clear transparent regions #2907

Closed
emersion opened this issue May 1, 2021 · 4 comments · Fixed by #3036
Closed

render/pixman: doesn't clear transparent regions #2907

emersion opened this issue May 1, 2021 · 4 comments · Fixed by #3036

Comments

@emersion
Copy link
Member

emersion commented May 1, 2021

  1. Start Sway with the Pixman renderer
  2. Start slurp
  3. Start selecting a region
  4. The selected region is full of previous rectangles. The area which isn't selected is supposed to be semi-transparent, but it's completely white.

screenshot

cc @bl4ckb0ne

@bl4ckb0ne
Copy link
Contributor

I managed to reproduce on my side, gonna investigate it. Could you tell me more about slurp's rendering process please? I guess it's a layer shell, but how do you handle blanking the screen and the drawing of the rectange?

@bl4ckb0ne
Copy link
Contributor

I think it's because the renderer doesn't implement the texture write_pixels function.

@emersion
Copy link
Member Author

emersion commented May 2, 2021

Unlikely. Re-using textures ils an optional optimization irrelevant for the Pixman renderer since there's no GPU upload going on.

@emersion
Copy link
Member Author

emersion commented May 2, 2021

slurp just clears the whole buffer and renders the whole thing each frame. I think the Pixman renderer doesn't handle a non-opaque alpha channel properly when blending (in render_texture).

@emersion emersion added the bug label Jun 7, 2021
vyivel pushed a commit to vyivel/wlroots that referenced this issue Jul 9, 2021
A texture is opaque when it does *not* have alpha.

Fixes swaywm#2907
emersion pushed a commit that referenced this issue Jul 9, 2021
A texture is opaque when it does *not* have alpha.

Fixes #2907
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Development

Successfully merging a pull request may close this issue.

2 participants