summaryrefslogtreecommitdiffstats
path: root/src/egl
Commit message (Collapse)AuthorAgeFilesLines
* enable standalone build of llvmpipe for ARMHEADreplicant-6.0-0001replicant-6.0Wolfgang Wiedmeyer2017-02-121-0/+15
| | | | | | also add profiling flags Signed-off-by: Wolfgang Wiedmeyer <wolfgit@wiedmeyer.de>
* Merge remote-tracking branch 'mesa/13.0' into nougat-x86Chih-Wei Huang2017-01-091-2/+2
|\
| * egl: Fix crashes in eglCreate*Surface()Chad Versace2016-12-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't dereference a null EGLDisplay. Fixes tests dEQP-EGL.functional.negative_api.create_pbuffer_surface dEQP-EGL.functional.negative_api.create_pixmap_surface Reviewed-by: Mark Janes <mark.a.janes@intel.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com> Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=99038 Cc: "13.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 5e97b8f5ce975dfb66cc46e6b4cc1e89eb8c1dc0)
* | Merge remote-tracking branch 'mesa/13.0' into nougat-x86Chih-Wei Huang2016-11-163-7/+4
|\ \ | |/
| * egl: make interop ABI visible againMarek Olšák2016-11-091-2/+2
| | | | | | | | | | | | | | | | | | | | This was broken when the GLAPI use was removed from mesa_glinterop.h. Cc: 12.0 13.0 <mesa-stable@lists.freedesktop.org> Acked-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit ee39d4456e7551b257343551d59e7c6a3388fdc0)
| * egl: use util/macros.hMarek Olšák2016-11-092-5/+2
| | | | | | | | | | | | | | | | | | | | I need the definition of PUBLIC. Cc: 12.0 13.0 <mesa-stable@lists.freedesktop.org> Acked-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit bf51b45313c7cc5ca792401f0cc29574aa9122cf)
* | egl/android: update swrast loader and extensions storageMauro Rossi2016-11-011-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | Changes are applied to swrast loader and extensions storage in the same way as per commit 6a8fe32 "egl/android: don't populate dri2_dpy->dri2_loader_extension" and commit f871946 "egl/dri2: rework dri2_egl_display::extensions storage" For simplification, primitives in droid_swrast_loader_extensions are listed in the same order as per commit 2dbe14a "egl/wayland: don't populate dri2_dpy->swrast_loader_extension"
* | android: avoid using fallback functionPaulo Sergio Travaglia2016-11-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | When a target different than EGL_NATIVE_BUFFER_ANDROID is used with eglCreateImageKHR on sw rendering, a fallback funcion is used. As this returns NULL, EGL_NO_IMAGE_KHR is returned, which crashes many apps Using a function implemented for EGL/DRI2 in this cases allows eglCreateImageKHR usage for other targets (like EGL_GL_TEXTURE_2D_KHR)
* | android: add a fast path for swrastWuZhen2016-11-011-8/+16
| | | | | | | | | | | | | | | | | | | | Observed increased antutu score on 1024x768, should see more with larger resolution NO_REF_TASK Tested: local run Change-Id: Ia05e0551a65ae7678561b167c1f5e75509ea4e84
* | android: support swrastWuZhen2016-11-013-12/+374
| | | | | | | | | | | | | | | | | | | | System boots up with gles_mesa/softpipe/llvmpipe. NO_REF_TASK Tested: local run Change-Id: I629ed0ca9fad12e32270eb8e8bfa9f7681b68474 Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
* | egl/android: fix missing gralloc_drm_get_gem_handle dependencyRob Herring2016-11-011-1/+3
|/ | | | | | | | | gralloc_drm_get_gem_handle has been removed from AOSP drm_gralloc. Remove the dependency on it and just access the struct gralloc_drm_handle_t directly. Maybe there's a better way than accessing the gralloc private data. Signed-off-by: Rob Herring <robh@kernel.org>
* egl: set preserved behavior for surface only if config supports itTapani Pälli2016-10-271-1/+5
| | | | | | | | | | | | | | | Otherwise we can end up with mismatching behavior between config and surface when client queries surface attributes. As example, configs for DRI3 do not support preserved behavior but here we were setting preserved behavior for pixmap and pbuffer. Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98326 Cc: "12.0 13.0" <mesa-stable@lists.freedesktop.org> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by: Chad Versace <chadversary@chromium.org> Tested-by: Mark Janes <mark.a.janes@intel.com> (cherry picked from commit 2035930966b05a7c4dd1f6559d66b5a3b41e01a5)
* egl/dri2: swap_buffers_with_damage falls back to swap_buffersEric Engestrom2016-10-271-1/+2
| | | | | | | | | | | | | | | | | | | | Since commit 0a606a400fe3 ("egl: add eglSwapBuffersWithDamageKHR"), Android has been broken because the function eglSwapBuffersWithDamageKHR is provided regardless of the extension being present. Also, the Android meta-EGL always advertises the extension regardless of the underlying EGL implementation. As there doesn't seem to be a simple way conditionally make the EGL function ptr NULL, just implement a brain dead version of eglSwapBuffersWithDamage{KHR,EXT}. Cc: 13.0 <mesa-stable@lists.freedesktop.org> CC: Rob Clark <robdclark@gmail.com> Suggested-by: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Eric Engestrom <eric@engestrom.ch> Reviewed-by: Rob Herring <robh@kernel.org> [Emil Velikov: copy the original commit message from Rob's patch] Reviewed-by: Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit 4fa799ae04c02b77176797c854f9d1b9b4290a2e)
* egl: add check that eglCreateContext gets a valid configTapani Pälli2016-10-271-1/+3
| | | | | | | | | | | | | | Fixes following dEQP test: dEQP-EGL.functional.negative_api.create_context v2: don't break EGL_KHR_no_config_context (Eric Engestrom) Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Cc: "12.0 13.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit 5876f3c85a61d73bb4863331bd641152a40a7b0c)
* Revert "egl/android: Set EGL_MAX_PBUFFER_WIDTH and EGL_MAX_PBUFFER_HEIGHT"Tapani Pälli2016-10-271-2/+0
| | | | | | | | | | | This reverts commit b1d636aa007c0c354a217024b4befe15cfb5149f, previous commit sets these values for all egl configs. Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Cc: "12.0 13.0" <mesa-stable@lists.freedesktop.org> Suggested-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> (cherry picked from commit 1ef787339774bc7f1cc9c1615722f944005e070c)
* egl/dri2: set max values for pbuffer width and heightTapani Pälli2016-10-271-0/+9
| | | | | | | | | | | | | | | | | | | While these max values were previously fixed for pbuffer creation, this change makes also eglGetConfigAttrib() return correct values. Fixes following dEQP tests: dEQP-EGL.functional.create_surface.pbuffer.rgb888_no_depth_no_stencil dEQP-EGL.functional.create_surface.pbuffer.rgb888_depth_stencil dEQP-EGL.functional.create_surface.pbuffer.rgba8888_no_depth_no_stencil dEQP-EGL.functional.create_surface.pbuffer.rgba8888_depth_stencil Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98326 Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Cc: "12.0 13.0" <mesa-stable@lists.freedesktop.org> (cherry picked from commit b91e1e38e87b372d409469dfe00ace76c8febd34)
* egl/wayland: add missing destroy_window callbackStencel, Joanna2016-10-241-2/+13
| | | | | | | | | | | | | The original patch by Joanna added the function pointer and callback yet things got only partially applied - the infra was added, but the implementation was missing. Cc: "12.0 13.0" <mesa-stable@lists.freedesktop.org> Fixes: 690ead4a135 ("egl/wayland-egl: Fix for segfault in dri2_wl_destroy_surface.") Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> (cherry picked from commit 2e0ab61e29c4b44d349ab433c899b691a9b12f68)
* egl: bring back the default glapi.so nameEric Engestrom2016-10-191-3/+1
| | | | | | | | | | | | | Earlier commit replaced the default platform specific libglapi.so name with an #error. This may have been overzealous since the name is the correct for the BSD platforms, at least. Reinstate the hunk - bringing back OpenBSD, et al. to a successful build state. Fixes: 7a9c92d071d ("egl/dri2: non-shared glapi cleanups") [Emil Velikov: format the patch from Eric, add commit message and tag.] Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
* egl/surfaceless: Fix segfault in eglSwapBuffersChad Versace2016-10-181-0/+12
| | | | | | | | | | | Since commit 63c5d5c6c46c8472ee7a8241a0f80f13d79cb8cd, the surfaceless platform has allowed creation of pbuffer surfaces. But the vtable entry for eglSwapBuffers has remained NULL. Discovered by running a little pbuffer test. Cc: Gurchetan Singh <gurchetansingh@chromium.org> Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
* egl: remove docs directory from EXTRA_DISTJonathan Gray2016-10-181-1/+0
| | | | | | | | | | | | The egl docs directory no longer exists as of 88b5c36fe1a1546bf633ee161a6715efc593acbd. Remove it from EXTRA_DIST to unbreak 'make dist' Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Tested-by: Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
* loader: remove loader_get_driver_for_fd() driver_typeEmil Velikov2016-10-185-5/+5
| | | | | | | | | | | | | | Reminiscent from the pre-loader days, were we had multiple instances of the loader logic in separate places and one could build a "GALLIUM_ONLY" version. Since that is no longer the case and the loaders (glx/egl/gbm) do not (and should not) require to know any classic/gallium specific we can drop the argument and the related code. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Axel Davy <axel.davy@ens.fr> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
* egl/android: fix error in droid_add_configs_for_visuals()Tapani Pälli2016-10-171-2/+0
| | | | | | | | | | This was some kind of leftover in commit acd35c8 and format_count array variable (declared in outer scope) should be used instead. Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Fixes: acd35c8758dc73240903 ("egl/android: tweak droid_add_configs_for_visuals()") Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
* egl/surfaceless: Fix comparison between pointer and integerChad Versace2016-10-161-1/+1
| | | | | | | | | Fixes GCC warning: drivers/dri2/platform_surfaceless.c:196:18: warning: comparison between pointer and integer Fixes: 4b8a55809eb ("egl/surfaceless: tweak surfaceless_add_configs_for_visuals()") Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
* egl/surfaceless: use correct index when accesing the visualEmil Velikov2016-10-161-1/+1
| | | | | | | | | | i is used for the driver_configs, while j is for the visuals. Fixes: 4b8a55809eb ("egl/surfaceless: tweak surfaceless_add_configs_for_visuals()") Reported-by: Chad Versace <chadversary@chromium.org> Tested-by: Chad Versace <chadversary@chromium.org> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl: Move old EGL_MESA_screen_surface specChad Versace2016-10-141-564/+0
| | | | | | | It was the lone file in src/egl/docs. Move it to where the other specs live, in $MESA_TOP/docs/specs. Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
* egl: Implement EGL_MESA_platform_surfacelessChad Versace2016-10-144-1/+70
| | | | Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
* egl: Don't advertise unsupported platform extensionsChad Versace2016-10-141-2/+8
| | | | | | | | | | | | | Mesa's set of supported platform extensions depends on the autoconf option --with-egl-platforms=foo,bar,baz. If --with-egl-platforms lacks foo, then eglGetPlatformDisplay(EGL_PLATFORM_FOO, ...) unconditonally fails. So, if --with-egl-platforms lacks foo, then remove EGL_VENDOR_platform_foo from the EGL client extension string. Cc: mesa-stable@lists.freedesktop.org Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
* Revert "egl/dri2: rework dri2_make_current code flow"Emil Velikov2016-10-141-36/+36
| | | | This reverts commit 675719817e7bf7c5b9da22c02252aca77a41338d.
* egl/drm: set eglError and provide an error message on failureEmil Velikov2016-10-141-6/+15
| | | | | | | v2: Remove gratuitous newline/semicolon (Eric) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/x11: attribute for dri2_add_config failureEmil Velikov2016-10-141-7/+14
| | | | | | | | | | | | | | ... in dri2_x11_add_configs_for_visuals(). Currently the latter does not consider that, thus in such cases it adds "empty" configs in the list. Properly account for things and as we do that we can reuse count, instead of calling _eglGetArraySize to determine if we've added any configs. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/wayland: introduce dri2_wl_add_configs_for_visuals() helperEmil Velikov2016-10-141-32/+51
| | | | | | | | | | | | | | | | | | Analogous to previous commits - with an extra bonus. Current code, apart from not attributing the lack of 'per visual' and overall configs also overwrites the newly added config. Namely if the dpy supports two or more of the supported formats (XRGB8888, ARGB8888 and RGB565) earlier configs will be overwritten and the the final one will be stored, since the we use the same index for all three in our dri2_add_config call. v2: Use correct comparison in loop conditional (Eric) Use valid C initializer (Gurchetan) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/surfaceless: tweak surfaceless_add_configs_for_visuals()Emil Velikov2016-10-141-7/+8
| | | | | | | | | | | Analogous to previous commit. v2: Use correct comparison in loop conditional (Eric) Use valid C initializer (Gurchetan) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/android: tweak droid_add_configs_for_visuals()Emil Velikov2016-10-141-19/+21
| | | | | | | | | | | | | | Iterate over the driver_configs first in order to cut down the number of getConfigAttrib() calls by a factor of 5. While we're here, also drop the sentinel of the visuals array. We already know its size so we can use that and save a few bytes. v2: Use correct comparison in loop conditional (Eric) Use valid C initializer (Gurchetan) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/drm: introduce drm_add_configs_for_visuals() helperEmil Velikov2016-10-141-28/+61
| | | | | | | | | | | | | | Factor out and rework the existing code so that it prints a debug message if we have zero configs for any visual. As a nice side effect we now provide a correct (sequential ID) when creating a config (via dri2_add_config). v2: Use correct comparison in loop conditional (Eric) Use valid C initializer (Gurchetan) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/surfaceless: print out a message on zero configs for given formatEmil Velikov2016-10-141-9/+18
| | | | | | | | | | | | Currently we print a debug message if the total configs is non-zero only to do the same (at an error level) as we return from the function. Rework the message to print if we're missing a config for the given format. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/dri2: set WL_bind_wayland_display in a consistent wayEmil Velikov2016-10-144-22/+29
| | | | | | | | | | | | | | Introduce a helper and use it throughout the platform code. This allows us to reduce the amount of ifdef(s) and (potentially) use kms_swrast_dri.so for !drm platforms (namely wayland and x11). Note: in the future as other platforms (android, surfaceless) support the extension they can reuse the helper. v2: Rebase, check for device_name. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/android: remove duplicate KHR_image_base setEmil Velikov2016-10-141-1/+0
| | | | | | | The core egl/dri2 already sets the extension bit _only_ when possible - which in Android's case is always. Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
* loader/dri3: constify the loader_dri3_vtableEmil Velikov2016-10-141-1/+1
| | | | | Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/dri2: micro optimise dri2_bind_extensions()Emil Velikov2016-10-141-0/+1
| | | | | | | Do not loop over all matches if we've already found one. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/dri2: annotate dri2_extension_match instances as const dataEmil Velikov2016-10-141-7/+7
| | | | | | | v2: Rebase. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/dri2: use dri2_bind_extensions to manage the optional extensionsEmil Velikov2016-10-141-18/+10
| | | | | | | v2: dri2_bind_extensions() now takes optional as an argument. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/dri2: add support for optional extensions in dri2_bind_extensions()Emil Velikov2016-10-141-9/+15
| | | | | | | | | | | Will allow us to reuse the function for optional extensions and fold a bit of code. v2: Make dri2_bind_extensions::optional flag an argument to dri2_bind_extensions (Kristian). Cc: Rob Clark <robdclark@gmail.com> Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
* egl/dri2: coding style cleanupEmil Velikov2016-10-142-153/+153
| | | | | | | | | Consistently indent with space rather than a mix of tab and spaces. v2: Keep the structs properly aligned (Eric). Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
* egl/x11: don't crash if dri2_dpy->conn is NULLEmil Velikov2016-10-141-9/+5
| | | | | | | | | | | The dri3 version of commits 60e9c35b3a0 and 6de9a03bed4. While using xcb_connect() guarantees that we always get a non NULL return value, XGetXCBConnection() does/can not. CC: <mesa-stable@lists.freedesktop.org> Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/dri2: rework dri2_egl_display::extensions storageEmil Velikov2016-10-146-41/+85
| | | | | | | | | | | Remove the error prone fixed size array. While we're here also rename to loader_extensions like in the GLX code. v2: Rebase. Keep image_loader_extension within the wayland_drm dri2_loader_extensions list. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/dri2: remove unused dri2_egl_display::{dri2,swrast}_loader_extensionEmil Velikov2016-10-141-2/+0
| | | | | Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/x11: don't populate dri2_dpy->swrast_loader_extensionEmil Velikov2016-10-141-8/+9
| | | | | | | | | | Analogous to earlier commits. Note: the actual version of the extension is 1, since it does not implement .putImage2. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/wayland: don't populate dri2_dpy->swrast_loader_extensionEmil Velikov2016-10-141-8/+10
| | | | | | | | Similar to the dri2 one - the extension stored in struct dri2_egl_display is unused. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/x11: don't populate dri2_dpy->dri2_loader_extensionEmil Velikov2016-10-141-16/+21
| | | | | | | | | | | | | | | Analogous to the earlier android and wayland patches. As we're here we can drop exposing the old version of the extension. Any dri loader/driver interface use lower bound checking thus exposing dri2 loader v3 to a v2 capable driver is perfectly normal. v2: Preserve compat with dri2_minor < 1. The driver does not know if there is a protocol to manage getBuffersWithFormat(). It's up-to the loader to expose the vfunc if there is one. (Kristian) Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>
* egl/wayland: don't populate dri2_dpy->dri2_loader_extensionEmil Velikov2016-10-141-7/+9
| | | | | | | Analogous to the earlier android patch. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric@engestrom.ch>