egl/surfaceless: Fix segfault in eglSwapBuffers
Since commit 63c5d5c6c4
, the surfaceless
platform has allowed creation of pbuffer surfaces. But the vtable entry
for eglSwapBuffers has remained NULL.
Discovered by running a little pbuffer test.
Cc: Gurchetan Singh <gurchetansingh@chromium.org>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
parent
21af69e753
commit
52a6483e8a
|
@ -177,6 +177,17 @@ dri2_surfaceless_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *disp,
|
|||
attrib_list);
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
surfaceless_swap_buffers(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
|
||||
{
|
||||
assert(!surf || surf->Type == EGL_PBUFFER_BIT);
|
||||
|
||||
/* From the EGL 1.5 spec:
|
||||
* If surface is a [...] pbuffer surface, eglSwapBuffers has no effect.
|
||||
*/
|
||||
return EGL_TRUE;
|
||||
}
|
||||
|
||||
static EGLBoolean
|
||||
surfaceless_add_configs_for_visuals(_EGLDriver *drv, _EGLDisplay *dpy)
|
||||
{
|
||||
|
@ -223,6 +234,7 @@ static struct dri2_egl_display_vtbl dri2_surfaceless_display_vtbl = {
|
|||
.destroy_surface = surfaceless_destroy_surface,
|
||||
.create_image = dri2_create_image_khr,
|
||||
.swap_interval = dri2_fallback_swap_interval,
|
||||
.swap_buffers = surfaceless_swap_buffers,
|
||||
.swap_buffers_with_damage = dri2_fallback_swap_buffers_with_damage,
|
||||
.swap_buffers_region = dri2_fallback_swap_buffers_region,
|
||||
.post_sub_buffer = dri2_fallback_post_sub_buffer,
|
||||
|
|
Loading…
Reference in New Issue