summaryrefslogtreecommitdiff
path: root/src/gallium/state_trackers/egl
AgeCommit message (Collapse)Author
2010-10-23st/egl: Use resource reference count for egl_g3d_sync.Chia-I Wu
2010-10-23egl: Use reference counting to replace IsLinked or IsBound.Chia-I Wu
Remove all _egl<Res>IsLinked and _egl<Res>IsBound. Update _eglBindContext and drivers to do reference counting.
2010-10-23st/egl: Fix native_mode refresh mode.Chia-I Wu
Define the unit to match _EGLMode's.
2010-10-23egl: Fix _eglModeLookup.Chia-I Wu
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.
2010-10-23egl: Minor changes to the _EGLScreen interface.Chia-I Wu
Make _eglInitScreen take a display and rename _eglAddScreen to _eglLinkScreen. Remove unused functions.
2010-10-23egl: Minor changes to the _EGLConfig interface.Chia-I Wu
Mainly to rename _eglAddConfig to _eglLinkConfig, along with a few clean ups.
2010-10-22egl: Parse image attributes with _eglParseImageAttribList.Chia-I Wu
Avoid code duplications.
2010-10-22egl: Move attributes in _EGLImage to _EGLImageAttribs.Chia-I Wu
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.
2010-10-14st/egl: Do not finish a fence that is NULL.Chia-I Wu
i915g would dereference the NULL pointer.
2010-10-14st/egl: Access _EGLConfig directly.Chia-I Wu
Drop the use of SET_CONFIG_ATTRIB. Fix the value of EGL_SAMPLE_BUFFERS along the way.
2010-10-13Get rid of GL/internal/glcore.hKristian Høgsberg
__GLcontextModes is always only used as an implementation internal struct at this point and we shouldn't install glcore.h anymore. Anything that needs __GLcontextModes should just include the struct in its headers files directly.
2010-09-30st/egl: Drop context argument from egl_g3d_get_egl_image.Chia-I Wu
Fix a regression since 17eace581d25a626a7d75d9d1205d012cbb14a6e.
2010-09-30st/egl: Skip single-buffered configs in EGL.Chia-I Wu
Let DRI2 report single-buffered configs and skip them in EGL. This is based on the patch by Luca Barbieri.
2010-09-22glx: decouple dri2.c and GLX, fixing Gallium EGL and d3d1x buildLuca Barbieri
The Gallium EGL state tracker reuses dri2.c but not the GLX code. Currently there is a bit of code in dri2.c that is incorrectly tied to GLX: instead, make it call an helper that both GLX and Gallium EGL implement, like dri2InvalidateBuffers. This avoids a link error complaining that dri2GetGlxDrawableFromXDrawableId is undefined. Note that we might want to move the whole event translation elsewhere, and probably stop using non-XCB DRI2 altogether, but this seems to be the minimal fix.
2010-09-19st/egl: s/kms/drm/ on the drm backend.Chia-I Wu
s/kms/drm/, s/kdpy/drmdpy/, and so forth.
2010-09-19st/egl: Rename kms backend to drm.Chia-I Wu
The main use of the backend is to support EGL_MESA_drm_display. drm should be a better name.
2010-09-19st/egl: Split modeset code support to modeset.c.Chia-I Wu
The modeset code supports now obsolete EGL_MESA_screen_surface. Move it to a file of its own.
2010-09-10st/egl: Use profiles to create OpenGL ES contexts.Chia-I Wu
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.
2010-09-10gallium: Add context profile support to st_api.Chia-I Wu
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.
2010-08-31st/egl: Enable EGL_MESA_drm_display.Chia-I Wu
2010-08-26st/egl: Add support for EGL_MESA_image_drm.Chia-I Wu
2010-08-26st/egl: Add support for EGL_KHR_surfaceless_*.Chia-I Wu
2010-08-26st/egl: Make KMS support optional in KMS backend.Chia-I Wu
It should be called DRM backend now.
2010-08-24st/egl: Fix r300/r600 support in KMS backend.Chia-I Wu
When the kernel driver name is radeon, ask the loader for r300 or r600 depending on the PCI ID.
2010-08-19st/egl: Fix win32 build.Chia-I Wu
Add new source files to SConscripts.
2010-08-17st/egl: Add support for EGL_KHR_fence_sync.Chia-I Wu
The extension is implemented by pipe_fence_handle.
2010-08-17st/egl: Add support for EGL_KHR_reusable_sync.Chia-I Wu
The extension is implemented by pipe_condvar.
2010-07-31egl: Add checks for EGL_MESA_screen_surface.Chia-I Wu
This allows Mesa EGL to be compiled with eglext.h that does not define EGL_MESA_screen_surface.
2010-07-28Untangle gallium/egl/glx source sharing mess and make it compile againKristian Høgsberg
2010-07-26st/egl: Fix debug linenobled
Acked-by: Jakob Bornecrantz <jakob@vmware.com>
2010-07-20st/egl: Fixes for recent GLX cleanup.Chia-I Wu
Mainly, the type of __GLXdisplayPrivateRec::screenConfigs has changed from "__GLXscreenConfigs *" to "__GLXscreenConfigs **".
2010-07-06st/egl: Add support for !GLX_DIRECT_RENDERING.Chia-I Wu
st/egl uses GLX code for DRI2 support. It should honor GLX_DIRECT_RENDERING. Also updates configure.ac to define GLX_DIRECT_RENDERING for st/egl.
2010-07-03st/egl: Remove unnecessary headers.Vinson Lee
2010-06-30st/egl: Manually free configs on terminate.Chia-I Wu
The configs should be FREE()ed, not free()ed. We cannot rely on _eglCleanupDisplay here.
2010-06-30egl: Store screens in a dynamic array.Chia-I Wu
2010-06-30egl: Store configs in a dynamic array.Chia-I Wu
2010-06-30st/egl: Add egl-gdi target.Chia-I Wu
The target supports OpenVG on Windows with software rasterizer. The egl_g3d_loader defined by the target supports arbitrary client APIs and window systems. It is the SConscript that limits the support to OpenVG and GDI. This commit also fixes a typo in gdi backend.
2010-06-29egl: Remove st/egl probe code.Chia-I Wu
It is no longer needed.
2010-06-29st/egl: Build a single EGL driver.Chia-I Wu
This change makes st/egl build a single egl_gallium.so and multiple st_<API>.so and pipe_<HW>.so. When a display is initialized, the corresponding pipe driver will be loaded. When a context is created, the corresponding state tracker will be loaded. Unlike DRI drivers, no ABI compatibility is maintained. egl_gallium, pipe drivers and state trackers should always be distributed as a single package. As such, there is only a single src/gallium/targets/egl/ that builds everything for the package.
2010-06-29st/egl: Move module loading code to targets.Chia-I Wu
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.
2010-06-29st/egl: Reorganize targets.Chia-I Wu
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.
2010-06-29st/egl: One driver per hardware.Chia-I Wu
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.
2010-06-29st/egl: Introduce native_platform.Chia-I Wu
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.
2010-06-29st_api: Remove st_context::is_visual_supported.Chia-I Wu
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.
2010-06-28Merge branch 'gallium-drm-driver-drescriptor'Jakob Bornecrantz
Conflicts: src/gallium/state_trackers/egl/x11/native_dri2.c src/gallium/state_trackers/egl/x11/native_x11.c src/gallium/state_trackers/egl/x11/native_x11.h src/gallium/state_trackers/xorg/xorg_driver.c src/gallium/winsys/radeon/drm/radeon_drm.c
2010-06-23egl: Introduce platform displays internally.Chia-I Wu
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.
2010-06-17egl: s/EGL_DISPLAY/EGL_PLATFORM/.Chia-I Wu
A platform is already used to mean a window system in EGL. No need to use a different term.
2010-06-11st/egl: Add fbdev backend.Chia-I Wu
The backend is pure software. It implements EGL_MESA_screen_surface extension, and is kept simple by only exporting the current mode.
2010-06-10st/egl: Remove unnecessary header.Vinson Lee
2010-06-06gallium: Convert state trackers to drm driver interfaceJakob Bornecrantz