backend-drm: Enable atomic async flip support
Since DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP capability is available in the mainline kernel, now we should enable back tearing support. v2: - Bump kernel version to 6.9 - include the fallback definitions Reviewed-by: Marius Vlad <marius.vlad@collabora.com> Reviewed-by: Derek Foreman <derek.foreman@collabora.com> Signed-off-by: Naveen Kumar <naveen1.kumar@intel.com>
This commit is contained in:
parent
8988c9436b
commit
ad039cdfd2
@ -64,7 +64,7 @@ pip3 install $PIP_ARGS sphinx_rtd_theme==1.0.0
|
|||||||
# The fork pulls in this support from the original GitHub PR, rebased on top of
|
# The fork pulls in this support from the original GitHub PR, rebased on top of
|
||||||
# a newer upstream version which fixes AArch64 support.
|
# a newer upstream version which fixes AArch64 support.
|
||||||
if [[ -n "$KERNEL_DEFCONFIG" ]]; then
|
if [[ -n "$KERNEL_DEFCONFIG" ]]; then
|
||||||
git clone --depth=1 --branch=v6.3 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linux
|
git clone --depth=1 --branch=v6.9 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linux
|
||||||
cd linux
|
cd linux
|
||||||
|
|
||||||
if [[ "${BUILD_ARCH}" = "x86-64" ]]; then
|
if [[ "${BUILD_ARCH}" = "x86-64" ]]; then
|
||||||
|
@ -42,6 +42,10 @@
|
|||||||
#include "pixel-formats.h"
|
#include "pixel-formats.h"
|
||||||
#include "presentation-time-server-protocol.h"
|
#include "presentation-time-server-protocol.h"
|
||||||
|
|
||||||
|
#ifndef DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP
|
||||||
|
#define DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP 0x15
|
||||||
|
#endif
|
||||||
|
|
||||||
struct drm_property_enum_info plane_type_enums[] = {
|
struct drm_property_enum_info plane_type_enums[] = {
|
||||||
[WDRM_PLANE_TYPE_PRIMARY] = {
|
[WDRM_PLANE_TYPE_PRIMARY] = {
|
||||||
.name = "Primary",
|
.name = "Primary",
|
||||||
@ -1891,19 +1895,11 @@ init_kms_caps(struct drm_device *device)
|
|||||||
|
|
||||||
drmSetClientCap(device->drm.fd, DRM_CLIENT_CAP_WRITEBACK_CONNECTORS, 1);
|
drmSetClientCap(device->drm.fd, DRM_CLIENT_CAP_WRITEBACK_CONNECTORS, 1);
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* FIXME: DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP isn't merged into mainline so
|
|
||||||
* we can't really use it at this point. Until then, make it so we
|
|
||||||
* don't support it. After it gets merged, we can flip this back such
|
|
||||||
* that we don't need to revert the entire tearing work, and we can
|
|
||||||
* still get it all back, when the capability is actually available in
|
|
||||||
* the kernel. */
|
|
||||||
ret = drmGetCap(device->drm.fd, DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP, &cap);
|
ret = drmGetCap(device->drm.fd, DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP, &cap);
|
||||||
if (ret != 0)
|
if (ret == 0)
|
||||||
cap = 0;
|
device->tearing_supported = cap;
|
||||||
#endif
|
weston_log("DRM: %s Atomic async page flip\n",
|
||||||
device->tearing_supported = 0;
|
device->tearing_supported ? "supports" : "does not support");
|
||||||
weston_log("DRM: does not support async page flipping\n");
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* KMS support for hardware planes cannot properly synchronize
|
* KMS support for hardware planes cannot properly synchronize
|
||||||
|
Loading…
Reference in New Issue
Block a user