Merge branch 'default-vk' into 'master'

Draft: render: use Vulkan renderer by default if available

See merge request wlroots/wlroots!4103
This commit is contained in:
Simon Ser 2023-05-21 20:40:25 +00:00
commit 2b5cd18c75
2 changed files with 15 additions and 20 deletions

View file

@ -2791,11 +2791,6 @@ error:
}
struct wlr_renderer *wlr_vk_renderer_create_with_drm_fd(int drm_fd) {
wlr_log(WLR_INFO, "The vulkan renderer is only experimental and "
"not expected to be ready for daily use");
wlr_log(WLR_INFO, "Run with VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation "
"to enable the validation layer");
// NOTE: we could add functionality to allow the compositor passing its
// name and version to this function. Just use dummies until then,
// shouldn't be relevant to the driver anyways

View file

@ -265,6 +265,21 @@ struct wlr_renderer *renderer_autocreate_with_drm_fd(int drm_fd) {
bool is_auto = strcmp(renderer_name, "auto") == 0;
struct wlr_renderer *renderer = NULL;
#if WLR_HAS_VULKAN_RENDERER
if (is_auto || strcmp(renderer_name, "vulkan") == 0) {
if (drm_fd < 0) {
log_creation_failure(is_auto, "Cannot create Vulkan renderer: no DRM FD available");
} else {
renderer = wlr_vk_renderer_create_with_drm_fd(drm_fd);
if (renderer) {
return renderer;
} else {
log_creation_failure(is_auto, "Failed to create a Vulkan renderer");
}
}
}
#endif
#if WLR_HAS_GLES2_RENDERER
if (is_auto || strcmp(renderer_name, "gles2") == 0) {
if (drm_fd < 0) {
@ -280,21 +295,6 @@ struct wlr_renderer *renderer_autocreate_with_drm_fd(int drm_fd) {
}
#endif
#if WLR_HAS_VULKAN_RENDERER
if (strcmp(renderer_name, "vulkan") == 0) {
if (drm_fd < 0) {
log_creation_failure(is_auto, "Cannot create Vulkan renderer: no DRM FD available");
} else {
renderer = wlr_vk_renderer_create_with_drm_fd(drm_fd);
if (renderer) {
return renderer;
} else {
log_creation_failure(is_auto, "Failed to create a Vulkan renderer");
}
}
}
#endif
bool has_render_node = false;
if (is_auto && drm_fd >= 0) {
char *render_node = drmGetRenderDeviceNameFromFd(drm_fd);