render/vulkan: Guard hostmem import with env flag

Direct host memory import is experimental. Put it behind an environment
variable to allow easy testing.
This commit is contained in:
Kenny Levinsen 2024-06-25 12:52:09 +02:00
parent b385af41dc
commit dfbb819044
4 changed files with 11 additions and 1 deletions

View file

@ -27,6 +27,7 @@
#include "render/vulkan/shaders/output.frag.h"
#include "types/wlr_buffer.h"
#include "types/wlr_matrix.h"
#include "util/env.h"
// TODO:
// - simplify stage allocation, don't track allocations but use ringbuffer-like
@ -2417,6 +2418,8 @@ struct wlr_renderer *vulkan_renderer_create_for_device(struct wlr_vk_device *dev
wl_list_init(&renderer->color_transforms);
wl_list_init(&renderer->pipeline_layouts);
renderer->direct_shm_import = env_parse_bool("WLR_VK_DIRECT_SHM_IMPORT");
if (!init_static_render_data(renderer)) {
goto error;
}

View file

@ -456,7 +456,8 @@ static struct wlr_texture *vulkan_texture_from_pixels(
img_info.flags |= VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT;
}
if (renderer->dev->api.vkGetMemoryHostPointerPropertiesEXT) {
if (renderer->direct_shm_import &&
renderer->dev->api.vkGetMemoryHostPointerPropertiesEXT) {
img_info.tiling = VK_IMAGE_TILING_LINEAR;
img_info.initialLayout = VK_IMAGE_LAYOUT_PREINITIALIZED;