summaryrefslogtreecommitdiffstats
path: root/src/egl/main
Commit message (Collapse)AuthorAgeFilesLines
* Don't cast the return value of malloc/reallocMatt Turner2012-09-054-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch has been generated by the following Coccinelle semantic patch: // Don't cast the return value of malloc/realloc. // // Casting the return value of malloc/realloc only stands to hide // errors. @@ type T; expression E1, E2; @@ - (T) ( _mesa_align_calloc(E1, E2) | _mesa_align_malloc(E1, E2) | calloc(E1, E2) | malloc(E1) | realloc(E1, E2) )
* egl: fix invalid flag detection for EGL_KHR_create_contextMatt Turner2012-08-271-1/+1
| | | | | | | | We want to check whether there are bits set outside of the valid flags. Fixes piglit test egl-create-context-invalid-flag-gl Reviewed-by: Ian Romanick <[email protected]>
* egl: Allow OpenGL ES 3.0 as a versionIan Romanick2012-08-141-1/+7
| | | | | | | In the DRI2 back-end this will get the same API as GLES 2.0. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* egl: Implement front-end support for EGL_EXT_create_context_robustnessIan Romanick2012-08-143-0/+29
| | | | | Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* egl: Implement front-end support for EGL_KHR_create_contextIan Romanick2012-08-144-5/+217
| | | | | Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* egl: Rename ClientVersion to ClientMajorVersion, add ClientMinorVersionIan Romanick2012-08-142-5/+7
| | | | | Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]>
* egl: Replace KHR_surfaceless_* extensions with KHR_surfaceless_contextIan Romanick2012-08-064-29/+6
| | | | | | | | | | | | KHR extension name is reserved for Khronos ratified extensions, and there is no such thing as EGL_KHR_surfaceless_{gles1,gles2,opengl}. Replace these three extensions with EGL_KHR_surfaceless_context since that extension actually exists. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Kristian Høgsberg <[email protected]> Reviewed-by: Matt Turner <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* automake: convert libglapiJon TURNEY2012-07-131-1/+1
| | | | | | | | | | | | | | | | | | | * "configure substitutions are not allowed in _SOURCES variables" in automake, so remove the AC_SUBST'ed GLAPI_ASM_SOURCES and instead use some AM_CONDITIONALS to choose which asm sources are used * Change GLAPI_LIB to point to the .la file in other Makefile.am files, and make a link to the .a file for the convenience of other Makefiles which have not yet been converted to automake v2: - Use AM_CPPFLAGS for cleaner build output - EXTRA_SOURCES is not needed - Remove libglapi.a compatibility link on clean Signed-off-by: Jon TURNEY <[email protected]> Reviewed-by: Eric Anholt <[email protected]> Tested-by: Matt Turner <[email protected]>
* egl: Add EGL_WAYLAND_PLANE_WL attributeKristian Høgsberg2012-07-114-0/+30
| | | | | | | This lets us specify the plane to create the image for for multiplanar wl_buffers. Signed-off-by: Kristian Høgsberg <[email protected]>
* radeonsi: initial WIP SI codeTom Stellard2012-04-131-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds initial support for acceleration on SI chips. egltri is starting to work. The SI/R600 llvm backend is currently included in mesa but that may change in the future. The plan is to write a single gallium driver and use gallium to support X acceleration. This commit contains patches from: Tom Stellard <[email protected]> Michel Dänzer <[email protected]> Alex Deucher <[email protected]> Vadim Girlin <[email protected]> Signed-off-by: Alex Deucher <[email protected]> The following commits were squashed in: ====================================================================== radeonsi: Remove unused winsys pointer This was removed from r600g in commit: commit 96d882939d612fcc8332f107befec470ed4359de Author: Marek Olšák <[email protected]> Date: Fri Feb 17 01:49:49 2012 +0100 gallium: remove unused winsys pointers in pipe_screen and pipe_context A winsys is already a private object of a driver. ====================================================================== radeonsi: Copy color clamping CAPs from r600 Not sure if the values of these CAPS are correct for radeonsi, but the same changed were made to r600g in commit: commit bc1c8369384b5e16547c5bf9728aa78f8dfd66cc Author: Marek Olšák <[email protected]> Date: Mon Jan 23 03:11:17 2012 +0100 st/mesa: do vertex and fragment color clamping in shaders For ARB_color_buffer_float. Most hardware can't do it and st/mesa is the perfect place for a fallback. The exceptions are: - r500 (vertex clamp only) - nv50 (both) - nvc0 (both) - softpipe (both) We also have to take into account that r300 can do CLAMPED vertex colors only, while r600 can do UNCLAMPED vertex colors only. The difference can be expressed with the two new CAPs. ====================================================================== radeonsi: Remove PIPE_CAP_OUTPUT_READ This CAP was dropped in commit: commit 04e324008759282728a95a1394bac2c4c2a1a3f9 Author: Marek Olšák <[email protected]> Date: Thu Feb 23 23:44:36 2012 +0100 gallium: remove PIPE_SHADER_CAP_OUTPUT_READ r600g is the only driver which has made use of it. The reason the CAP was added was to fix some piglit tests when the GLSL pass lower_output_reads didn't exist. However, not removing output reads breaks the fallback for glClampColorARB, which assumes outputs are not readable. The fix would be non-trivial and my personal preference is to remove the CAP, considering that reading outputs is uncommon and that we can now use lower_output_reads to fix the issue that the CAP was supposed to workaround in the first place. ====================================================================== radeonsi: Add missing parameters to rws->buffer_get_tiling() call This was changed in commit: commit c0c979eebc076b95cc8d18a013ce2968fe6311ad Author: Jerome Glisse <[email protected]> Date: Mon Jan 30 17:22:13 2012 -0500 r600g: add support for common surface allocator for tiling v13 Tiled surface have all kind of alignment constraint that needs to be met. Instead of having all this code duplicated btw ddx and mesa use common code in libdrm_radeon this also ensure that both ddx and mesa compute those alignment in the same way. v2 fix evergreen v3 fix compressed texture and workaround cube texture issue by disabling 2D array mode for cubemap (need to check if r7xx and newer are also affected by the issue) v4 fix texture array v5 fix evergreen and newer, split surface values computation from mipmap tree generation so that we can get them directly from the ddx v6 final fix to evergreen tile split value v7 fix mipmap offset to avoid to use random value, use color view depth view to address different layer as hardware is doing some magic rotation depending on the layer v8 fix COLOR_VIEW on r6xx for linear array mode, use COLOR_VIEW on evergreen, align bytes per pixel to a multiple of a dword v9 fix handling of stencil on evergreen, half fix for compressed texture v10 fix evergreen compressed texture proper support for stencil tile split. Fix stencil issue when array mode was clear by the kernel, always program stencil bo. On evergreen depth buffer bo need to be big enough to hold depth buffer + stencil buffer as even with stencil disabled things get written there. v11 rebase on top of mesa, fix pitch issue with 1d surface on evergreen, old ddx overestimate those. Fix linear case when pitch*height < 64. Fix r300g. v12 Fix linear case when pitch*height < 64 for old path, adapt to libdrm API change v13 add libdrm check Signed-off-by: Jerome Glisse <[email protected]> ====================================================================== radeonsi: Remove PIPE_TRANSFER_MAP_PERMANENTLY This was removed in commit: commit 62f44f670bb0162e89fd4786af877f8da9ff607c Author: Marek Olšák <[email protected]> Date: Mon Mar 5 13:45:00 2012 +0100 Revert "gallium: add flag PIPE_TRANSFER_MAP_PERMANENTLY" This reverts commit 0950086376b1c8b7fb89eda81ed7f2f06dee58bc. It was decided to refactor the transfer API instead of adding workarounds to address the performance issues. ====================================================================== radeonsi: Handle PIPE_VIDEO_CAP_PREFERED_FORMAT. Reintroduced in commit 9d9afcb5bac2931d4b8e6d1aa571e941c5110c90. ====================================================================== radeonsi: nuke the fallback for vertex and fragment color clamping Ported from r600g commit c2b800cf38b299c1ab1c53dc0e4ea00c7acef853. ====================================================================== radeonsi: don't expose transform_feedback2 without kernel support Ported from r600g commit 15146fd1bcbb08e44a1cbb984440ee1a5de63d48. ====================================================================== radeonsi: Handle PIPE_CAP_GLSL_FEATURE_LEVEL. Ported from r600g part of commit 171be755223d99f8cc5cc1bdaf8bd7b4caa04b4f. ====================================================================== radeonsi: set minimum point size to 1.0 for non-sprite non-aa points. Ported from r600g commit f183cc9ce3ad1d043bdf8b38fd519e8f437714fc. ====================================================================== radeonsi: rework and consolidate stencilref state setting. Ported from r600g commit a2361946e782b57f0c63587841ca41c0ea707070. ====================================================================== radeonsi: cleanup setting DB_SHADER_CONTROL. Ported from r600g commit 3d061caaed13b646ff40754f8ebe73f3d4983c5b. ====================================================================== radeonsi: Get rid of register masks. Ported from r600g commits 3d061caaed13b646ff40754f8ebe73f3d4983c5b..9344ab382a1765c1a7c2560e771485edf4954fe2. ====================================================================== radeonsi: get rid of r600_context_reg. Ported from r600g commits 9344ab382a1765c1a7c2560e771485edf4954fe2..bed20f02a771f43e1c5092254705701c228cfa7f. ====================================================================== radeonsi: Fix regression from 'Get rid of register masks'. ====================================================================== radeonsi: optimize r600_resource_va. Ported from r600g commit 669d8766ff3403938794eb80d7769347b6e52174. ====================================================================== radeonsi: remove u8,u16,u32,u64 types. Ported from r600g commit 78293b99b23268e6698f1267aaf40647c17d95a5. ====================================================================== radeonsi: merge r600_context with r600_pipe_context. Ported from r600g commit e4340c1908a6a3b09e1a15d5195f6da7d00494d0. ====================================================================== radeonsi: Miscellaneous context cleanups. Ported from r600g commits e4340c1908a6a3b09e1a15d5195f6da7d00494d0..621e0db71c5ddcb379171064a4f720c9cf01e888. ====================================================================== radeonsi: add a new simple API for state emission. Ported from r600g commits 621e0db71c5ddcb379171064a4f720c9cf01e888..f661405637bba32c2cfbeecf6e2e56e414e9521e. ====================================================================== radeonsi: Also remove sbu_flags member of struct r600_reg. Requires using sid.h instead of r600d.h for the new CP_COHER_CNTL definitions, so some code needs to be disabled for now. ====================================================================== radeonsi: Miscellaneous simplifications. Ported from r600g commits 38bf2763482b4f1b6d95cd51aecec75601d8b90f and b0337b679ad4c2feae59215104cfa60b58a619d5. ====================================================================== radeonsi: Handle PIPE_CAP_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION. Ported from commit 8b4f7b0672d663273310fffa9490ad996f5b914a. ====================================================================== radeonsi: Use a fake reloc to sleep for fences. Ported from r600g commit 8cd03b933cf868ff867e2db4a0937005a02fd0e4. ====================================================================== radeonsi: adapt to get_query_result interface change. Ported from r600g commit 4445e170bee23a3607ece0e010adef7058ac6a11.
* egl: fix uninitialized valuesDylan Noblesmith2012-04-131-1/+1
| | | | | | | | | | | | | | Noticed by clang: eglimage.c:48:28: warning: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to dereference it? [-Wsizeof-pointer-memaccess] memset(attrs, 0, sizeof(attrs)); ~~~~~ ^~~~~ NOTE: This is a candidate for the 8.0 branch. Reviewed-by: Brian Paul <[email protected]>
* Add Makefile.in to toplevel .gitignoreKenneth Graunke2012-03-201-1/+0
| | | | | | | To avoid redundancies, this patch also removes Makefile.in from the other .gitignore files. Acked-by: Eric Anholt <[email protected]>
* Add .deps/, .libs/, and *.la to toplevel .gitignorePaul Berry2012-03-201-3/+0
| | | | | | | To avoid redundancies, this patch also removes .deps, .libs, and *.la from .gitignore files in subdirectories. Reviewed-by: Kenneth Graunke <[email protected]>
* shared-glapi: Convert to automakeKristian Høgsberg2012-03-191-1/+0
| | | | | | | | | | This fixes a build problem where EGL links to libgbm.la, which encodes a relative path to it's libglapi.so dependency. The relative path breaks when the linker tries to resolve it from src/egl/main instead of src/gbm. Typically we silently fall back to the system libglapi.so, which is wrong and breaks when there isn't one. Morale of the story: don't mix mklib and libtool.
* egl: Use -no-undefined libtool flagJon TURNEY2012-03-051-1/+1
| | | | | | | | | | | | | "Use -no-undefined to assure libtool that the library has no unresolved symbols at link time, so that libtool will build a shared library on platforms require that all symbols are resolved when the library is linked." If I had a dollar for every time I wrote this patch, I'd have about $10 :-) Signed-off-by: Jon TURNEY <[email protected]> Acked-by: Kenneth Graunke <[email protected]>
* egl: Also put a symlink from libEGL.so in lib/ for now.Eric Anholt2012-03-021-0/+1
| | | | | | This fixes the egl_gallium.so driver build when no system libEGL.so is present, since it's relying on the lib/ to build against until it gets converted to automake.
* egl: Don't include strings.h on Windows.José Fonseca2012-03-012-1/+1
| | | | | strings.h is needed for the declaration of strcasecmp(), but only on non-Windows platforms.
* egl/drivers: Convert to automake.Eric Anholt2012-02-291-2/+2
| | | | Reviewed-by: Kenneth Graunke <[email protected]>
* egl/main: Convert to automake.Eric Anholt2012-02-295-192/+152
| | | | | | | | The drivers/ walk-through-subdirs makefile is converted as well so I didn't need to keep EGL_DRIVERS_DIRS along with the per-driver HAVE_EGL_DRIVER_WHATEVER. Reviewed-by: Kenneth Graunke <[email protected]>
* automake: src/egl/waylandBenjamin Franzke2012-01-261-1/+1
| | | | | | | So we can use the wayland scanner makro, which is way better than our previous runtime-pkgconfig hack. Reviewed-by: Matt Turner <[email protected]>
* gbm: install libgbm.so into libMatt Turner2012-01-241-1/+0
| | | | This partially reverts commit 90e256853418eaaba3717f930cc6a331e4099056.
* egl,gbm_gallium: Fix linkage against gbm from automakeBenjamin Franzke2012-01-241-0/+1
| | | | | | Add src/gbm/.libs to ldflags. The gbm lib is src/gbm/.libs/ instead of lib/ as of commit 06ad64ad29e7aa9e2d001f6bd1f8c1c1f77050b8.
* egl: add EGL_NV_post_sub_bufferFredrik Höglund2011-12-206-0/+48
| | | | | | | | | v2: Handle EGL_POST_SUB_BUFFER_SUPPORTED_NV in _eglParseSurfaceAttribList() Signed-off-by: Fredrik Höglund <[email protected]> [olv: remove #ifdef checks]
* egl: KHR_reusable_sync entrypoints are missing from eglGetProcAddressChia-I Wu2011-12-201-0/+5
|
* egl: remove #ifdef's for official extensionsChia-I Wu2011-12-207-70/+0
| | | | | | | There is no point in having them when we distribute eglext.h. As for unofficial extensions, there is a chance that we might remove some of them evetually. Keeping the #ifdef's for now should make that easier.
* egl: remove EGL_ANDROID_swap_rectangleChia-I Wu2011-12-204-35/+0
| | | | | We never support this unofficial extension, and it has been removed from Android recently. There is no point in keeping it.
* android: bring in i915_dri and i965_dri automaticallyChia-I Wu2011-11-261-0/+4
| | | | | Add i915_dri and i965_dri to libGLES_mesa's LOCAL_REQUIRED_MODULES when enabled.
* android: move libGLES_mesa build rules to src/egl/main/.Chia-I Wu2011-11-261-3/+83
| | | | Keep the top-level Android.mk away from building modules.
* egl: silence unused var warningBrian Paul2011-11-101-0/+2
|
* egl: add null platformChia-I Wu2011-09-203-0/+8
| | | | | | | The null platform has no window or pixmap surface (but pbuffer surface). And the only valid display is EGL_DEFAULT_DISPLAY. It is useful for offscreen rendering. It works everywhere becase no window system is required.
* Define INLINE macro in terms of inline.José Fonseca2011-09-081-19/+22
|
* egl: Use gbm/wayland flags regardless of egl_dri2Benjamin Franzke2011-08-291-10/+10
| | | | | | Since they are needed for display autodetection. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40443
* android: add support for egl_dri2Chia-I Wu2011-08-281-0/+3
| | | | | | | Add rules to build egl_dri2 and make it a built-in EGL driver of libGLES_mesa. Reviewed-by: Chad Versace <[email protected]>
* android: build core EGLChia-I Wu2011-08-211-0/+64
| | | | | | This builds the static library libmesa_egl from core EGL. Reviewed-by: Chad Versace <[email protected]>
* egl: add Android-specific extensionsChia-I Wu2011-08-214-0/+39
| | | | | | | | Add EGL_ANDROID_image_native_buffer and EGL_ANDROID_swap_rectangle. There is no spec for them though. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* egl: add _EGL_PLATFORM_ANDROIDChia-I Wu2011-08-212-1/+3
| | | | | | | This is Android Gingerbread platform. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Chad Versace <[email protected]>
* egl: Add include paths for platform autodetectionBenjamin Franzke2011-08-161-0/+2
| | | | | | Needed since commit 85fe9484. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40145
* egl: Log (debug) native platform typeBenjamin Franzke2011-08-151-12/+25
| | | | Reviewed-by: Kristian Høgsberg <[email protected]>
* egl: Native Display autodetectionBenjamin Franzke2011-08-154-8/+115
| | | | | | | | | | | | | | | | | | | | | | | | EGL doesnt define howto manage different native platforms. So mesa has a builtime configurable default platform, whith non-standard envvar (EGL_PLATFORM) overwrites. This caused unneeded bugreports, when EGL_PLATFORM was forgotten. Detection is grouped into basic types of NativeDisplays (which itself needs to be detected). The final decision is based on characteristcs of these basic types: File Desciptor based platforms (fbdev): - fstat(2) to check for being a fd that belongs to a character device - check kernel subsystem (todo) Pointer to structuctures (x11, wayland, drm/gbm): - mincore(2) to check whether its valid pointer to some memory. - magic elements (e.g. pointers to exported symbols): o wayland display stores interface type pointer (first elm.) o gbm stores pointer to its constructor (first elm.) o x11 as a fallback (FIXME?) Reviewed-by: Kristian Høgsberg <[email protected]>
* egl: EGL_MATCH_NATIVE_NATIVE_PIXMAP cannot be EGL_DONT_CAREChia-I Wu2011-07-291-2/+3
|
* egl: make pixmaps and pbuffers EGL_BUFFER_PRESERVEDChia-I Wu2011-07-291-1/+3
| | | | eglSwapBuffers is no-op to these surface types anyway.
* egl: add copyright noticesChia-I Wu2011-07-0237-37/+1040
| | | | | The list of copyright holders could be incomplete. Please update directly or notify me if your name is missing.
* egl: fix a compiler warningChia-I Wu2011-07-011-0/+1
|
* egl: fix EGL_MATCH_NATIVE_PIXMAPChia-I Wu2011-06-251-2/+10
| | | | | EGL_MATCH_NATIVE_PIXMAP is valid for eglChooseConfig, but invalid for eglGetConfigAttrib.
* egl: make implementing eglChooseConfig easierChia-I Wu2011-06-252-27/+57
| | | | | Add a new helper function, _eglFilterConfigArray, for drivers and hide _eglSortConfigs.
* egl_dri2: Hookup gbm as drm platformBenjamin Franzke2011-06-231-0/+4
|
* wayland: Fix link order for libwayland-drm.aKristian Høgsberg2011-05-181-4/+4
|
* egl: Compile wayland-drm.a into libEGL independent of egl_dri2Benjamin Franzke2011-05-161-3/+4
| | | | Fixes egl_gallium when egl_dri2 is not enabled.
* egl_dri2: Make it possible to not compile in the X11 platformKristian Høgsberg2011-05-131-1/+5
|
* egl: Fix int <-> ptr casts.José Fonseca2011-05-121-1/+1
| | | | Based on zhigang gong <[email protected]>'s patch.