Skip to content

Commit 08fe3eb

Browse files
committed
perf: single buffer for blur
1 parent fde7337 commit 08fe3eb

6 files changed

Lines changed: 192 additions & 300 deletions

File tree

include/effects.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,14 @@ typedef struct effects_output_t {
5555
uint64_t mica_native[2];
5656
bool mica_dirty;
5757

58+
// shared blurred background, reused by every window blur
59+
struct wlr_buffer *blur_buf;
60+
uint64_t blur_native[2];
61+
62+
// shared blurred layer background, reused by every layer surface blur
63+
struct wlr_buffer *layer_blur_buf;
64+
uint64_t layer_blur_native[2];
65+
5866
struct wlr_buffer *screen_shader_buf;
5967
uint64_t screen_shader_native[2];
6068
struct wlr_scene_buffer *screen_shader_node;

include/layer.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,7 @@ typedef struct layer_surface_t {
1818
bool mapped;
1919

2020
struct wlr_scene_buffer *blur_node;
21-
struct wlr_buffer *blur_buf;
22-
uint64_t blur_native[2];
23-
bool blur_scene_hidden;
24-
bool blur_geometry_dirty;
21+
bool blur_scene_hidden, blur_region_dirty;
2522
pixman_region32_t blur_region;
2623

2724
struct wl_listener new_popup;

include/surface.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ typedef struct surface_blur_t {
1919
struct wlr_buffer *acrylic_buf;
2020
uint64_t acrylic_native[2];
2121
pixman_region32_t blur_region;
22+
bool blur_region_dirty, blur_mask_valid;
23+
struct be_corner_mask_params blur_mask_params;
2224
} surface_blur_t;
2325

2426
typedef struct surface_rounded_t {

0 commit comments

Comments
 (0)