weston/libweston/renderer-vulkan/meson.build
Erico Nunes 8f56d03d4b libweston: Vulkan renderer
A Vulkan renderer for weston, based on the GL renderer.
The goal is to impose the least requirements as possible on Vulkan
implementations, as to allow even Vulkan 1.0 (or early development)
drivers to run a Wayland compositor. Any additional features or
extensions are made optional if possible.
Currently supports drm, wayland, x11 and headless backends.
As of this implementation, this is still considered an experimental
renderer.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
2025-05-23 20:36:05 +01:00

59 lines
1.4 KiB
Meson

if not get_option('renderer-vulkan')
subdir_done()
endif
config_h.set('ENABLE_VULKAN', '1')
srcs_shaders_renderer_vulkan = [
'vulkan_vertex_shader_surface.vert',
'vulkan_vertex_shader_texcoord.vert',
'vulkan_fragment_shader.frag',
]
shaders_renderer_vulkan = []
foreach s : srcs_shaders_renderer_vulkan
shaders_renderer_vulkan += custom_target(s + '.spv.h',
command: [ prog_glslang, '@INPUT@', '--quiet', '--variable-name', '@BASENAME@', '-V', '-x', '-o', '@OUTPUT@' ],
input: s,
output: '@BASENAME@.spv.h',
)
endforeach
srcs_renderer_vulkan = [
'vulkan-pipeline.c',
'vulkan-pixel-format.c',
'vulkan-renderer.c',
shaders_renderer_vulkan,
linux_dmabuf_unstable_v1_protocol_c,
linux_dmabuf_unstable_v1_server_protocol_h,
]
deps_renderer_vulkan = [
dep_libdrm,
dep_gbm,
dep_libm,
dep_pixman,
dep_libweston_private,
dep_libdrm_headers,
dep_vertex_clipping
]
foreach name : [ 'vulkan' ]
d = dependency(name, required: false)
if not d.found()
error('vulkan-renderer requires @0@ which was not found. Or, you can use \'-Drenderer-vulkan=false\'.'.format(name))
endif
deps_renderer_vulkan += d
endforeach
plugin_vulkan = shared_library(
'vulkan-renderer',
srcs_renderer_vulkan,
include_directories: common_inc,
dependencies: deps_renderer_vulkan,
name_prefix: '',
install: true,
install_dir: dir_module_libweston
)
env_modmap += 'vulkan-renderer.so=@0@;'.format(plugin_vulkan.full_path())