Compare commits
1 Commits
master
...
rpi-vc4-ha
Author | SHA1 | Date |
---|---|---|
Andri Yngvason | 5c138adfe1 |
11
src/damage.c
11
src/damage.c
|
@ -61,19 +61,20 @@ bool damage_check_32_byte_block(const void* block)
|
|||
return a[0] || a[1] || a[2] || a[3];
|
||||
}
|
||||
|
||||
void damage_check_row(uint8_t* dst, const uint8_t* src, uint32_t width)
|
||||
void damage_check_row(uint8_t* dst, const uint16_t* src, uint32_t width)
|
||||
{
|
||||
uint32_t aligned_width = (width / 32) * 32;
|
||||
|
||||
for (uint32_t x = 0; x < aligned_width; x += 32)
|
||||
dst[x / 32] |= damage_check_32_byte_block(&src[x]);
|
||||
dst[x / 32] |= damage_check_32_byte_block(&src[x])
|
||||
| damage_check_32_byte_block(&src[x + 1]);
|
||||
|
||||
for (uint32_t x = aligned_width; x < width; ++x)
|
||||
dst[x / 32] |= src[x];
|
||||
dst[x / 32] |= src[x] | src[x + 1];
|
||||
}
|
||||
|
||||
void damage_check_tile_row(struct pixman_region16* damage,
|
||||
uint8_t* row_buffer, const uint8_t* buffer,
|
||||
uint8_t* row_buffer, const uint16_t* buffer,
|
||||
uint32_t y_start, uint32_t width, uint32_t height)
|
||||
{
|
||||
uint32_t tiled_width = UDIV_UP(width, 32);
|
||||
|
@ -89,7 +90,7 @@ void damage_check_tile_row(struct pixman_region16* damage,
|
|||
x * 32, y_start, 32, 32);
|
||||
}
|
||||
|
||||
void damage_check(struct pixman_region16* damage, const uint8_t* buffer,
|
||||
void damage_check(struct pixman_region16* damage, const uint16_t* buffer,
|
||||
uint32_t width, uint32_t height, struct pixman_box16* hint)
|
||||
{
|
||||
uint32_t tiled_width = UDIV_UP(width, 32);
|
||||
|
|
|
@ -556,8 +556,8 @@ void wayvnc_process_frame(struct wayvnc* self)
|
|||
};
|
||||
|
||||
size_t alignment = MAX(4, sizeof(void*));
|
||||
size_t damage_buffer_size = ALIGN_UP(width * height, alignment);
|
||||
uint8_t* damage_buffer =
|
||||
size_t damage_buffer_size = ALIGN_UP(width * height * 2, alignment);
|
||||
uint16_t* damage_buffer =
|
||||
aligned_alloc(alignment, damage_buffer_size);
|
||||
render_damage(&self->renderer);
|
||||
renderer_read_damage(&self->renderer, damage_buffer, 0, height);
|
||||
|
|
|
@ -572,7 +572,7 @@ int renderer_init(struct renderer* self, const struct output* output,
|
|||
if (create_textured_fbo(&self->frame_fbo[1], GL_RGBA, tf_width, tf_height) < 0)
|
||||
goto frame_fbo_failure_1;
|
||||
|
||||
if (create_fbo(&self->damage_fbo, GL_R8_EXT, tf_width, tf_height) < 0)
|
||||
if (create_fbo(&self->damage_fbo, GL_RGB565, tf_width, tf_height) < 0)
|
||||
goto damage_fbo_failure;
|
||||
|
||||
glBindFramebuffer(GL_FRAMEBUFFER, self->frame_fbo[0].fbo);
|
||||
|
|
Loading…
Reference in New Issue