summaryrefslogtreecommitdiff
path: root/gsk/gskvulkanpipeline.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2017-09-22 10:02:27 -0400
committerMatthias Clasen <mclasen@redhat.com>2017-09-22 22:16:09 -0400
commit4c7a51f88ad8ca2d6a0f5e9aa82d7306e1f03c72 (patch)
treef38fb33cf183dd575a9d35305c08c4c5dff781ef /gsk/gskvulkanpipeline.c
parent87a112a5ad7b0fb417d3327103f5ec67d4be6113 (diff)
downloadgtk+-4c7a51f88ad8ca2d6a0f5e9aa82d7306e1f03c72.tar.gz
vulkan: Move descriptor set layout to the render object
We want to maintain a single descriptor set layout while introducing multiple pipeline layouts, so split this off.
Diffstat (limited to 'gsk/gskvulkanpipeline.c')
-rw-r--r--gsk/gskvulkanpipeline.c33
1 files changed, 3 insertions, 30 deletions
diff --git a/gsk/gskvulkanpipeline.c b/gsk/gskvulkanpipeline.c
index 71ea27e814..5863d20e35 100644
--- a/gsk/gskvulkanpipeline.c
+++ b/gsk/gskvulkanpipeline.c
@@ -15,7 +15,6 @@ struct _GskVulkanPipelineLayout
GdkVulkanContext *vulkan;
VkPipelineLayout pipeline_layout;
- VkDescriptorSetLayout descriptor_set_layout;
};
struct _GskVulkanPipelinePrivate
@@ -190,7 +189,8 @@ gsk_vulkan_pipeline_get_pipeline (GskVulkanPipeline *self)
/*** GskVulkanPipelineLayout ***/
GskVulkanPipelineLayout *
-gsk_vulkan_pipeline_layout_new (GdkVulkanContext *context)
+gsk_vulkan_pipeline_layout_new (GdkVulkanContext *context,
+ VkDescriptorSetLayout *descriptor_set_layout)
{
GskVulkanPipelineLayout *self;
VkDevice device;
@@ -201,27 +201,11 @@ gsk_vulkan_pipeline_layout_new (GdkVulkanContext *context)
device = gdk_vulkan_context_get_device (context);
- GSK_VK_CHECK (vkCreateDescriptorSetLayout, device,
- &(VkDescriptorSetLayoutCreateInfo) {
- .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
- .bindingCount = 1,
- .pBindings = (VkDescriptorSetLayoutBinding[1]) {
- {
- .binding = 0,
- .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
- .descriptorCount = 1,
- .stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT
- }
- }
- },
- NULL,
- &self->descriptor_set_layout);
-
GSK_VK_CHECK (vkCreatePipelineLayout, device,
&(VkPipelineLayoutCreateInfo) {
.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO,
.setLayoutCount = 1,
- .pSetLayouts = &self->descriptor_set_layout,
+ .pSetLayouts = descriptor_set_layout,
.pushConstantRangeCount = gst_vulkan_push_constants_get_range_count (),
.pPushConstantRanges = gst_vulkan_push_constants_get_ranges ()
},
@@ -255,10 +239,6 @@ gsk_vulkan_pipeline_layout_unref (GskVulkanPipelineLayout *self)
self->pipeline_layout,
NULL);
- vkDestroyDescriptorSetLayout (device,
- self->descriptor_set_layout,
- NULL);
-
g_slice_free (GskVulkanPipelineLayout, self);
}
@@ -268,10 +248,3 @@ gsk_vulkan_pipeline_layout_get_pipeline_layout (GskVulkanPipelineLayout *self)
{
return self->pipeline_layout;
}
-
-VkDescriptorSetLayout
-gsk_vulkan_pipeline_layout_get_descriptor_set_layout (GskVulkanPipelineLayout *self)
-{
- return self->descriptor_set_layout;
-}
-