summaryrefslogtreecommitdiffstats
path: root/src/egl/main/egldriver.h
Commit message (Collapse)AuthorAgeFilesLines
* egl: drop EGL driver `name`Eric Engestrom2018-10-311-2/+0
| | | | | | | | | | | | | | | | | | | | This is a revert of Marek's 2cb9ab53dd3ae6850a26 revert. It was needed to revert the previous commit, and didn't have any issue itself. -- The "DRI2" name was reported as confusing when printing EGL infos (one user reported thinking DRI3 was not working on his X server), and the only alternative is Haiku, which can only be used on a Haiku machine. The name therefore doesn't add any information that the user wouldn't know already, so let's just drop it. Suggested-by: Emil Velikov <[email protected]> Related-to: b174a1ae720cb404738c ("egl: Simplify the "driver" interface") Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Kai Wasserbäch <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* egl: move alloc & init out of _eglBuiltInDriver{DRI2,Haiku}Eric Engestrom2018-10-311-2/+2
| | | | | | | | | | | | | | | | This is a revert of Marek's 84f3afc2e122cb418573 revert, with a missing line added back. I failed a rebase and dropped that crucial line, and didn't do a runtime test after my rebase, and as a result broke EGL for everyone. This commit has been tested by Intel's CI and I re-read it once more, so it should be good this time. -- Note: dropping the EGL_BAD_ALLOC in egl_haiku because it's overwritten by the EGL_NOT_INITIALIZED in eglInitialize(). Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* Revert "egl: move alloc & init out of _eglBuiltInDriver{DRI2,Haiku}"Marek Olšák2017-10-181-2/+2
| | | | | | This reverts commit 8cb84c8477a57ed05d703669fee1770f31b76ae6. This fixes crashing shader-db/run.
* Revert "egl: drop EGL driver `name`"Marek Olšák2017-10-181-0/+2
| | | | | | This reverts commit 6414d6bd8d2897f4ba643357fe3037f3acd60879. This is needed to apply the next revert.
* egl: drop EGL driver `name`Eric Engestrom2017-10-181-2/+0
| | | | | | | | | | | | | | The "DRI2" name was reported as confusing when printing EGL infos (one user reported thinking DRI3 was not working on his X server), and the only alternative is Haiku, which can only be used on a Haiku machine. The name therefore doesn't add any information that the user wouldn't know already, so let's just drop it. Cc: Kai Wasserbäch <[email protected]> Suggested-by: Emil Velikov <[email protected]> Related-to: b174a1ae720cb404738c ("egl: Simplify the "driver" interface") Signed-off-by: Eric Engestrom <[email protected]>
* egl: drop always-false TestOnly optionEric Engestrom2017-10-181-1/+1
| | | | Signed-off-by: Eric Engestrom <[email protected]>
* egl: move alloc & init out of _eglBuiltInDriver{DRI2,Haiku}Eric Engestrom2017-10-181-2/+2
| | | | | | | | Note: dropping the EGL_BAD_ALLOC in egl_haiku because it's overwritten by the EGL_NOT_INITIALIZED in eglInitialize(). Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* egl: remove left over _EGLMain_tEric Engestrom2017-10-121-3/+0
| | | | | | | Fixes: b174a1ae720cb404738c "egl: Simplify the "driver" interface" Cc: Adam Jackson <[email protected]> Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* egl: replace _egl_driver->Unload() callback with a simple free()Eric Engestrom2017-10-121-7/+0
| | | | | | | Bonus: fixes a memleak on haiku when unloading the driver Signed-off-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* egl: Simplify the "driver" interfaceAdam Jackson2017-10-051-5/+1
| | | | | | | | | | | | | | | | | | "Driver" isn't a great word for what this layer is, it's effectively a build-time choice about what OS you're targeting. Despite that both of the extant backends totally ignore the display argument, the old code would only set up the backend relative to a display. That causes problems! One problem is it means eglGetProcAddress can generate X or Wayland protocol when it tries to connect to a default display so it can call into the backend, which is, you know, completely bonkers. Any other EGL API that doesn't reference a display, like EGL_EXT_device_query, would have the same issue. Fortunately this is a problem that can be solved with the delete key. Reviewed-by: Eric Anholt <[email protected]> Signed-off-by: Adam Jackson <[email protected]>
* egl/main: cleanup function prototypesEmil Velikov2015-05-141-10/+2
| | | | | | | | | Cleanup the function propotypes which were part of the previous EGL drivers. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* egl: Add needed extern "C" for C++ accessAlexander von Gluck IV2015-05-141-0/+10
| | | | | | * Haiku's egl driver is C++ due to the interface natively being C++ Reviewed-⁠by: Brian Paul <[email protected]>
* egl/main: no longer export internal functionEmil Velikov2015-03-051-3/+3
| | | | | | | | | | | | With the split of the gallium egl module we had previously it required access to some of the internal functions. As the only build (automake) that did this no longer builds it we can now appropriately hide those functions. Cc: 10.5 <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* egl/main: replace INLINE with inlineEmil Velikov2015-03-051-1/+3
| | | | | | | | | | Drop the custom keyword in favour of the C99 one. All the places using it now directly include c99_compat.h which should handle things on platforms which lack it. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Brian Paul <[email protected]>
* s/Tungsten Graphics/VMware/José Fonseca2014-01-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tungsten Graphics Inc. was acquired by VMware Inc. in 2008. Leaving the old copyright name is creating unnecessary confusion, hence this change. This was the sed script I used: $ cat tg2vmw.sed # Run as: # # git reset --hard HEAD && find include scons src -type f -not -name 'sed*' -print0 | xargs -0 sed -i -f tg2vmw.sed # # Rename copyrights s/Tungsten Gra\(ph\|hp\)ics,\? [iI]nc\.\?\(, Cedar Park\)\?\(, Austin\)\?\(, \(Texas\|TX\)\)\?\.\?/VMware, Inc./g /Copyright/s/Tungsten Graphics\(,\? [iI]nc\.\)\?\(, Cedar Park\)\?\(, Austin\)\?\(, \(Texas\|TX\)\)\?\.\?/VMware, Inc./ s/TUNGSTEN GRAPHICS/VMWARE/g # Rename emails s/[email protected]/[email protected]/ s/[email protected]/[email protected]/g s/jrfonseca-at-tungstengraphics-dot-com/jfonseca-at-vmware-dot-com/ s/jrfonseca\[email protected]/[email protected]/g s/keithw\[email protected]/[email protected]/g s/[email protected]/[email protected]/g s/thomas-at-tungstengraphics-dot-com/thellstom-at-vmware-dot-com/ s/[email protected]/[email protected]/ # Remove dead links s@Tungsten Graphics (http://www.tungstengraphics.com)@Tungsten Graphics@g # C string src/gallium/state_trackers/vega/api_misc.c s/"Tungsten Graphics, Inc"/"VMware, Inc"/ Reviewed-by: Brian Paul <[email protected]>
* egl: add copyright noticesChia-I Wu2011-07-021-0/+30
| | | | | The list of copyright holders could be incomplete. Please update directly or notify me if your name is missing.
* egl: Simplify driver matching.Chia-I Wu2011-01-131-11/+1
| | | | | | Add initialization options that drv->API.Initialize should support. Replace drv->Probe by TestOnly initialization option and simplify _eglMatchDriver.
* scons: Updates for targets/egl-static.Chia-I Wu2011-01-121-0/+4
| | | | | | | | Update SConscripts to re-enable or add support for EGL on windows and x11 platforms respectively. targets/egl-gdi is replaced by targets/egl-static, where "-static" means pipe drivers and state trackers are linked to statically by egl_gallium, and egl_gallium is a built-in driver of libEGL. There is no more egl_gallium.dll on Windows.
* egl: Make egl_dri2 and egl_glx built-in drivers.Chia-I Wu2011-01-101-0/+8
| | | | | These two drivers are small in size. Making them built-in should simplify packaging.
* egl: Add an include for size_tThomas Hellstrom2010-11-091-1/+1
| | | | Signed-off-by: Thomas Hellstrom <[email protected]>
* egl: Move fallback routines to eglfallbacks.c.Chia-I Wu2010-10-221-0/+1
| | | | We do not want them to be all over the places.
* egl: Rework driver loading.Chia-I Wu2010-07-061-11/+3
| | | | | | | | | | | | | | | Driver loading is now splitted into two stages. In the first stage, an _EGLModule is created for each driver: user driver, default drivers, and all files in the search directories that start with "egl_". Modules are not loaded at this stage. In the second stage, each module is loaded to initialize a display. The process stops at the first module that can initialize the display. If eglGetProcAddress is called before eglInitialize, the same code path will be taken to find the first module that supports EGL_DEFAULT_DISPLAY. Because we do not want to initialize the display, drv->Probe is used instead in this case.
* egl: Remove st/egl probe code.Chia-I Wu2010-06-291-8/+0
| | | | It is no longer needed.
* st/egl: One driver per hardware.Chia-I Wu2010-06-291-5/+0
| | | | | | 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.
* egl: Introduce platform displays internally.Chia-I Wu2010-06-231-0/+5
| | | | | | | | | | | 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.
* egl: Allow a prioritized list of default driversKristian Høgsberg2010-05-131-0/+4
| | | | | | | | | | | | | | When there is no user driver or any matching display drivers we fall back to the default driver. This patch lets us have a list of default drivers instead of just one. The drivers are loaded in turn and we attempt to initialize the display. If it fails we unload the driver and move on to the next one. Compared to the display driver mechanism, this avoids loading a number of drivers and then only using one. Also, we call Initialize to see if the driver will work instead of relying on Probe. To know for sure that a driver will work, Probe really have to do a full Initialize, so we will just use Initialize directly.
* egl: Add _eglSearchPathForEach.Chia-I Wu2010-05-081-0/+5
| | | | The function can be used by a driver to check each search path of EGL.
* egl: Update the comments to typecast macros.Chia-I Wu2010-02-051-0/+6
| | | | | Put a note that the macros define functions and should not be ended with a semicolon when used.
* egl: Add macros to define typecast functions.Chia-I Wu2010-02-041-0/+21
| | | | | | | | | | There are standard typecast functions that are common to most drivers. They are used to typecast, for example, an _EGLSurface to a driver-defined type. This commits define _EGL_DRIVER_STANDARD_TYPECASTS and _EGL_DRIVER_TYPECAST that should hopefully save some typings for driver writers.
* egl: Clean up header inclusions.Chia-I Wu2010-01-301-0/+3
| | | | Mainly to remove eglcurrent.h and egldisplay.h from eglglobals.h.
* egl: Remove _eglOpenDriver and _eglCloseDriver.Chia-I Wu2010-01-261-5/+1
| | | | | _eglCloseDriver is no-op and _eglOpenDriver does nothing but call _eglMatchDriver. Export _eglMatchDriver directly.
* egl: Remove _eglFindAPIs.Chia-I Wu2010-01-241-4/+0
| | | | | This function is not used and should have been removed by last commit. My mistake.
* egl: Add a simple cache for driver probe.Chia-I Wu2010-01-201-0/+8
| | | | | | In current design, multiple drivers will probe the same display and the best driver is determined. The cache can be used by the drivers to store and share the probed data.
* egl: Improve driver matching.Chia-I Wu2010-01-201-3/+16
| | | | | Make drv->Probe return a score so that the matching can be done by finding the driver with the highest score.
* egl: Remove unused driver and display functions.Chia-I Wu2010-01-201-8/+0
| | | | Remove _eglPreloadDriver, _eglLookupDriver, and _eglSplitDisplayString.
* egl: Add _eglPreloadDrivers.Chia-I Wu2010-01-201-1/+5
| | | | | | It can be used to load the user driver specified by EGL_DRIVER, or a set of drivers specified by EGL_DISPLAY, or the default driver, and in that order.
* egl: Fix breakage from -fvisibility=hidden.Chia-I Wu2010-01-051-3/+4
| | | | | | Mark EGL API and driver functions as PUBLIC. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Remove dependency on libX11.Chia-I Wu2009-08-211-4/+0
| | | | | | | | | | | | libX11 is used to determine the screen number, which is in turned used to determine the DRI driver. However, the sysfs interface for determining the DRI driver is gone, and no working driver depends on this mechanism. Display string parsing is moved to a new function, _eglSplitDisplayString. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Some per-driver data should be per-display.Chia-I Wu2009-08-181-26/+1
| | | | | | | Move some fields of _EGLDriver to _EGLDisplay. It also becomes unnecessary to pass _EGLDisplay to drivers when _eglMain is called. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Change the way drivers are loaded.Chia-I Wu2009-08-181-4/+11
| | | | | | | | | Driver is chosen and preloaded when eglGetDisplay is called. Later when eglInitialize is called, the same driver is matched to initialize the display. Also, add new, but unused, hooks to EGLDriver to allow a driver to probe a display or unload itself. Signed-off-by: Chia-I Wu <[email protected]>
* egl: Overhaul driver API.Chia-I Wu2009-08-181-1/+1
| | | | | | | | | | | | The motivation is so that drivers do not need to look up and check for bad display, context, and etc. It also becomes unnecessary for drivers to call the link functions. This commit makes eglapi.[ch] do the lookup and check. As a result, the driver API is overhauled, and almost all sources and drivers need update. The updates are mainly find and replace with human brains. Signed-off-by: Chia-I Wu <[email protected]>
* egl: implment EGL_LARGEST_PBUFFER queryBrian Paul2008-06-201-0/+2
|
* egl: clean up prototype code, new _eglFindAPIs() function.Brian Paul2008-06-191-0/+4
|
* egl: make _eglChooseDRMDriver() non-staticBrian Paul2008-06-061-0/+3
|
* egl: new eglGetProcAddress() codeBrian Paul2008-05-301-0/+4
| | | | | The idea is to pass the call down to the device driver where an API-specific query can be made. Untested.
* egl: clean-up re-org of the client API stateBrian Paul2008-05-301-1/+2
|
* egl: added Name field to _EGLDriver so a driver name string can propogate up ↵Brian Paul2008-05-291-1/+3
| | | | through EGL_VERSION string
* egl: remove unused Display fieldBrian Paul2008-05-281-2/+0
|
* egl: move a few small functions into new eglmisc.[ch] filesBrian Paul2008-05-281-13/+0
|
* egl: make sure EGL_VERSION_STRING query returns same version as eglInitialize()Brian Paul2008-05-281-5/+6
|