Age | Commit message (Collapse) | Author |
|
native_display_buffer is just a wrapper to resource_{from,get}_handle
for drm backend.
|
|
The interface is a wrapper to pipe_screen::resource_from_handle and
pipe_screen::resource_get_handle. A winsys handle is
platform-dependent.
|
|
This allows a backend to be written in C++.
|
|
Added for completeness. It makes sense to have such mechanism, but I am
not aware of any user of that..
|
|
The value of EGL_MAX_SWAP_INTERVAL and whether
EGL_SWAP_BEHAVIOR_PRESERVED_BIT is set will depend on the native
backend used.
|
|
They are deprecated by native_surface::present and there is no user of
them.
|
|
Replace native_surface::flush_frontbuffer and
native_surface::swap_buffers calls by native_surface::present calls.
|
|
The callback presents the given attachment to the native engine. It
allows the swap behavior and interval to be controlled. It will replace
native_surface::flush_frontbuffer and native_surface::swap_buffers
shortly.
|
|
[olv: formatted for 80-column wrapping]
|
|
|
|
Remove all _egl<Res>IsLinked and _egl<Res>IsBound. Update
_eglBindContext and drivers to do reference counting.
|
|
Define the unit to match _EGLMode's.
|
|
Internally a mode belongs to a screen. But functions like
eglGetModeAttribMESA treat a mode as a display resource: a mode can be
looked up without a screen. Considering how KMS works, it is better to
stick to the current implementation.
To properly support looking up a mode without a screen, this commit
assigns each mode (of all screens) a unique ID.
|
|
Make _eglInitScreen take a display and rename _eglAddScreen to
_eglLinkScreen. Remove unused functions.
|
|
Mainly to rename _eglAddConfig to _eglLinkConfig, along with a few clean
ups.
|
|
Avoid code duplications.
|
|
The opaque nature of EGLImage implies that extensions almost always
define their own attributes. Move attributes in _EGLImage to
_EGLImageAttribs and add a helper function to parse attribute lists.
|
|
i915g would dereference the NULL pointer.
|
|
Drop the use of SET_CONFIG_ATTRIB. Fix the value of EGL_SAMPLE_BUFFERS
along the way.
|
|
Fix a regression since 17eace581d25a626a7d75d9d1205d012cbb14a6e.
|
|
Let DRI2 report single-buffered configs and skip them in EGL. This is
based on the patch by Luca Barbieri.
|
|
The main use of the backend is to support EGL_MESA_drm_display. drm
should be a better name.
|
|
Replace all uses of ST_API_OPENGL_ES{1,2} by profiles. Having 3
st_api's to provide OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is not a
sane abstraction, since all of them share glapi for current
context/dispatch management.
|
|
Add struct st_context_attribs to describe context profiles and
attributes. Modify st_api::create_context to take the new struct
instead of an st_visual.
st_context_attribs can be used to support GLX_ARB_create_context_profile
and GLX_EXT_create_context_es2_profile in the future. But the
motivation for doing it now is to be able to replace ST_API_OPENGL_ES1
and ST_API_OPENGL_ES2 by profiles.
Having 3 st_api's to provide OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is
not a sane abstraction, since all of them share glapi for current
context/dispatch management.
|
|
|
|
|
|
|
|
The extension is implemented by pipe_fence_handle.
|
|
The extension is implemented by pipe_condvar.
|
|
This allows Mesa EGL to be compiled with eglext.h that does not define
EGL_MESA_screen_surface.
|
|
Acked-by: Jakob Bornecrantz <jakob@vmware.com>
|
|
The configs should be FREE()ed, not free()ed. We cannot rely on
_eglCleanupDisplay here.
|
|
|
|
|
|
It is no longer needed.
|
|
Several changes are made. libegl.a no longer defines _eglMain. It
defines functions to create and destroy a _EGLDriver instead. The
creation function is called by the targets. It takes an egl_g3d_loader
as its argument. The loader is defined by the targets and is in charge
of creating st_api and pipe_screen. This allows us to move the module
loading code to targets. Lastly, the modules are now loaded as the
respective contexts are created.
|
|
Merge all targets into targets/egl/. The target produces
egl_gallium_<HW>.so for each pipe driver and st_<API>.so for each client
APIs. This enables us to further merge egl_gallium_<HW>.so into
egl_gallium.so later.
|
|
Merge multiple egl_<platform>_<pipe>.so into a single
egl_gallium_<pipe>.so. The environment variable EGL_PLATFORM is now
used to modify the return value of _eglGetNativePlatform.
|
|
Move native_get_name, native_create_probe, native_get_probe_result, and
native_create_display into struct native_platform, and add
native_get_platform to get a handle to the struct.
|
|
The callback is used by st/vega to check if a visual specifies the
depth/stencil format. It forces st/vega to be loaded by st/egl to
perform the check. As noted in EGL spec, the depth/stencil format of a
visual should not affect OpenVG. It should be better to ignore the
field and always allocate the depth/stencil texture.
|
|
This commit introduces type-safe platform displays internally. A
platform display consists of a generic pointer and an enum that
specifies the platform.
An EGLDisplay is created from a platform display. Native displays
become platform displays whose platform is determined by
_eglGetNativePlatform(). Platform windows and pixmaps may also be
introduced if needed.
|
|
|
|
Forgot to stage this chunk in last commit.
|
|
The code is shared by ximage and gdi backend.
|
|
There is only resource_surface for now. It helps manage the resources
of a software-based native surface such as XImage or GDI.
|
|
At least, .dll is used on Windows.
|
|
The backend uses Windows GDI driver to provide a software EGL
implementation on Windows.
|
|
This is some refactoring works. Creating a pbuffer from an
EGL_OPENVG_IMAGE is still not supported.
|
|
It was broken since surface_copy -> resource_copy_region transition.
|
|
|