Bug 422131 - kwin no longer compiles againt mesa master
Summary: kwin no longer compiles againt mesa master
Status: RESOLVED FIXED
Alias: None
Product: kwin
Classification: Plasma
Component: general (show other bugs)
Version: 5.18.5
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Vlad Zahorodnii
URL: https://invent.kde.org/plasma/kwin/-/...
Keywords:
Depends on:
Blocks:
 
Reported: 2020-05-27 09:57 UTC by Mike Lothian
Modified: 2020-05-29 13:52 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:
vlad.zahorodnii: ReviewRequest+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Lothian 2020-05-27 09:57:04 UTC
The compile errors is:

FAILED: platformsupport/scenes/opengl/CMakeFiles/SceneOpenGLBackend.dir/egl_dmabuf.cpp.o 
/usr/bin/x86_64-pc-linux-gnu-g++ -DKCOREADDONS_LIB -DQT_CORE_LIB -DQT_DISABLE_DEPRECATED_BEFORE=0 -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_NO_URL_CAST_FROM_STRING -DQT_USE_QSTRINGBUILDER -DQT_WIDGETS_LIB -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -Iplatformsupport/scenes/opengl -I/var/tmp/portage/kde-plasma/kwin-5.18.5-r1/work/kwin-5.18.5/platformsupport/scenes/opengl -Iplatformsupport/scenes/opengl/SceneOpenGLBackend_autogen/include -I/var/tmp/portage/kde-plasma/kwin-5.18.5-r1/work/kwin-5.18.5/platformsupport -I/var/tmp/portage/kde-plasma/kwin-5.18.5-r1/work/kwin-5.18.5/tabbox -I/var/tmp/portage/kde-plasma/kwin-5.18.5-r1/work/kwin-5.18.5/effects -I/var/tmp/portage/kde-plasma/kwin-5.18.5-r1/work/kwin-5.18.5/libkwineffects -I. -Ilibkwineffects -I/var/tmp/portage/kde-plasma/kwin-5.18.5-r1/work/kwin-5.18.5 -I/usr/include/qt5/QtGui/5.15.0 -I/usr/include/qt5/QtGui/5.15.0/QtGui -I/usr/include/qt5/QtCore/5.15.0 -I/usr/include/qt5/QtCore/5.15.0/QtCore -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++ -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/KF5/KCoreAddons -isystem /usr/include/KF5 -isystem /usr/include/KF5/KConfigCore -isystem /usr/include/KF5/KWindowSystem -isystem /usr/include/KF5/KWayland/Server  -DQT_NO_DEBUG -O3 -march=native -pipe -flto -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -fdiagnostics-color=always -fvisibility=hidden -fvisibility-inlines-hidden   -fPIC -std=gnu++14 -MD -MT platformsupport/scenes/opengl/CMakeFiles/SceneOpenGLBackend.dir/egl_dmabuf.cpp.o -MF platformsupport/scenes/opengl/CMakeFiles/SceneOpenGLBackend.dir/egl_dmabuf.cpp.o.d -o platformsupport/scenes/opengl/CMakeFiles/SceneOpenGLBackend.dir/egl_dmabuf.cpp.o -c /var/tmp/portage/kde-plasma/kwin-5.18.5-r1/work/kwin-5.18.5/platformsupport/scenes/opengl/egl_dmabuf.cpp
/var/tmp/portage/kde-plasma/kwin-5.18.5-r1/work/kwin-5.18.5/platformsupport/scenes/opengl/egl_dmabuf.cpp:97:9: error: ‘EGL_TEXTURE_Y_XUXV_WL’ was not declared in this scope
   97 |         EGL_TEXTURE_Y_XUXV_WL,
      |         ^~~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/kde-plasma/kwin-5.18.5-r1/work/kwin-5.18.5/platformsupport/scenes/opengl/egl_dmabuf.cpp:114:9: error: ‘EGL_TEXTURE_Y_UV_WL’ was not declared in this scope; did you mean ‘GL_TEXTURE_VIEW’?
  114 |         EGL_TEXTURE_Y_UV_WL,
      |         ^~~~~~~~~~~~~~~~~~~
      |         GL_TEXTURE_VIEW
/var/tmp/portage/kde-plasma/kwin-5.18.5-r1/work/kwin-5.18.5/platformsupport/scenes/opengl/egl_dmabuf.cpp:131:9: error: ‘EGL_TEXTURE_Y_U_V_WL’ was not declared in this scope
  131 |         EGL_TEXTURE_Y_U_V_WL,
      |         ^~~~~~~~~~~~~~~~~~~~
/var/tmp/portage/kde-plasma/kwin-5.18.5-r1/work/kwin-5.18.5/platformsupport/scenes/opengl/egl_dmabuf.cpp:153:9: error: ‘EGL_TEXTURE_Y_U_V_WL’ was not declared in this scope
  153 |         EGL_TEXTURE_Y_U_V_WL,
      |         ^~~~~~~~~~~~~~~~~~~~


The change that caused this is https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4953

I still have issues compiling if I change to using the non-mesa include:

#include <EGL/eglext.h>
Comment 1 Mike Lothian 2020-05-27 10:35:02 UTC
So I had to use libglvnd from git master to get this working with <EGL/eglext.h>

I'm not sure how this is supposed to work on machines that use the old headers - I've asekd the question on the merge request
Comment 2 Vlad Zahorodnii 2020-05-29 13:52:24 UTC
Git commit 2c76cc4784382b3df9b5413860d0793ea26cea31 by Vlad Zahorodnii.
Committed on 29/05/2020 at 13:21.
Pushed by vladz into branch 'Plasma/5.18'.

[wayland] Fix misuse of EGL/eglmesaext.h

The recommended way to get all EGL extension defines is to include
EGL/eglext.h. EGL/eglmesaext.h is a private header that compositors
should not use.

M  +1    -10   platformsupport/scenes/opengl/abstract_egl_backend.cpp
M  +1    -40   platformsupport/scenes/opengl/egl_dmabuf.cpp
A  +76   -0    platformsupport/scenes/opengl/kwineglext.h     [License: GPL (v2)]

https://invent.kde.org/plasma/kwin/commit/2c76cc4784382b3df9b5413860d0793ea26cea31