mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-18 06:47:31 -04:00
render: use Vulkan renderer by default if available
The Vulkan renderer has matured and is now ready for production. Use it by default. If Vulkan is not supported, fall back to GLES2.
This commit is contained in:
parent
403eac51c4
commit
76d346dce4
2 changed files with 15 additions and 20 deletions
|
|
@ -2200,11 +2200,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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue