mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-05-08 22:58:11 +02:00
compositor: fix uniform handling for fade_output()
fade_output() is strange in that it manufactures a wlsc_surface object by hand, and then calls wlsc_surface_draw() on it. Valgrind complained, that wlsc_surface_draw() accesses uninitialised data: wlsc_surface::alpha. fade_output() forgets to set it. Initialise surface.alpha in fade_output(). Specifically, set it to compositor->current_alpha to deliberatly avoid the gluniform1f() call in wlsc_surface_draw(). fade_output() binds a different GL shader program than wlsc_surface_draw() expects. This program does not have a uniform called "alpha", and the uniform location given in glUniform1f() is not for this program anyway. A hint of that is the runtime error: Mesa: User error: GL_INVALID_OPERATION in glUniform(type mismatch) Fixing this seems to get rid of half a thousand of Valgrind errors, and of course the Mesa user error. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
This commit is contained in:
parent
bbedd7e9d2
commit
3429a72597
1 changed files with 1 additions and 0 deletions
|
|
@ -664,6 +664,7 @@ fade_output(struct wlsc_output *output,
|
|||
surface.height = output->current->height;
|
||||
surface.texture = GL_NONE;
|
||||
surface.transform = NULL;
|
||||
surface.alpha = compositor->current_alpha;
|
||||
|
||||
if (tint <= 1.0)
|
||||
surface.visual = WLSC_PREMUL_ARGB_VISUAL;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue