mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-13 08:22:16 -04:00
render/gles2: scissor region on render pass
The scissor step in the rendering has been drop when moving from the legacy rendering API to the current render pass API. Clipping on the CPU allows smaller draws, which can improve both GPU and IO bandwidth on tiled renderer GPUs like on the Raspberry PI.
This commit is contained in:
parent
c393fb6bfa
commit
9839535691
1 changed files with 5 additions and 0 deletions
|
|
@ -90,6 +90,10 @@ static void render(const struct wlr_box *box, const pixman_region32_t *clip, GLi
|
|||
return;
|
||||
}
|
||||
|
||||
glEnable(GL_SCISSOR_TEST);
|
||||
glScissor(region.extents.x1, region.extents.y1, region.extents.x2 - region.extents.x1,
|
||||
region.extents.y2 - region.extents.y1);
|
||||
|
||||
glEnableVertexAttribArray(attrib);
|
||||
|
||||
for (int i = 0; i < rects_len;) {
|
||||
|
|
@ -120,6 +124,7 @@ static void render(const struct wlr_box *box, const pixman_region32_t *clip, GLi
|
|||
}
|
||||
|
||||
glDisableVertexAttribArray(attrib);
|
||||
glDisable(GL_SCISSOR_TEST);
|
||||
|
||||
pixman_region32_fini(®ion);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue