2020-07-05 05:59:56 +00:00
|
|
|
{
|
|
|
|
search = (
|
2020-07-16 06:42:49 +00:00
|
|
|
VkAttachmentDescription,
|
|
|
|
VkSubpassDescription,
|
|
|
|
VkSubpassDependency,
|
2020-12-23 16:36:17 +00:00
|
|
|
VkSpecializationInfo,
|
|
|
|
VkPipelineShaderStageCreateInfo,
|
2021-01-04 08:36:11 +00:00
|
|
|
VkPipelineVertexInputStateCreateInfo,
|
|
|
|
VkPipelineInputAssemblyStateCreateInfo,
|
|
|
|
VkPipelineViewportStateCreateInfo,
|
|
|
|
VkPipelineRasterizationStateCreateInfo,
|
|
|
|
VkPipelineMultisampleStateCreateInfo,
|
|
|
|
VkPipelineDepthStencilStateCreateInfo,
|
|
|
|
VkPipelineColorBlendStateCreateInfo,
|
|
|
|
VkPipelineDynamicStateCreateInfo,
|
|
|
|
VkDescriptorSetLayoutBinding,
|
|
|
|
VkDescriptorSetLayoutCreateInfo,
|
|
|
|
VkPushConstantRange,
|
|
|
|
VkPipelineLayoutCreateInfo,
|
2021-01-04 23:38:35 +00:00
|
|
|
VkGraphicsPipelineCreateInfo,
|
2021-01-09 16:53:15 +00:00
|
|
|
VkDescriptorPoolCreateInfo,
|
2021-01-10 06:50:24 +00:00
|
|
|
VkSamplerCreateInfo,
|
2020-07-05 05:59:56 +00:00
|
|
|
);
|
2021-01-04 23:38:35 +00:00
|
|
|
handles = {
|
2021-01-05 05:15:35 +00:00
|
|
|
VkShaderModule = {
|
|
|
|
symtab = shaderModules;
|
|
|
|
class = "shader module";
|
|
|
|
custom = parse_VkShaderModule_resource;
|
|
|
|
};
|
2021-01-09 16:53:15 +00:00
|
|
|
VkDescriptorPool = {
|
|
|
|
symtab = descriptorPools;
|
|
|
|
class = "descriptor pool";
|
|
|
|
create = vkCreateDescriptorPool;
|
|
|
|
};
|
2021-01-04 23:38:35 +00:00
|
|
|
VkDescriptorSetLayout = {
|
|
|
|
symtab = setLayouts;
|
|
|
|
class = "set layout";
|
|
|
|
create = vkCreateDescriptorSetLayout;
|
|
|
|
};
|
|
|
|
VkPipelineLayout = {
|
|
|
|
symtab = pipelineLayouts;
|
|
|
|
class = "pipeline layout";
|
|
|
|
create = vkCreatePipelineLayout;
|
|
|
|
};
|
2021-01-10 06:50:24 +00:00
|
|
|
VkSampler = {
|
|
|
|
symtab = samplers;
|
|
|
|
class = "sampler";
|
|
|
|
create = vkCreateSampler;
|
|
|
|
};
|
2021-01-04 23:38:35 +00:00
|
|
|
};
|
2021-01-05 05:15:35 +00:00
|
|
|
resources = (
|
|
|
|
{
|
|
|
|
name = shaderModules;
|
|
|
|
parse_type = QFString;
|
|
|
|
parser = parse_VkShaderModule_handleref;
|
|
|
|
type = handleref_t;
|
|
|
|
table = shaderModules;
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name = setLayouts;
|
|
|
|
parse_type = QFDictionary;
|
|
|
|
parser = parse_VkDescriptorSetLayout_handleref;
|
|
|
|
type = handleref_t;
|
|
|
|
table = setLayouts;
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name = pipelineLayouts;
|
|
|
|
parse_type = QFDictionary;
|
|
|
|
parser = parse_VkPipelineLayout_handleref;
|
|
|
|
type = handleref_t;
|
|
|
|
table = pipelineLayouts;
|
|
|
|
},
|
2021-01-10 06:50:24 +00:00
|
|
|
{
|
|
|
|
name = descriptorPools;
|
|
|
|
parse_type = QFDictionary;
|
|
|
|
parser = parse_VkDescriptorPool_handleref;
|
|
|
|
type = handleref_t;
|
|
|
|
table = descriptorPools;
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name = samplers;
|
|
|
|
parse_type = QFDictionary;
|
|
|
|
parser = parse_VkSampler_handleref;
|
|
|
|
type = handleref_t;
|
|
|
|
table = samplers;
|
|
|
|
},
|
2021-01-05 05:15:35 +00:00
|
|
|
);
|
2020-07-05 05:59:56 +00:00
|
|
|
parse = {
|
|
|
|
VkSubpassDescription = {
|
|
|
|
flags = auto;
|
|
|
|
pipelineBindPoint = auto;
|
|
|
|
inputAttachments = {
|
|
|
|
type = (array, VkAttachmentReference);
|
|
|
|
size = inputAttachmentCount;
|
|
|
|
values = pInputAttachments;
|
|
|
|
};
|
|
|
|
colorAttachments = {
|
|
|
|
type = (array, VkAttachmentReference);
|
|
|
|
size = colorAttachmentCount;
|
|
|
|
values = pColorAttachments;
|
|
|
|
};
|
|
|
|
resolveAttachments = {
|
|
|
|
type = (array, VkAttachmentReference);
|
|
|
|
values = pResolveAttachments;
|
|
|
|
matchSize = colorAttachments;
|
|
|
|
};
|
|
|
|
depthStencilAttachment = {
|
|
|
|
type = (single, VkAttachmentReference);
|
|
|
|
value = pDepthStencilAttachment;
|
|
|
|
};
|
|
|
|
preserveAttachments = {
|
|
|
|
type = (array, uint32_t);
|
|
|
|
size = preserveAttachmentCount;
|
|
|
|
values = pPreserveAttachments;
|
|
|
|
};
|
2020-12-23 16:36:17 +00:00
|
|
|
};
|
2021-01-04 23:38:35 +00:00
|
|
|
VkRenderPassCreateInfo = {
|
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
|
|
attachments = {
|
|
|
|
type = (array, VkAttachmentDescription);
|
|
|
|
size = attachmentCount;
|
|
|
|
values = pAttachments;
|
|
|
|
};
|
|
|
|
subpasses = {
|
|
|
|
type = (array, VkSubpassDescription);
|
|
|
|
size = subpassCount;
|
|
|
|
values = pSubpasses;
|
|
|
|
};
|
|
|
|
dependencies = {
|
|
|
|
type = (array, VkSubpassDependency);
|
|
|
|
size = dependencyCount;
|
|
|
|
values = pDependencies;
|
|
|
|
};
|
|
|
|
};
|
2020-12-23 16:36:17 +00:00
|
|
|
VkSpecializationInfo = {
|
|
|
|
mapEntries = {
|
|
|
|
type = (array, VkSpecializationMapEntry);
|
|
|
|
size = mapEntryCount;
|
|
|
|
values = pMapEntries;
|
|
|
|
};
|
|
|
|
data = {
|
|
|
|
type = data;
|
|
|
|
size = dataSize;
|
|
|
|
data = pData;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
VkPipelineShaderStageCreateInfo = {
|
2021-01-05 08:43:26 +00:00
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
2020-12-23 16:36:17 +00:00
|
|
|
stage = auto;
|
|
|
|
name = {
|
|
|
|
type = string;
|
|
|
|
string = pName;
|
|
|
|
};
|
|
|
|
module = {
|
2021-01-05 14:42:30 +00:00
|
|
|
type = (custom, QFString, parse_VkShaderModule);
|
|
|
|
fields = (module);
|
2020-12-23 16:36:17 +00:00
|
|
|
};
|
|
|
|
specializationInfo = {
|
|
|
|
type = (single, VkSpecializationInfo);
|
|
|
|
value = pSpecializationInfo;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
VkShaderModuleCreateInfo = skip;
|
2021-01-04 08:36:11 +00:00
|
|
|
VkDescriptorSetLayoutBinding = {
|
|
|
|
binding = auto;
|
|
|
|
descriptorType = auto;
|
|
|
|
descriptorCount = auto;
|
|
|
|
stageFlags = auto;
|
|
|
|
// skip pImmutableSamplers (default to 0) until I know how it works
|
|
|
|
};
|
|
|
|
VkDescriptorSetLayoutCreateInfo = {
|
|
|
|
flags = auto;
|
|
|
|
bindings = {
|
|
|
|
type = (array, VkDescriptorSetLayoutBinding);
|
|
|
|
size = bindingCount;
|
|
|
|
values = pBindings;
|
|
|
|
};
|
|
|
|
};
|
2021-01-09 16:53:15 +00:00
|
|
|
VkDescriptorPoolCreateInfo = {
|
|
|
|
flags = auto;
|
|
|
|
maxSets = auto;
|
|
|
|
bindings = {
|
|
|
|
type = (array, VkDescriptorPoolSize);
|
|
|
|
size = poolSizeCount;
|
|
|
|
values = pPoolSizes;
|
|
|
|
};
|
|
|
|
};
|
2021-01-04 08:36:11 +00:00
|
|
|
VkPipelineVertexInputStateCreateInfo = {
|
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
|
|
bindings = {
|
|
|
|
type = (array, VkVertexInputBindingDescription);
|
|
|
|
size = vertexBindingDescriptionCount;
|
|
|
|
values = pVertexBindingDescriptions;
|
|
|
|
};
|
|
|
|
attributes = {
|
|
|
|
type = (array, VkVertexInputAttributeDescription);
|
|
|
|
size = vertexAttributeDescriptionCount;
|
|
|
|
values = pVertexAttributeDescriptions;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
VkPipelineInputAssemblyStateCreateInfo = {
|
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
|
|
topology = auto;
|
|
|
|
primitiveRestartEnable = auto;
|
|
|
|
};
|
|
|
|
VkPipelineViewportStateCreateInfo = {
|
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
|
|
//FIXME redo as one array
|
|
|
|
viewports = {
|
|
|
|
type = (array, VkViewport);
|
|
|
|
size = viewportCount;
|
|
|
|
values = pViewports;
|
|
|
|
};
|
|
|
|
scissors = {
|
|
|
|
type = (array, VkRect2D);
|
|
|
|
size = scissorCount;
|
|
|
|
values = pScissors;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
VkPipelineRasterizationStateCreateInfo = {
|
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
|
|
depthClampEnable = auto;
|
|
|
|
rasterizerDiscardEnable = auto;
|
|
|
|
polygonMode = auto;
|
|
|
|
cullMode = auto;
|
|
|
|
frontFace = auto;
|
|
|
|
depthBiasEnable = auto;
|
|
|
|
depthBiasConstantFactor = auto;
|
|
|
|
depthBiasClamp = auto;
|
|
|
|
depthBiasSlopeFactor = auto;
|
|
|
|
lineWidth = auto;
|
|
|
|
};
|
|
|
|
VkPipelineMultisampleStateCreateInfo = {
|
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
|
|
rasterizationSamples = auto;
|
|
|
|
sampleShadingEnable = auto;
|
|
|
|
minSampleShading = auto;
|
|
|
|
//pSampleMask = auto; FIXME disabled until correct size is known
|
|
|
|
alphaToCoverageEnable = auto;
|
|
|
|
alphaToOneEnable = auto;
|
|
|
|
};
|
|
|
|
VkPipelineDepthStencilStateCreateInfo = {
|
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
|
|
depthTestEnable = auto;
|
|
|
|
depthWriteEnable = auto;
|
|
|
|
depthCompareOp = auto;
|
|
|
|
depthBoundsTestEnable = auto;
|
|
|
|
stencilTestEnable = auto;
|
|
|
|
front = auto;
|
|
|
|
back = auto;
|
|
|
|
minDepthBounds = auto;
|
|
|
|
maxDepthBounds = auto;
|
|
|
|
};
|
|
|
|
VkPipelineColorBlendStateCreateInfo = {
|
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
|
|
logicOpEnable = auto;
|
|
|
|
logicOp = auto;
|
|
|
|
attachments = {
|
|
|
|
type = (array, VkPipelineColorBlendAttachmentState);
|
|
|
|
size = attachmentCount;
|
|
|
|
values = pAttachments;
|
|
|
|
};
|
|
|
|
blendConstants = {
|
|
|
|
type = (custom, QFString, parse_RGBA);
|
|
|
|
fields = (blendConstants);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
VkPipelineDynamicStateCreateInfo = {
|
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
|
|
dynamicState = {
|
|
|
|
type = (array, VkDynamicState);
|
|
|
|
size = dynamicStateCount;
|
|
|
|
values = pDynamicStates;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
VkPipelineLayoutCreateInfo = {
|
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
|
|
setLayouts = {
|
|
|
|
type = (array, {
|
|
|
|
parse_type = (QFDictionary, QFString);
|
|
|
|
type = VkDescriptorSetLayout;
|
2021-01-05 14:42:30 +00:00
|
|
|
parser = parse_VkDescriptorSetLayout_array;
|
2021-01-04 08:36:11 +00:00
|
|
|
});
|
|
|
|
size = setLayoutCount;
|
|
|
|
values = pSetLayouts;
|
|
|
|
};
|
|
|
|
pushConstantRanges = {
|
|
|
|
type = (array, VkPushConstantRange);
|
|
|
|
size = pushConstantRangeCount;
|
|
|
|
values = pPushConstantRanges;
|
|
|
|
};
|
2021-01-04 23:38:35 +00:00
|
|
|
};
|
|
|
|
VkPipelineTessellationStateCreateInfo = {
|
|
|
|
//flags = auto; reserved for future use (Bits enum does not exist)
|
|
|
|
patchControlPoints = auto;
|
|
|
|
};
|
|
|
|
VkGraphicsPipelineCreateInfo = {
|
|
|
|
flags = auto;
|
|
|
|
stages = {
|
|
|
|
type = (array, VkPipelineShaderStageCreateInfo);
|
|
|
|
size = stageCount;
|
|
|
|
values = pStages;
|
|
|
|
};
|
|
|
|
vertexInput = {
|
|
|
|
type = (single, VkPipelineVertexInputStateCreateInfo);
|
|
|
|
value = pVertexInputState;
|
|
|
|
};
|
|
|
|
inputAssembly = {
|
|
|
|
type = (single, VkPipelineInputAssemblyStateCreateInfo);
|
|
|
|
value = pInputAssemblyState;
|
|
|
|
};
|
|
|
|
tessellation = {
|
|
|
|
type = (single, VkPipelineTessellationStateCreateInfo);
|
|
|
|
value = pTessellationState;
|
|
|
|
};
|
|
|
|
viewport = {
|
|
|
|
type = (single, VkPipelineViewportStateCreateInfo);
|
|
|
|
value = pViewportState;
|
|
|
|
};
|
|
|
|
rasterization = {
|
|
|
|
type = (single, VkPipelineRasterizationStateCreateInfo);
|
|
|
|
value = pRasterizationState;
|
|
|
|
};
|
|
|
|
multisample = {
|
|
|
|
type = (single, VkPipelineMultisampleStateCreateInfo);
|
|
|
|
value = pMultisampleState;
|
|
|
|
};
|
|
|
|
depthStencil = {
|
|
|
|
type = (single, VkPipelineDepthStencilStateCreateInfo);
|
|
|
|
value = pDepthStencilState;
|
|
|
|
};
|
|
|
|
colorBlend = {
|
|
|
|
type = (single, VkPipelineColorBlendStateCreateInfo);
|
|
|
|
value = pColorBlendState;
|
|
|
|
};
|
|
|
|
dynamic = {
|
|
|
|
type = (single, VkPipelineDynamicStateCreateInfo);
|
|
|
|
value = pDynamicState;
|
|
|
|
};
|
|
|
|
layout = {
|
2021-01-05 14:42:30 +00:00
|
|
|
type = (custom, (QFDictionary, QFString),
|
|
|
|
parse_VkPipelineLayout);
|
|
|
|
fields = (layout);
|
2021-01-04 23:38:35 +00:00
|
|
|
};
|
|
|
|
basePipelineHandle = {
|
|
|
|
type = (custom, QFString, parse_BasePipeline);
|
|
|
|
fields = (basePipelineHandle);
|
|
|
|
};
|
|
|
|
basePipelineIndex = auto;
|
2021-01-04 08:36:11 +00:00
|
|
|
}
|
2020-07-05 05:59:56 +00:00
|
|
|
}
|
|
|
|
}
|