2020-11-07 19:34:55 +00:00
|
|
|
#define KWIN_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}
|
|
|
|
#define KWIN_VERSION_MINOR ${PROJECT_VERSION_MINOR}
|
|
|
|
#define KWIN_VERSION_PATCH ${PROJECT_VERSION_PATCH}
|
|
|
|
|
2011-04-29 10:34:22 +00:00
|
|
|
#cmakedefine KWIN_BUILD_DECORATIONS 1
|
2011-06-30 11:02:30 +00:00
|
|
|
#cmakedefine KWIN_BUILD_TABBOX 1
|
2012-02-26 10:38:16 +00:00
|
|
|
#cmakedefine KWIN_BUILD_ACTIVITIES 1
|
2020-11-27 19:37:40 +00:00
|
|
|
#cmakedefine KWIN_BUILD_CMS 1
|
2012-03-16 07:37:09 +00:00
|
|
|
#define KWIN_NAME "${KWIN_NAME}"
|
2014-06-10 10:05:54 +00:00
|
|
|
#define KWIN_INTERNAL_NAME_X11 "${KWIN_INTERNAL_NAME_X11}"
|
2012-03-16 07:37:09 +00:00
|
|
|
#define KWIN_CONFIG "${KWIN_NAME}rc"
|
2014-08-20 13:43:27 +00:00
|
|
|
#define KWIN_VERSION_STRING "${PROJECT_VERSION}"
|
2015-02-02 08:28:14 +00:00
|
|
|
#define XCB_VERSION_STRING "${XCB_VERSION}"
|
2015-10-01 07:26:12 +00:00
|
|
|
#define KWIN_KILLER_BIN "${CMAKE_INSTALL_FULL_LIBEXECDIR}/kwin_killer_helper"
|
|
|
|
#define KWIN_RULES_DIALOG_BIN "${CMAKE_INSTALL_FULL_LIBEXECDIR}/kwin_rules_dialog"
|
2016-06-20 09:21:16 +00:00
|
|
|
#define KWIN_XCLIPBOARD_SYNC_BIN "${CMAKE_INSTALL_FULL_LIBEXECDIR}/org_kde_kwin_xclipboard_syncer"
|
2015-03-19 10:07:49 +00:00
|
|
|
#cmakedefine01 HAVE_X11_XCB
|
2016-01-13 14:40:02 +00:00
|
|
|
#cmakedefine01 HAVE_X11_XINPUT
|
2015-04-09 12:49:32 +00:00
|
|
|
#cmakedefine01 HAVE_DRM
|
2015-04-10 08:44:07 +00:00
|
|
|
#cmakedefine01 HAVE_GBM
|
[platforms/drm] EGLStream DRM Backend Initial Implementation
Summary:
This is the initial implementation of a DRM backend based on the EGLDevice,
EGLOutput, and EGLStream extensions, supporting NVIDIA graphics hardware using
their proprietary driver. The new backend will be used if the environment
variable KWIN_DRM_USE_EGL_STREAMS is set. On initialization, it will attempt to
create an EGLDevice based on the DRM device currently in use and create
EGLOutputs and EGLStreams for any attached displays. These are used to control
presentation of the final composited frame. Additionally, it will register the
wl_eglstream_controller Wayland interface so that native EGL windows created by
clients can be attached to an EGLStream allowing buffer contents to be shared
with the compositor as a GL texture.
At this time there are two known bugs in the NVIDIA driver's EGL implementation
affecting desktop functionality. The first can result in tooltip windows drawn
by plasmashell to contain incorrect contents. The second prevents KWayland from
being able to query the format of EGLStream-backed buffers which interferes
with the blur effect. Fixes for both of these are currently in development and
should appear in an upcoming NVIDIA driver release.
Additionally, hardware cursors are currently not supported with this backend.
Enabling them causes the desktop to intermittently hang for several seconds.
This is also likely a bug in the NVIDIA DRM-KMS implementation but the root
cause is still under investigation.
Test Plan:
On a system with an NVIDIA graphics card running a recent release of their
proprietary driver
* Ensure the nvidia_drm kernel module is loaded with the option "modeset=1"
("# cat /sys/module/nvidia_drm/parameters/modeset" should print "Y")
* Ensure EGL external platform support is installed
https://github.com/NVIDIA/eglexternalplatform
* Ensure KWin was build with the CMake option
KWIN_BUILD_EGL_STREAM_BACKEND=ON (this is the default)
* Start a plasma wayland session with the environment variable
KWIN_DRM_USE_EGL_STREAMS set
* Ensure output from KWin OpenGL initialization indicates the NVIDIA EGL
driver is in use (as opposed to Mesa / llvmpipe).
* Desktop should be fully functional and perform smoothly.
Reviewers: #kwin, romangg, davidedmundson
Reviewed By: #kwin, romangg, davidedmundson
Subscribers: kwin
Tags: #kwin
Differential Revision: https://phabricator.kde.org/D18570
2019-04-15 14:26:22 +00:00
|
|
|
#cmakedefine01 HAVE_EGL_STREAMS
|
2015-11-30 07:34:52 +00:00
|
|
|
#cmakedefine01 HAVE_WAYLAND_EGL
|
2015-12-08 10:42:48 +00:00
|
|
|
#cmakedefine01 HAVE_SYS_PRCTL_H
|
|
|
|
#cmakedefine01 HAVE_PR_SET_DUMPABLE
|
2017-04-26 04:57:32 +00:00
|
|
|
#cmakedefine01 HAVE_PR_SET_PDEATHSIG
|
Disallow ptrace on greeter and kwin_wayland process on FreeBSD [... for the future]
Summary:
Similar to[[ https://phabricator.kde.org/D1216 | D1216 ]] add procctl call to disable ptrace on FreeBSD.
We cannot do the procfs-lookup to check whether the process is already being run inside gdb -- however, on FreeBSD, we could use the P_TRACED flag of the process to figure this out:
> sys/proc.h:#define P_TRACED 0x00800 /* Debugged process being traced. */
And the code would look something similar to
```
pid_t pid = getpid();
struct procstat *prstat = procstat_open_sysctl();
struct kinfo_proc *procinfo;
unsigned int cnt;
procinfo = procstat_getprocs(prstat, KERN_PROC_PID, pid, &cnt);
long p_flags = procinfo->ki_flag;
int p_traced = p_flags & P_TRACED;
if (p_traced != P_TRACED) {
mode = PROC_TRACE_CTL_DISABLE;
procctl(P_PID, getpid(), PROC_TRACE_CTL, &mode);
}
procstat_freeprocs(prstat,procinfo);
procstat_close(prstat);
```
But as wayland is [far] in the future on FreeBSD, and that check above is a bit lengthy, I think it is enough if we add it once it is needed.
Reviewers: rakuco, graesslin
Reviewed By: graesslin
Subscribers: plasma-devel
Projects: #plasma
Differential Revision: https://phabricator.kde.org/D1425
2016-05-10 06:49:58 +00:00
|
|
|
#cmakedefine01 HAVE_SYS_PROCCTL_H
|
|
|
|
#cmakedefine01 HAVE_PROC_TRACE_CTL
|
2017-07-30 19:30:33 +00:00
|
|
|
#cmakedefine01 HAVE_SYS_SYSMACROS_H
|
2016-04-07 12:25:42 +00:00
|
|
|
#cmakedefine01 HAVE_BREEZE_DECO
|
2017-09-10 10:05:29 +00:00
|
|
|
#cmakedefine01 HAVE_LIBCAP
|
|
|
|
#cmakedefine01 HAVE_SCHED_RESET_ON_FORK
|
2020-05-17 06:26:41 +00:00
|
|
|
#cmakedefine01 HAVE_ACCESSIBILITY
|
2016-04-07 12:25:42 +00:00
|
|
|
#if HAVE_BREEZE_DECO
|
|
|
|
#define BREEZE_KDECORATION_PLUGIN_ID "${BREEZE_KDECORATION_PLUGIN_ID}"
|
|
|
|
#endif
|
2014-03-18 08:30:40 +00:00
|
|
|
|
|
|
|
/* Define to 1 if you have the <unistd.h> header file. */
|
|
|
|
#cmakedefine HAVE_UNISTD_H 1
|
|
|
|
|
|
|
|
/* Define to 1 if you have the <malloc.h> header file. */
|
|
|
|
#cmakedefine HAVE_MALLOC_H 1
|
2014-06-11 05:51:07 +00:00
|
|
|
|
|
|
|
#cmakedefine XCB_ICCCM_FOUND 1
|
|
|
|
#ifndef XCB_ICCCM_FOUND
|
|
|
|
#define XCB_ICCCM_WM_STATE_WITHDRAWN 0
|
|
|
|
#define XCB_ICCCM_WM_STATE_NORMAL 1
|
|
|
|
#define XCB_ICCCM_WM_STATE_ICONIC 3
|
|
|
|
#endif
|
2020-07-23 21:33:30 +00:00
|
|
|
|
2020-07-24 00:06:45 +00:00
|
|
|
#cmakedefine PipeWire_FOUND 1
|