This commit is contained in:
JerryXiao 2023-04-29 02:21:39 +08:00
parent 38a2d8e64d
commit 7f933989c3
Signed by: Jerry
GPG key ID: 22618F758B5BE2E5
3 changed files with 9 additions and 3 deletions

View file

@ -10,6 +10,8 @@ find_package(PkgConfig REQUIRED)
pkg_search_module(LIBDRM REQUIRED libdrm)
pkg_search_module(LIBVNCSERVER REQUIRED libvncserver)
pkg_search_module(XKBCOMMON REQUIRED xkbcommon)
pkg_search_module(LIBVA REQUIRED libva)
pkg_search_module(LIBVA_DRM REQUIRED libva-drm)
include(CheckIncludeFiles)
CHECK_INCLUDE_FILES("linux/uinput.h;linux/dma-buf.h" HAVE_LINUX_API_HEADERS)
@ -17,17 +19,21 @@ IF(NOT HAVE_LINUX_API_HEADERS)
message(FATAL_ERROR "linux-api-headers not found")
ENDIF()
add_executable(kmsvnc kmsvnc.c drm.c input.c keymap.c)
add_executable(kmsvnc kmsvnc.c drm.c input.c keymap.c va.c)
target_include_directories(kmsvnc PUBLIC
${LIBDRM_INCLUDEDIR}
${LIBDRM_INCLUDEDIR}/libdrm
${LIBVNCSERVER_INCLUDEDIR}
${XKBCOMMON_INCLUDEDIR}
${LIBVA_INCLUDEDIR}
${LIBVA_DRM_INCLUDEDIR}
)
target_link_libraries(kmsvnc PUBLIC
m
${LIBDRM_LIBRARIES}
${LIBVNCSERVER_LIBRARIES}
${XKBCOMMON_LIBRARIES}
${LIBVA_LIBRARIES}
${LIBVA_DRM_LIBRARIES}
)
install(TARGETS kmsvnc RUNTIME DESTINATION bin)

2
drm.c
View file

@ -272,7 +272,7 @@ static int drm_kmsbuf_prime_vaapi() {
drm->funcs->sync_start = &drm_sync_start;
drm->funcs->sync_end = &drm_sync_end;
drm->mmap_fd = drm->prime_fd;
drm->mapped = kmsvnc->buf;
drm->mapped = kmsvnc->va->imgbuf;
return 0;
}

2
va.c
View file

@ -115,7 +115,7 @@ int va_init() {
prime_attrs, KMSVNC_ARRAY_ELEMENTS(prime_attrs)))
{
printf("vaCreateSurfaces prime2 error %#x %s, trying prime\n", s, vaErrorStr(s));
VASurfaceAttribExternalBuffers buffer_desc;
VASurfaceAttrib buffer_attrs[2] = {
{