vulkan: Device initialization

This initialized a Vulkan logical device according to compositor
preference, but does not yet do anything with it.
This commit is contained in:
Kenny Levinsen 2024-08-04 23:37:35 +02:00
parent 9cf99ea4bf
commit 42caf8b387
5 changed files with 352 additions and 1 deletions

View file

@ -136,6 +136,8 @@ wayland_cursor = dependency('wayland-cursor')
xkb = dependency('xkbcommon', version: '>=1.0.0')
fontconfig = dependency('fontconfig')
utf8proc = dependency('libutf8proc', required: get_option('grapheme-clustering'))
vulkan = dependency('vulkan')
drm = dependency('libdrm').partial_dependency(compile_args: true, includes: true)
if utf8proc.found()
add_project_arguments('-DFOOT_GRAPHEME_CLUSTERING=1', language: 'c')
@ -165,6 +167,7 @@ wl_proto_xml = [
wayland_protocols_datadir / 'unstable/tablet/tablet-unstable-v2.xml', # required by cursor-shape-v1
wayland_protocols_datadir / 'staging/cursor-shape/cursor-shape-v1.xml',
wayland_protocols_datadir / 'staging/single-pixel-buffer/single-pixel-buffer-v1.xml',
wayland_protocols_datadir / 'stable/linux-dmabuf/linux-dmabuf-v1.xml',
]
foreach prot : wl_proto_xml
@ -288,6 +291,7 @@ executable(
'search.c', 'search.h',
'server.c', 'server.h', 'client-protocol.h',
'shm.c', 'shm.h',
'vulkan.c', 'vulkan.h',
'slave.c', 'slave.h',
'spawn.c', 'spawn.h',
'tokenize.c', 'tokenize.h',
@ -297,7 +301,7 @@ executable(
'wayland.c', 'wayland.h', 'shm-formats.h',
wl_proto_src + wl_proto_headers, version,
dependencies: [math, threads, libepoll, pixman, wayland_client, wayland_cursor, xkb, fontconfig, utf8proc,
tllist, fcft],
tllist, fcft, vulkan, drm],
link_with: pgolib,
install: true)