summaryrefslogtreecommitdiffstats
path: root/src/egl/wayland/wayland-drm
Commit message (Collapse)AuthorAgeFilesLines
* wayland-drm: do not distribute generated sourcesJuan A. Suarez Romero2018-03-231-6/+16
| | | | | | | | | Instead we will re-generate them again on building. v2: get rid of BUILT_SOURCES (Daniel, Emil) v3: keep BUILT_SOURCES for egl/Makefile.am (Emil) Reviewed-by: Emil Velikov <[email protected]>
* wayland-drm: autotools: do not redirect stdin/stdout for wayland-scannerEmil Velikov2018-03-121-3/+3
| | | | | | | | The tool accepts the input and output files as arguments. There's no need for the redirection. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Dylan Baker <[email protected]>
* meson: Move Wayland dmabuf to wayland-drmDaniel Stone2018-02-161-0/+22
| | | | | | | | | | | As the comment notes: linux-dmabuf has nothing to do with wayland-drm, but we need a single place to build these files we can use from both EGL and Vulkan, which is guaranteed to be included before both EGL and Vulkan WSI. Signed-off-by: Daniel Stone <[email protected]> Reviewed-by: Dylan Baker <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* autotools: include meson build files in tarballDylan Baker2018-01-191-1/+1
| | | | | | | | | | | | This adds the meson.build, meson_options.txt, and a few scripts that are used exclusively by the meson build. v2: - Remove accidentally included changes needed to test make dist with LLVM > 3.9 Signed-off-by: Dylan Baker <[email protected]> Acked-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* egl/wayland: Add Wayland drm support for RGB10 winsys buffers.Mario Kleiner2018-01-031-0/+6
| | | | | | | | | Successfully tested under Weston 3.0. Photometer confirms 10 rgb bits from rendering to display. Signed-off-by: Mario Kleiner <[email protected]> Reviewed-by: Marek Olšák <[email protected]> Signed-off-by: Marek Olšák <[email protected]>
* wayland-drm: static inline wayland_drm_buffer_getEmil Velikov2017-11-082-38/+36
| | | | | | | | | | | | | | | | | | | | The function is effectively a direct function call into libwayland-server.so. Thus GBM no longer depends on the wayland-drm static library, making the build more straight forward. And the resulting binary is a bit smaller. Note: we need to move struct wayland_drm_callbacks further up, otherwise we'll get an error since the type is incomplete. v2: Rebase, beef-up commit message, update meson, move struct wayland_drm_callbacks. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Daniel Stone <[email protected]> (v1) Reviewed-by: Eric Engestrom <[email protected]> # meson bit only Acked-by: Eric Engestrom <[email protected]> # for the rest Reviewed-by: Dylan Baker <[email protected]> # meson
* meson: Set c visibility args for wayland-drmDylan Baker2017-11-021-0/+1
| | | | | | | Because otherwise gbm will expose wayland symbols that it shouldn't. Signed-off-by: Dylan Baker <[email protected]> Reviewed-and-Tested-by: Eric Engestrom <[email protected]>
* gbm: Don't traverse backwards for includesDylan Baker2017-11-021-0/+2
| | | | | | | | | | | | | | This is just a bad idea and should be avoided. Instead, make the #include flat and fix the build systems to pass the proper -I flags v2: - add an inc_wayland_drm instead passing a path to include_directories (Emil) - update commit message (Emil) Signed-off-by: Dylan Baker <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Daniel Stone <[email protected]> (v1) Reviewed-by: Eric Engestrom <[email protected]> (v1)
* automake: Remove unused include pathDylan Baker2017-11-021-2/+1
| | | | | | | Signed-off-by: Dylan Baker <[email protected]> Reviewed-by: Emil Velikov <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
* meson: build libEGLDylan Baker2017-10-201-0/+14
| | | | | | | | | | | | | | | | | | This is based heavily on Daniel Stone's work for the same, rebased on master and with a number of TODO's fixed. This does not implement glvnd (which is coming in a later patch) Meson builds egl slightly differently than autotools, namely it doesn't build an intermediate shared library. It doesn't do this because meson doesn't have problems with the name of the library being dynamically generated, so the glvnd and non-glvnd code can follow the same path. v2: - Don't reuse variable (Eric E.) Signed-off-by: Dylan Baker <[email protected]> Tested-by: Eric Engestrom <[email protected]> Reviewed-by: Daniel Stone <[email protected]>
* meson: move wayland_drm_protocol generation to wayland-drmDylan Baker2017-10-201-1/+13
| | | | | | | | | | | These files are needed by both vulkan wayland-wsi and by egl wayland-wsi, since the XML file is in src/egl/wayland/wayland-drm and we can include this directory in such a way that it will be loaded before egl and vulkan this allows us to avoid multiple calls to the same generator. Signed-off-by: Dylan Baker <[email protected]> Reviewed-and-Tested-by: Eric Engestrom <[email protected]>
* wayland-drm: constify the callbacks struct, take 2Emil Velikov2017-10-132-2/+2
| | | | | | | | | | | Now that wayland-drm (correctly) keeps a local copy of the callbacks, this should not longer cause explosions. After all the symbol is a local, constant data. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Tested-by: Derek Foreman <[email protected]>
* wayland-drm: use a copy of the wayland_drm_callbacks structEmil Velikov2017-10-131-5/+5
| | | | | | | | | | | The callbacks may be called even when they are no longer valid. Say, the user is dlclose(ing) libEGL while the buffers are being destroyed. Cc: [email protected] Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Daniel Stone <[email protected]> Tested-by: Derek Foreman <[email protected]>
* meson: Add build Intel "anv" vulkan driverDylan Baker2017-09-271-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows building and installing the Intel "anv" Vulkan driver using meson and ninja, the driver has been tested against the CTS and has seems to pass the same series of tests (they both segfault when the CTS tries to run wayland wsi tests). There are still a mess of TODO, XXX, and FIXME comments in here. Those are mostly for meson bugs I'm trying to fix, or for additional things to implement for other drivers/features. I have configured all intermediate libraries and optional tools to not build by default, meaning they will only be built if they're pulled in as a dependency of a target that will actually be installed) this allows us to avoid massive if chains, while ensuring that only the bits that need to be built are. v2: - enable anv, x11, and wayland by default - add configure option to disable valgrind v3: - fix typo in meson_options (Nicholas) v4: - Remove dead code (Eric) - Remove change to generator that was from v0 (Eric) - replace if chain with loop (Eric) - Fix typos (Eric) - define HAVE_DLOPEN for both libdl and builtin dl cases (Eric) v5: - rebase on util string buffer implementation Signed-off-by: Dylan Baker <[email protected]> Reviewed-by: Eric Anholt <[email protected]> (v4)
* Revert "wayland-drm: constify the callbacks struct"Daniel Stone2017-09-262-3/+3
| | | | | | | | | | | | | | | The wayland-drm callback struct is referenced, rather than duplicated, inside wayland-drm. Constifying this struct involved moving it on to the stack; as a result, starting any EGL client on Wayland called into random stack memory, and killed the compositor. This reverts commit 1d0be5b3fe548ee33d4520092f583c76d42510a6 and 39d539e321c6c97433a15660c9d9a20ad8657ff0. Signed-off-by: Daniel Stone <[email protected]> Cc: Emil Velikov <[email protected]> Cc: Krzysztof Sobiecki <[email protected]> Fixes: 1d0be5b3fe54 ("wayland-drm: constify the callbacks struct")
* egl: fix build fallouts from 1d0be5b3fe5Krzysztof Sobiecki2017-09-191-1/+1
| | | | | Fixes: 1d0be5b3fe5 ("wayland-drm: constify the callbacks struct") Reviewed-by: Emil Velikov <[email protected]>
* configure.ac: split the wayland client/server confusionEmil Velikov2017-09-191-1/+1
| | | | | | | | | | | | | | | | | | | | At the moment wayland-clients, such as the Vulkan drivers were over-linking against libwayland-server.so. That went unnoticed, since both client and server code uses the wl*interface symbols, which are present in both libwayland-client.so and libwayland-server.so. I've looked at correcting that, although that's orthogonal to this fix. Note: wayland-egl does _not_ depend on wayland-client, although it does need wayland-egl.h. There's no distinct package that provides it (I have a WIP on the topic) so current solution will do for now. v2: Rebase with the "...inline wayland_drm_buffer_get" patch removed. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Daniel Stone <[email protected]>
* wayland-drm: constify the callbacks structEmil Velikov2017-09-191-2/+2
| | | | | Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Daniel Stone <[email protected]>
* wayland-drm: add wl_display/wl_resource forward declarationsEmil Velikov2017-09-191-0/+2
| | | | | | | ... making the header self-contained. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Daniel Stone <[email protected]>
* wayland-drm: avoid deprecated use of struct wl_resourceMicah Fedke2017-09-191-3/+3
| | | | | | | | | | | | | | | | | | | Wayland v1.2 with commit 1488c96a5db ("Add accessor functions for wl_resource and deprecate wl_client_add_resource") paves the way towards making wl_resource opaque. Namely, new helpers were introduced and the struct was annotated as deprecated. Since wayland headers are normally installed in /usr/include, which is in -isystem, GCC did not generate warnings as documented in the manual. "Warnings from system headers are normally suppressed..." Signed-off-by: Micah Fedke <[email protected]> Reviewed-by: Pekka Paalanen <[email protected]> [Emil Velikov: add commit message] Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Daniel Stone <[email protected]>
* wayland-drm: remove unused wayland_drm_buffer_get_{format,buffer}Emil Velikov2017-09-192-18/+0
| | | | | | | | | | | Unused anywhere throughout the codebase. We could start using it, although that contradicts to an evil plan* of mine. * Only wayland servers will make use of the static library, providing actual distinction between server vs client. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Daniel Stone <[email protected]>
* wayland-drm: remove hardcoded enum wl_drm_formatEmil Velikov2017-09-191-64/+0
| | | | | | | The exact same copy is generated in the client/server protocol header. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Daniel Stone <[email protected]>
* gbm: Axe buffer import format conversion tableDaniel Stone2017-07-181-1/+2
| | | | | | | | | | | | | Wayland buffers coming from wl_drm use the WL_DRM_FORMAT_* enums, which are identical to GBM_FORMAT_*. Similarly, FD imports do not need to convert between GBM and DRI FourCC, since they are (almost) completely compatible. This widens the formats accepted by gbm_bo_import() when importing wl_buffers; previously, only XRGB8888, ARGB8888, RGB565 and YUYV were supported. Reviewed-by: Emil Velikov <[email protected]>
* wayland: move .gitignore where applicableEmil Velikov2017-03-131-0/+3
| | | | | | | | Strictly speaking things work as-is, but let's move the file alongside the artefacts it references. Analogous to all other places in mesa. Signed-off-by: Emil Velikov <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]>
* wayland-drm: add missing NULL checkFrank Binns2016-09-011-0/+2
| | | | | | | | Although malloc is unlikely to fail check its return value nevertheless. Signed-off-by: Frank Binns <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
* mesa: Fix warning about static being in the wrong placeIan Romanick2015-09-021-1/+1
| | | | | | | | | | | | | | | | | | | | Because the compiler already has enough things to complain about. grep -rl 'const static' src/ | while read f do sed --in-place -e 's/const static/static const/g' $f done brw_eu_emit.c: In function 'brw_reg_type_to_hw_type': brw_eu_emit.c:98:7: warning: 'static' is not at beginning of declaration [-Wold-style-declaration] const static int imm_hw_types[] = { ^ brw_eu_emit.c:120:7: warning: 'static' is not at beginning of declaration [-Wold-style-declaration] const static int hw_types[] = { ^ Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Ilia Mirkin <[email protected]>
* wayland: Move version 2 request to end of interface specificationKristian Høgsberg2014-05-121-16/+19
| | | | | | | | | | We're moving towards requiring interface additions to be appended to the end of the interface block. No functional change, opcodes are assigned as before, but version 2 additions are now grouped together, which prevents a scanner warning. Cc: "10.2" <[email protected]> Signed-off-by: Kristian Høgsberg <[email protected]>
* egl/build: Include headers and XML in distribution.Matt Turner2014-04-071-1/+6
| | | | Acked-by: Emil Velikov <[email protected]>
* wayland: silence unused var warningFabio Pedretti2013-10-301-2/+0
| | | | Reviewed-by: Chad Versace <[email protected]>
* wayland: Don't leak wl_drm global when unbinding displayAnder Conselvan de Oliveira2013-10-221-2/+5
|
* egl-wayland: Add support for RGB565 pixel format for Wayland clientsSingh, Satyeshwar2013-10-151-0/+3
| | | | | | | With this patch Wayland clients can now ask EGL for RGB 565 format buffers and attach them to a Wayland compositor. Signed-off-by: Kristian Høgsberg <[email protected]>
* wayland: Don't rely on static variable for identifying wl_drm buffersKristian Høgsberg2013-10-112-10/+12
| | | | | | | | | | | | Now that libEGL has been fixed to not leak all kinds of symbols, gbm links to its own copy of the libwayland-drm.a helper library. That means we can't rely on comparing the addresses of a static vtable symbol in that library to determine if a wl_buffer is a wl_drm_buffer. Instead, we move the vtable into the wl_drm struct and use that for comparing. https://bugs.freedesktop.org/show_bug.cgi?id=69437 Cc: 9.2 <[email protected]>
* egl: Do not export private symbolsChad Versace2013-08-081-0/+1
| | | | | | | | | | | | | | | | | | | | | | libEGL was incorrectly exporting *all* symbols, public and private. This patch adds -fvisibility=hidden to libEGL's linker flags to ensure that only symbols annotated with __attribute__((visibility("default"))) get exported. Sanity-checked with libEGL's builtin DRI2 driver and the i965 DRI driver by running Piglit on X/EGL and by running weston-gears on Weston as an X client. Sanity-checked with libEGL's Gallium driver (which is not built-in) and the swrast Gallium driver by running es2gears_x11. Kristian reviewed the symbol diff in `nm libEGL.so`. CC: "9.2" <[email protected]> CC: Ian Romanick <[email protected]> Acked-by: Kristian Høgsberg <[email protected]> Reviewed-by: Jakob Bornecrantz <[email protected]> Signed-off-by: Chad Versace <[email protected]>
* egl: Update to Wayland 1.2 server APIAnder Conselvan de Oliveira2013-08-072-33/+46
| | | | | | | | | | Since Wayland 1.2, struct wl_buffer and a few functions are deprecated. References to wl_buffer are replaced with wl_resource and some getter functions and calls to deprecated functions are replaced with the proper new API. The latter changes are related to resource versioning. Signed-off-by: Ander Conselvan de Oliveira <[email protected]>
* wayland: Add prime fd passing as a buffer sharing mechanismKristian Høgsberg2013-03-183-9/+67
| | | | Reviewed-by: Ander Conselvan de Oliveira <[email protected]>
* wayland: Remove 0.85 compatibility #ifdefsKristian Høgsberg2012-10-171-26/+0
|
* wayland: Include wl_drm format enum in wayland-drm.hKristian Høgsberg2012-07-171-1/+64
| | | | | This gets referenced before we get to generate the header files, so just include the enum that we need and don't include the generated header.
* gbm: Add new gbm_bo_import entry pointKristian Høgsberg2012-07-161-3/+0
| | | | | This generalizes and replaces gbm_bo_create_for_egl_image. gbm_bo_import will create a gbm_bo from either an EGLImage or a struct wl_buffer.
* wayland: Stop trying to use make rules from aclocal, just copy and pasteKristian Høgsberg2012-07-132-1/+8
| | | | | | | | | Defeated by autotool, copy and paste to the rescue. https://bugs.freedesktop.org/show_bug.cgi?id=51997 https://bugs.freedesktop.org/show_bug.cgi?id=51531 Signed-off-by: Kristian Høgsberg <[email protected]>
* egl: Add EGL_WAYLAND_PLANE_WL attributeKristian Høgsberg2012-07-111-1/+1
| | | | | | | This lets us specify the plane to create the image for for multiplanar wl_buffers. Signed-off-by: Kristian Høgsberg <[email protected]>
* wayland-drm: Add protocol to create planar buffersKristian Høgsberg2012-07-113-20/+90
|
* wayland-drm: Pass struct wl_drm_buffer to the driverKristian Høgsberg2012-07-112-19/+18
| | | | | We're going to extend this to support multi-plane buffers, so pass this to the driver so it can access the details.
* wayland-drm: Implement wl_buffer.damage in old versions of WaylandNeil Roberts2012-04-121-0/+26
| | | | | | | | | | | | | | | | | | Commit 272bc48976 removed the damage implementation for the wl_buffer_interface because that has been removed from git master of Wayland. However this breaks building with the 0.85 branch of Wayland because it would end up initialising the struct incorrectly. For the time being it's quite convenient for some compositors to track the 0.85 branch of Wayland because the protocol is stable but they will also want to track the master branch of Mesa so that they can use the gbm surface changes. This patch adds a compile-time check for the version of Wayland so that it can work with either Wayland master or the 0.85 branch. krh: Edited to also account for API changes in 6802eaa68, which removes the timestamp argument from wl_resource_destroy().
* wayland-drm: remove wl_buffer.damagePekka Paalanen2012-04-101-7/+0
| | | | | | | | | | | | | | | | | | | | | | | This is a related fix for the Wayland change: commit 83685c506e76212ae4e5cb722205d98d3b0603b9 Author: Kristian Høgsberg <[email protected]> Date: Mon Mar 26 16:33:24 2012 -0400 Remove wl_buffer.damage and simplify shm implementation Apparently, this should also fix a memory leak. When wl_buffer.damage was removed from Wayland and Mesa was not fixed, wl_buffer.destroy ended up in the (empty) damage function instead of calling wl_resource_destroy(). Spotted during build as: CC wayland-drm-protocol.lo wayland-drm.c:80:2: warning: initialization from incompatible pointer type wayland-drm.c:82:1: warning: excess elements in struct initializer wayland-drm.c:82:1: warning: (near initialization for 'drm_buffer_interface') Signed-off-by: Pekka Paalanen <[email protected]>
* automake: src/egl/waylandBenjamin Franzke2012-01-263-50/+15
| | | | | | | So we can use the wayland scanner makro, which is way better than our previous runtime-pkgconfig hack. Reviewed-by: Matt Turner <[email protected]>
* wayland-drm: Drop the non-premul formats, use format codes from drm_fourcc.hKristian Høgsberg2012-01-112-9/+66
|
* egl_dri2/wayland: handle creating xrgb8888 imagesRobert Bragg2012-01-112-0/+11
| | | | | | | | | | | | | | | | | | | | When creating an EGLImage from a struct wl_buffer * this ensures that we create an XRGB8888 image if the wayland buffer doesn't have an alpha channel. To determine if a wl_buffer has a valid alpha channel this patch adds an internal wayland_drm_buffer_has_alpha() function. It's important to get the internal format for an EGLImage right so that if a GL texture is later created from the image then the GL driver will know if it should sample the alpha from the texture or flatten it to a constant of 1.0. This avoids needing fragment program workarounds in wayland compositors to manually ignore the alpha component of textures created from wayland buffers. krh: Edited to use wl_buffer_get_format() instead of wl_buffer_has_alpha(). Reviewed-by: Kristian Høgsberg <[email protected]>
* configure: replace pkg-config calls with $(PKG_CONFIG) in the makefiles.Stéphane Marchesin2011-10-041-2/+2
| | | | | | | Us poor souls who cross compile mesa want to be able to specify which pkg-config to pick, or at least just change one place. Reviewed-by: Brian Paul <[email protected]> Reviewed-by: Matt Turner <[email protected]>
* wayland: Use wl_resource_* error functionsKristian Høgsberg2011-09-011-10/+10
|
* wayland-drm: Fix compilation with wayland masterBenjamin Franzke2011-09-011-9/+9
| | | | c661ecce introduced some not-yet-upstream stuff.