gtk/gsk/vulkan
Benjamin Otte 5409f0b350 vulkan: Create multiple render objects
Sometimes the GPU is still busy when the next frame starts (like when
no-vsync benchmarking), so we need to keep all those resources alone and
create new ones.
That's what the render object is for, so we just create another one.

However, when we create too many, we'll starve the CPU. So we'll limit
it. Currently, that limit is at 4, but I've never reached it (I've also
not starved the GPU yet), so that number may want to be set lower/higher
in the future.

Note that this is different from the number of outstanding buffers, as
those are not busy on the GPU but on the compositor, and as such a
buffer may have not finished rendering but have been returend from the
compositor (very busy GPU) or have finished rendering but not been
returned from the compositor (very idle GPU).
2023-06-04 19:42:01 +02:00
..
resources vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkanblendmodepipeline.c vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkanblendmodepipelineprivate.h vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkanblurpipeline.c vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkanblurpipelineprivate.h vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkanborderpipeline.c vulkan: Remove a function from pipeline impls 2023-06-04 19:42:01 +02:00
gskvulkanborderpipelineprivate.h vulkan: Remove a function from pipeline impls 2023-06-04 19:42:01 +02:00
gskvulkanboxshadowpipeline.c vulkan: Remove a function from pipeline impls 2023-06-04 19:42:01 +02:00
gskvulkanboxshadowpipelineprivate.h vulkan: Remove a function from pipeline impls 2023-06-04 19:42:01 +02:00
gskvulkanbuffer.c gsk/vulkan/buffer: Pass aligned memory value 2023-04-03 10:59:45 -03:00
gskvulkanbufferprivate.h Convert headers to #pragma once 2023-03-31 15:11:10 -04:00
gskvulkanclip.c vulkan: Stop differentiating rounded from cicular corners 2023-06-04 19:42:01 +02:00
gskvulkanclipprivate.h vulkan: Stop differentiating rounded from cicular corners 2023-06-04 19:42:01 +02:00
gskvulkancolorpipeline.c vulkan: Remove a function from pipeline impls 2023-06-04 19:42:01 +02:00
gskvulkancolorpipelineprivate.h vulkan: Remove a function from pipeline impls 2023-06-04 19:42:01 +02:00
gskvulkancolortextpipeline.c vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkancolortextpipelineprivate.h vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkancommandpool.c gsk: Stop using g_slice 2023-03-14 14:56:42 -04:00
gskvulkancommandpoolprivate.h Convert headers to #pragma once 2023-03-31 15:11:10 -04:00
gskvulkancrossfadepipeline.c vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkancrossfadepipelineprivate.h vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkaneffectpipeline.c vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkaneffectpipelineprivate.h vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkanglyphcache.c gsk: Mark some variables as unused 2023-05-18 13:29:28 -04:00
gskvulkanglyphcacheprivate.h Convert headers to #pragma once 2023-03-31 15:11:10 -04:00
gskvulkanimage.c vulkan: Handle empty child bounds in repeat node 2023-06-04 19:42:01 +02:00
gskvulkanimageprivate.h vulkan: offscreens are used as color attachments 2023-06-04 19:42:00 +02:00
gskvulkanlineargradientpipeline.c vulkan: Remove a function from pipeline impls 2023-06-04 19:42:01 +02:00
gskvulkanlineargradientpipelineprivate.h vulkan: Remove a function from pipeline impls 2023-06-04 19:42:01 +02:00
gskvulkanmemory.c gsk: Stop using g_slice 2023-03-14 14:56:42 -04:00
gskvulkanmemoryprivate.h Convert headers to #pragma once 2023-03-31 15:11:10 -04:00
gskvulkanpipeline.c vulkan: Remove a function from pipeline impls 2023-06-04 19:42:01 +02:00
gskvulkanpipelineprivate.h vulkan: Remove a function from pipeline impls 2023-06-04 19:42:01 +02:00
gskvulkanpushconstants.c vulkan: Add scale to push constants 2023-06-04 19:42:01 +02:00
gskvulkanpushconstantsprivate.h vulkan: Add scale to push constants 2023-06-04 19:42:01 +02:00
gskvulkanrender.c vulkan: Create multiple render objects 2023-06-04 19:42:01 +02:00
gskvulkanrenderer.c vulkan: Create multiple render objects 2023-06-04 19:42:01 +02:00
gskvulkanrenderer.h Convert headers to #pragma once 2023-03-31 15:11:10 -04:00
gskvulkanrendererprivate.h gsk/vulkan/glyphcache: Rework glyphs 2023-04-08 20:13:13 -03:00
gskvulkanrenderpass.c vulkan: Stop differentiating rounded from cicular corners 2023-06-04 19:42:01 +02:00
gskvulkanrenderpassprivate.h vulkan: Only use a single pipeline layout 2023-06-04 19:42:01 +02:00
gskvulkanrenderprivate.h vulkan: Create multiple render objects 2023-06-04 19:42:01 +02:00
gskvulkanshader.c gsk: Stop using g_slice 2023-03-14 14:56:42 -04:00
gskvulkanshaderprivate.h Convert headers to #pragma once 2023-03-31 15:11:10 -04:00
gskvulkantextpipeline.c vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkantextpipelineprivate.h vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkantexturepipeline.c vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00
gskvulkantexturepipelineprivate.h vulkan: Split textures and samplers 2023-06-04 19:42:01 +02:00