mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-31 22:25:21 -04:00
render/vulkan: add Vulkan renderer
This new renderer is implemented with the existing wlr_renderer API (which is known to be sub-optimal for some operations). It's not used by default, but users can opt-in by setting WLR_RENDERER=vulkan. The renderer depends on VK_EXT_image_drm_format_modifier and VK_EXT_physical_device_drm. Co-authored-by: Simon Ser <contact@emersion.fr> Co-authored-by: Jan Beich <jbeich@FreeBSD.org>
This commit is contained in:
parent
2edf468aeb
commit
8e34692250
21 changed files with 3704 additions and 2 deletions
38
render/vulkan/meson.build
Normal file
38
render/vulkan/meson.build
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
msg = []
|
||||
if 'vulkan' in renderers
|
||||
msg += 'Install "@0@" or pass "-Dvulkan=disabled" to disable it.'
|
||||
else
|
||||
msg += 'Required for vulkan renderer support.'
|
||||
endif
|
||||
|
||||
dep_vulkan = dependency('vulkan',
|
||||
version: '>=1.2.182',
|
||||
required: 'vulkan' in renderers,
|
||||
not_found_message: '\n'.join(msg).format('vulkan')
|
||||
)
|
||||
|
||||
if not dep_vulkan.found()
|
||||
subdir_done()
|
||||
endif
|
||||
|
||||
glslang = find_program('glslangValidator', native: true, required: false)
|
||||
if not glslang.found()
|
||||
if 'vulkan' in renderers
|
||||
error('\n'.join(msg).format('glslang'))
|
||||
else
|
||||
subdir_done()
|
||||
endif
|
||||
endif
|
||||
|
||||
wlr_files += files(
|
||||
'renderer.c',
|
||||
'texture.c',
|
||||
'vulkan.c',
|
||||
'util.c',
|
||||
'pixel_format.c',
|
||||
)
|
||||
|
||||
wlr_deps += dep_vulkan
|
||||
features += { 'vulkan-renderer': true }
|
||||
|
||||
subdir('shaders')
|
||||
Loading…
Add table
Add a link
Reference in a new issue