aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--render/vulkan/renderer.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/render/vulkan/renderer.c b/render/vulkan/renderer.c
index e520fd47..075f76d3 100644
--- a/render/vulkan/renderer.c
+++ b/render/vulkan/renderer.c
@@ -909,9 +909,14 @@ static const struct wlr_drm_format_set *vulkan_get_render_formats(
static uint32_t vulkan_preferred_read_format(
struct wlr_renderer *wlr_renderer) {
- // TODO: implement!
- wlr_log(WLR_ERROR, "vulkan_preferred_read_format not implemented");
- return DRM_FORMAT_XBGR8888;
+ struct wlr_vk_renderer *renderer = vulkan_get_renderer(wlr_renderer);
+ struct wlr_dmabuf_attributes dmabuf = {0};
+ if (!wlr_buffer_get_dmabuf(renderer->current_render_buffer->wlr_buffer,
+ &dmabuf)) {
+ wlr_log(WLR_ERROR, "vulkan_preferred_read_format: Failed to get dmabuf of current render buffer");
+ return DRM_FORMAT_INVALID;
+ }
+ return dmabuf.format;
}
static void vulkan_destroy(struct wlr_renderer *wlr_renderer) {