Conversation
|
does wayfire build with wlroots 0.20 already? |
Wayfire master doesn't quite yet but it's a very small patch and I expect we'll update to wlroots 0.20.x as soon as it's released. |
|
there is a small patch to make it build. but there is a need for some more patch to eliminate crash caused by this change: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5107 it is not crashing immediately but after some use , i could not find the solution for this and right now use 20-rc4 with 5107 patched out. |
|
Tested further. The request is crashing because of this The second point - wobbly gives artifacts on transparent windows. Making window smaller makes artifacts less frequent, but as you see in video on 3.1K screen wobbly is totally unusable together with alfa under vulkan. wobbly-vulkan.mp4 |
|
This will reduce CPU usage. The patch still needs work which I wont touch it, I was just curious about the cpu usage, though, on output 1, dragged woobly view disappears. With this patch the view is likely being drawn off-screen, while output 2 works fine, the view takes only 12% cpu usage while dragged in a 75hz monitor, before was around 33% . This is exactly the gap descriptor heap closes in my theory: I must admit that I don't have the whole picture of how it would be, for me would be like this: So the normal usage would drop around 7% as good as gles2. You were correct that the descriptor set isn't the sole cause of the CPU usage, but I still believe there's additional overhead elsewhere based on these descriptors. |
|
Tested this patch and yes - CPU usage goes down compared with initial version But still does not fix the issue with transparent window. |
|
@killown @mark-herbert42 I have changed the approach to descriptor set now. I needed to patch wlroots a bit more (so update from my fork) and if you are interested, try again - I believe the cpu usage should be down significantly now in wobbly+vulkan |
|
applied your wlroots patches over mainline wlroots, dont like to keep the zoo on my PC as wayfire is my only wlroots user (have labwc installed but never used for a year+), so if I report a bug dont look that my log will say simple wlroots-0.20 With the new vulkan patches - happy so far. No more ugly issue with wobbly, cpu usage is OK, GPU usage was always a bit higher with vulkan compared with gles2 but now it seems a bit better. Anyway it is a wlroots issue, not wayfire - as even sway which has no effects and just do simple tiling use more GPU with vulkan. So happy so far, switchit WLR_RENDERER=vulkan on my daily driver. Now main thing missing for me is good decorator - pix decor is too complex for me to port, so will try window shadows (even this is a big doubt, but at least some chance), and fire animation - here is more about wording, wayfire has lost fire. For practical use simple fading is doing the job.... |
If you try porting effects, I would recommend looking at soreau's burn effect, I think it might be better, or at least simpler to port than the default 'fire' effect, probably more performant too :) Thanks for testing though! |
| private: | ||
| texture_t(); | ||
|
|
||
| wlr_texture *texture = NULL; |
There was a problem hiding this comment.
Why is this private? In plugins like showrepaint, we need to set the wlr_texture * but now it is private with no setter function.
There was a problem hiding this comment.
The texture field is immutable after the texture has been created once. To create a std::shared_ptr<wf::texture_t>, you can use one of the factory methods (from_buffer/from_texture/from_aux)
|
Notes for porting plugins to the new API (still WIP, let me know if something is missing):
|
As people following the Matrix channel likely already know, I have been working on custom Vulkan effects for Wayfire. Currently, this requires installing a wlroots 0.20 fork with minimal changes (it can be installed alongside any other wlroots release without conflicts): https://gitlab.freedesktop.org/ammen99/wlroots/-/tree/vulkan-effects?ref_type=heads
To enable vulkan effects, make sure that you:
-Dvulkan_effects=truewhen building WayfireCurrently supported are wobbly and view-3d, which means that plugins like wrot and switcher also are supposed to work, alongside wobbly. The entire vulkan effects support is currently guarded behind
#if WF_HAS_VULKANFXand is meant as experimental, i.e big breaking changes might be required in the future - though hopefully, this won't be the case ...Marking this as draft because this currently requires wlroots 0.20, so it will be mergeable after that. Feedback really welcome in case anyone wants to review and/or test this new functionality.