summaryrefslogtreecommitdiff
path: root/gsk/gskvulkanrenderer.c
diff options
context:
space:
mode:
Diffstat (limited to 'gsk/gskvulkanrenderer.c')
-rw-r--r--gsk/gskvulkanrenderer.c24
1 files changed, 4 insertions, 20 deletions
diff --git a/gsk/gskvulkanrenderer.c b/gsk/gskvulkanrenderer.c
index 488b8f4dd7..2f71dc0066 100644
--- a/gsk/gskvulkanrenderer.c
+++ b/gsk/gskvulkanrenderer.c
@@ -33,7 +33,7 @@ struct _GskVulkanRenderer
VkSampler sampler;
- GSList *renders;
+ GskVulkanRender *render;
#ifdef G_ENABLE_DEBUG
ProfileTimers profile_timers;
@@ -123,8 +123,7 @@ gsk_vulkan_renderer_realize (GskRenderer *renderer,
self);
gsk_vulkan_renderer_update_images_cb (self->vulkan, self);
- /* We will need at least one render object, so create it early where we can still fail fine */
- self->renders = g_slist_prepend (self->renders, gsk_vulkan_render_new (renderer, self->vulkan));
+ self->render = gsk_vulkan_render_new (renderer, self->vulkan);
return TRUE;
}
@@ -135,8 +134,7 @@ gsk_vulkan_renderer_unrealize (GskRenderer *renderer)
GskVulkanRenderer *self = GSK_VULKAN_RENDERER (renderer);
VkDevice device;
- g_slist_free_full (self->renders, (GDestroyNotify) gsk_vulkan_render_free);
- self->renders = NULL;
+ g_clear_pointer (&self->render, gsk_vulkan_render_free);
device = gdk_vulkan_context_get_device (self->vulkan);
@@ -159,7 +157,6 @@ gsk_vulkan_renderer_render (GskRenderer *renderer,
{
GskVulkanRenderer *self = GSK_VULKAN_RENDERER (renderer);
GskVulkanRender *render;
- GSList *l;
#ifdef G_ENABLE_DEBUG
GskProfiler *profiler;
gint64 cpu_time;
@@ -170,20 +167,7 @@ gsk_vulkan_renderer_render (GskRenderer *renderer,
gsk_profiler_timer_begin (profiler, self->profile_timers.cpu_time);
#endif
- for (l = self->renders; l; l = l->next)
- {
- if (!gsk_vulkan_render_is_busy (l->data))
- break;
- }
- if (l)
- {
- render = l->data;
- }
- else
- {
- render = gsk_vulkan_render_new (renderer, self->vulkan);
- self->renders = g_slist_prepend (self->renders, render);
- }
+ render = self->render;
gsk_vulkan_render_reset (render, self->targets[gdk_vulkan_context_get_draw_index (self->vulkan)]);