egl: support EGL_LARGEST_PBUFFER in eglCreatePbufferSurface(...)
authorDaniel Czarnowski <daniel.czarnowski@intel.com>
Mon, 22 Feb 2016 06:00:14 +0000 (08:00 +0200)
committerTapani Pälli <tapani.palli@intel.com>
Fri, 18 Mar 2016 05:35:32 +0000 (07:35 +0200)
commitd4714512e4077b8079efe526d7823e19fdb9be37
tree816741779dfd54fbc33ed3b751cf1cc6eed8e513
parentdd63fa28f14f8ddeeeca1847eb7d38f4e2bc2234
egl: support EGL_LARGEST_PBUFFER in eglCreatePbufferSurface(...)

Patch provides a default for a set pbuffer surface size when
EGL_LARGEST_PBUFFER is used by the client. MIN2 macro is moved
to egldefines so that it can be shared.

Fixes following Piglit test:
   egl-create-largest-pbuffer-surface

From EGL 1.5 spec:
   "Use EGL_LARGEST_PBUFFER to get the largest available pbuffer
   when the allocation of the pbuffer would otherwise fail."

Currently there exists no API to query largest available pixmap size
using xlib or xcb so right now this seems most straightforward way to
ensure that we fulfill above API and also we don't attempt to allocate
'too big' pixmap which might succeed on server side but not work in
practice when driver starts to use it as a texture.

v2: add more explanation about the change (Emil)

Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Cc: "11.0 11.1" <mesa-stable@lists.freedesktop.org
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/egl/main/eglconfig.c
src/egl/main/egldefines.h
src/egl/main/eglsurface.c