Remove support for DMA-BUF flags

They are never used in practice, which makes all of our flag
handling effectively dead code. Also, APIs such as KMS don't
provide a good way to deal with the flags. Let's just fail the
DMA-BUF import when clients provide flags.
This commit is contained in:
Simon Ser 2021-11-16 22:51:06 +01:00 committed by Simon Zeni
parent 9a4e1095ca
commit a04cfca4da
15 changed files with 12 additions and 83 deletions

View file

@ -433,15 +433,6 @@ static struct wlr_vk_render_buffer *create_render_buffer(
wlr_log(WLR_DEBUG, "vulkan create_render_buffer: %.4s, %dx%d",
(const char*) &dmabuf.format, dmabuf.width, dmabuf.height);
// NOTE: we could at least support WLR_DMABUF_ATTRIBUTES_FLAGS_Y_INVERT
// if it is needed by anyone. Can be implemented using negative viewport
// height or flipping matrix.
if (dmabuf.flags != 0) {
wlr_log(WLR_ERROR, "dmabuf flags %x not supported/implemented on vulkan",
dmabuf.flags);
goto error_buffer;
}
buffer->image = vulkan_import_dmabuf(renderer, &dmabuf,
buffer->memories, &buffer->mem_count, true);
if (!buffer->image) {
@ -789,11 +780,6 @@ static bool vulkan_render_subtexture_with_matrix(struct wlr_renderer *wlr_render
vert_pcr_data.uv_size[0] = box->width / wlr_texture->width;
vert_pcr_data.uv_size[1] = box->height / wlr_texture->height;
if (texture->invert_y) {
vert_pcr_data.uv_off[1] += vert_pcr_data.uv_size[1];
vert_pcr_data.uv_size[1] = -vert_pcr_data.uv_size[1];
}
vkCmdPushConstants(cb, renderer->pipe_layout,
VK_SHADER_STAGE_VERTEX_BIT, 0, sizeof(vert_pcr_data), &vert_pcr_data);
vkCmdPushConstants(cb, renderer->pipe_layout,

View file

@ -605,19 +605,6 @@ static struct wlr_texture *vulkan_texture_from_dmabuf(struct wlr_renderer *wlr_r
goto error;
}
uint32_t flags = attribs->flags;
if (flags & WLR_DMABUF_ATTRIBUTES_FLAGS_Y_INVERT) {
texture->invert_y = true;
flags &= ~WLR_DMABUF_ATTRIBUTES_FLAGS_Y_INVERT;
}
if (flags != 0) {
wlr_log(WLR_ERROR, "dmabuf flags %x not supported/implemented on vulkan",
attribs->flags);
// NOTE: should probably make this a critical error in future
// return VK_NULL_HANDLE;
}
const struct wlr_pixel_format_info *format_info = drm_get_pixel_format_info(attribs->format);
assert(format_info);