mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2025-05-30 16:30:43 +00:00
[vulkan] Parse in descriptor set layouts
For now, just their create info is parsed, but they will be created on demand. Most importantly, they are named for ease of use in pipeline layouts.
This commit is contained in:
parent
44f058869f
commit
b10c8dc1a1
3 changed files with 209 additions and 4 deletions
|
@ -495,6 +495,190 @@ properties = {
|
|||
};
|
||||
}
|
||||
};
|
||||
descriptorSetLayouts = {
|
||||
matrix_set = {
|
||||
bindings = (
|
||||
{
|
||||
binding = 0;
|
||||
descriptorType = uniform_buffer;
|
||||
descriptorCount = 1;
|
||||
stageFlags = vertex|geometry;
|
||||
},
|
||||
);
|
||||
};
|
||||
quad_data_set = {
|
||||
bindings = (
|
||||
{
|
||||
// glyph texture data
|
||||
binding = 0;
|
||||
descriptorType = combined_image_sampler;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
{
|
||||
// glyph geometry data (offset and uv)
|
||||
binding = 1;
|
||||
descriptorType = uniform_texel_buffer;
|
||||
descriptorCount = 1;
|
||||
stageFlags = vertex;
|
||||
},
|
||||
);
|
||||
};
|
||||
texture_set = {
|
||||
bindings = (
|
||||
{
|
||||
binding = 0;
|
||||
descriptorType = combined_image_sampler;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment|vertex;
|
||||
},
|
||||
);
|
||||
};
|
||||
oit_set = {
|
||||
bindings = (
|
||||
{
|
||||
binding = 0;
|
||||
descriptorType = storage_buffer;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
{
|
||||
binding = 1;
|
||||
descriptorType = storage_buffer;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
{
|
||||
binding = 2;
|
||||
descriptorType = storage_image;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
);
|
||||
};
|
||||
entity_set = {
|
||||
bindings = (
|
||||
{
|
||||
binding = 0;
|
||||
descriptorType = storage_buffer;
|
||||
descriptorCount = 1;
|
||||
stageFlags = vertex;
|
||||
},
|
||||
);
|
||||
};
|
||||
bone_set = {
|
||||
bindings = (
|
||||
{
|
||||
binding = 0;
|
||||
descriptorType = storage_buffer;
|
||||
descriptorCount = 1;
|
||||
stageFlags = vertex;
|
||||
},
|
||||
);
|
||||
};
|
||||
sprite_set = {
|
||||
bindings = (
|
||||
{
|
||||
binding = 0;
|
||||
descriptorType = uniform_buffer;
|
||||
descriptorCount = 1;
|
||||
stageFlags = vertex;
|
||||
},
|
||||
{
|
||||
binding = 1;
|
||||
descriptorType = combined_image_sampler;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
);
|
||||
};
|
||||
lighting_attach = {
|
||||
bindings = (
|
||||
{
|
||||
binding = 0;
|
||||
descriptorType = input_attachment;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
{
|
||||
binding = 1;
|
||||
descriptorType = input_attachment;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
{
|
||||
binding = 2;
|
||||
descriptorType = input_attachment;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
{
|
||||
binding = 3;
|
||||
descriptorType = input_attachment;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
{
|
||||
binding = 4;
|
||||
descriptorType = input_attachment;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
);
|
||||
};
|
||||
lighting_lights = {
|
||||
bindings = (
|
||||
{
|
||||
binding = 0;
|
||||
descriptorType = uniform_buffer;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
);
|
||||
};
|
||||
lighting_shadow = {
|
||||
bindings = (
|
||||
{
|
||||
binding = 0;
|
||||
descriptorType = combined_image_sampler;
|
||||
descriptorCount = 32;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
);
|
||||
};
|
||||
compose_attach = {
|
||||
bindings = (
|
||||
{
|
||||
binding = 0;
|
||||
descriptorType = input_attachment;
|
||||
descriptorCount = 1;
|
||||
stageFlags = fragment;
|
||||
},
|
||||
);
|
||||
};
|
||||
particle_set = {
|
||||
bindings = (
|
||||
{
|
||||
binding = 0;
|
||||
descriptorType = storage_buffer;
|
||||
descriptorCount = 1;
|
||||
stageFlags = compute;
|
||||
},
|
||||
{
|
||||
binding = 1;
|
||||
descriptorType = storage_buffer;
|
||||
descriptorCount = 1;
|
||||
stageFlags = compute;
|
||||
},
|
||||
{
|
||||
binding = 2;
|
||||
descriptorType = storage_buffer;
|
||||
descriptorCount = 1;
|
||||
stageFlags = compute;
|
||||
},
|
||||
);
|
||||
};
|
||||
};
|
||||
images = {
|
||||
depth = {
|
||||
@inherit = $image_base;
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
qfv_subpass_t,
|
||||
qfv_output_t,
|
||||
|
||||
qfv_descriptorsetinfo_t,
|
||||
qfv_imageinfo_t,
|
||||
qfv_imageviewinfo_t,
|
||||
qfv_dependencyinfo_t,
|
||||
|
@ -587,10 +588,6 @@
|
|||
};
|
||||
qfv_renderpassinfo_s = {
|
||||
.name = qfv_renderpassinfo_t;
|
||||
name = {
|
||||
type = string;
|
||||
string = name;
|
||||
};
|
||||
color = auto;
|
||||
attachments = {
|
||||
type = (labeledarray, qfv_attachmentinfo_t, name);
|
||||
|
@ -604,6 +601,15 @@
|
|||
values = subpasses;
|
||||
};
|
||||
};
|
||||
qfv_descriptorsetinfo_s = {
|
||||
.name = qfv_descriptorsetinfo_t;
|
||||
flags = auto;
|
||||
bindings = {
|
||||
type = (array, VkDescriptorSetLayoutBinding);
|
||||
size = num_bindings;
|
||||
values = bindings;
|
||||
};
|
||||
};
|
||||
qfv_renderinfo_s = {
|
||||
.name = qfv_renderinfo_t;
|
||||
properties = ignore;
|
||||
|
@ -623,6 +629,11 @@
|
|||
size = num_renderpasses;
|
||||
values = renderpasses;
|
||||
};
|
||||
descriptorSetLayouts = {
|
||||
type = (labeledarray, qfv_descriptorsetinfo_t, name);
|
||||
size = num_descriptorsets;
|
||||
values = descriptorsets;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue