wayfire icon indicating copy to clipboard operation
wayfire copied to clipboard

The blur plugin is creating screen artifacts.

Open killown opened this issue 6 months ago • 4 comments

Describe the bug to reproduce the issue is necessary cube plugin and blur/alpha enabled on the view

~ ❯❯❯ cat /tmp/wayfire-log.txt | grep git II 16-06-25 20:50:06.525 - [render/gles2/renderer.c:539] Using OpenGL ES 3.2 Mesa 25.2.0-devel (git-00dd0d0dd1)

https://github.com/user-attachments/assets/d33a7a59-25e9-4ab7-ae41-5e8ddd9b2422

killown avatar Jun 17 '25 00:06 killown

maybe related #2667 then duplicated? the root issue seems the alpha plugin

killown avatar Jun 17 '25 00:06 killown

II 16-06-25 22:31:52.193 - [plugins/window-rules/view-action-interface.cpp:404] View action interface: Alpha set to 0.68.
EE 16-06-25 22:32:09.129 - [GLES2] GL_INVALID_OPERATION in glTexSubImage2D(invalid texture level 0)
EE 16-06-25 22:32:09.179 - [GLES2] GL_INVALID_OPERATION in glTexSubImage2D(invalid texture level 0)
EE 16-06-25 22:32:09.413 - [src/core/opengl.cpp:44] gles2: function glBindFramebuffer(0x8CA9, ensure_render_buffer_fb_id(buffer)) in void wf::gles::bind_render_buffer(const wf::render_buffer_t&) line 347: GL_INVALID_OPERATION
EE 16-06-25 22:32:09.414 - [GLES2] GL_INVALID_OPERATION in glTexSubImage2D(invalid texture level 0)
EE 16-06-25 22:32:09.414 - [GLES2] GL_INVALID_OPERATION in glTexSubImage2D(invalid texture level 0)
EE 16-06-25 22:32:09.415 - [src/core/opengl.cpp:44] gles2: function glBindFramebuffer(0x8CA9, ensure_render_buffer_fb_id(buffer)) in void wf::gles::bind_render_buffer(const wf::render_buffer_t&) line 347: GL_INVALID_OPERATION
EE 16-06-25 22:32:09.464 - [GLES2] GL_INVALID_OPERATION in glTexSubImage2D(invalid texture level 0)
EE 16-06-25 22:32:09.464 - [src/core/opengl.cpp:44] gles2: function glBindFramebuffer(0x8CA9, ensure_render_buffer_fb_id(buffer)) in void wf::gles::bind_render_buffer(const wf::render_buffer_t&) line 347: GL_INVALID_OPERATION

now it will be easier for you to fix :P

killown avatar Jun 17 '25 01:06 killown

Looks like alpha is the reason. I do not use blur - but use alpha. Disabling alpha plugin makes artifacts disappear even with default 100 transaction timeout.

But it does not have anything with the transparency effect itself - I use patched version of move plugin that applies transparency on moving window, and this still works. So the engine of transparent window is ok but alpha plugin itself seems to do something wrong.

mark-herbert42 avatar Jun 17 '25 05:06 mark-herbert42

Checked the code of alpha.cpp

The only thing that do loop and massive damafe is min_value_changed function.

Commented out the line in alpha.cpp

min_value.set_callback(min_value_changed);

And no more damage issues.

In theory this thing should not be called inless I do manual (or IPC) change of min_value config parameter. But this callback seems to be looping over all windows during maximize-unaximize animation. So maybe the issue is a bit deeper and there are more callbacks like this that run when they should not - but they fo not do visual artefacts so silently consume PC resources and energy efficiency.

mark-herbert42 avatar Jun 18 '25 08:06 mark-herbert42