mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-18 06:47:31 -04:00
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:
commit
2b5cd18c75
2 changed files with 15 additions and 20 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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