quakeforge/libs/video/renderer/vulkan/vkparse.plist
Bill Currie 2334798432 [vulkan] Make vulkan_use_validation easier more useful
Rather than just 0/1, it now acts as flags to control what messages are
printed. In addition to the Vulkan enum names (long and short), none and
all are supported (as well as raw numbers, but they're not checked for
validity). This makes vulkan_use_validation a bit easier to use and less
verbose by default.

Now, if only it was easier to remember the name :P
2021-11-30 18:10:48 +09:00

343 lines
9 KiB
Text

{
search = (
VkAttachmentDescription,
VkDebugUtilsMessageSeverityFlagBitsEXT,
VkSubpassDescription,
VkSubpassDependency,
VkSpecializationInfo,
VkPipelineShaderStageCreateInfo,
VkPipelineVertexInputStateCreateInfo,
VkPipelineInputAssemblyStateCreateInfo,
VkPipelineViewportStateCreateInfo,
VkPipelineRasterizationStateCreateInfo,
VkPipelineMultisampleStateCreateInfo,
VkPipelineDepthStencilStateCreateInfo,
VkPipelineColorBlendStateCreateInfo,
VkPipelineDynamicStateCreateInfo,
VkDescriptorSetLayoutBinding,
VkDescriptorSetLayoutCreateInfo,
VkPushConstantRange,
VkPipelineLayoutCreateInfo,
VkGraphicsPipelineCreateInfo,
VkDescriptorPoolCreateInfo,
VkSamplerCreateInfo,
VkImageCreateInfo,
VkImageViewCreateInfo,
VkFramebufferCreateInfo,
VkClearValue,
);
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;
};
};
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;
};
};
VkSpecializationInfo = {
mapEntries = {
type = (array, VkSpecializationMapEntry);
size = mapEntryCount;
values = pMapEntries;
};
data = {
type = data;
size = dataSize;
data = pData;
};
};
VkPipelineShaderStageCreateInfo = {
//flags = auto; reserved for future use (Bits enum does not exist)
stage = auto;
name = {
type = string;
string = pName;
};
module = {
type = (custom, QFString, parse_VkShaderModule);
fields = (module);
};
specializationInfo = {
type = (single, VkSpecializationInfo);
value = pSpecializationInfo;
};
};
VkShaderModuleCreateInfo = skip;
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;
};
};
VkDescriptorPoolCreateInfo = {
flags = auto;
maxSets = auto;
bindings = {
type = (array, VkDescriptorPoolSize);
size = poolSizeCount;
values = pPoolSizes;
};
};
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;
parser = parse_VkDescriptorSetLayout;
});
size = setLayoutCount;
values = pSetLayouts;
};
pushConstantRanges = {
type = (array, VkPushConstantRange);
size = pushConstantRangeCount;
values = pPushConstantRanges;
};
};
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 = {
type = (custom, QFString, parse_VkPipelineLayout);
fields = (layout);
};
subpass = auto;
basePipelineHandle = {
type = (custom, QFString, parse_BasePipeline);
fields = (basePipelineHandle);
};
basePipelineIndex = auto;
};
VkImageCreateInfo = {
flags = auto;
imageType = auto;
format = auto;
extent = auto;
mipLevels = auto;
arrayLayers = auto;
samples = auto;
tiling = auto;
usage = auto;
sharingMode = skip; // FIXME for now
queueFamilyIndexCount = skip; // FIXME for now
pQueueFamilyIndices = skip; // FIXME for now
initialLayout = auto;
};
VkImageViewCreateInfo = {
flags = auto;
image = {
type = (custom, (QFDictionary, QFString),
parse_VkImage);
fields = (image);
};
viewType = auto;
format = auto;
components = auto;
subresourceRange = auto;
};
VkFramebufferCreateInfo = {
//flags = auto; reserved for future use (Bits enum does not exist)
renderPass = {
type = (custom, QFString, parse_VkRenderPass);
fields = (renderPass);
};
attachments = {
type = (array, VkImageView);
size = attachmentCount;
values = pAttachments;
};
width = auto;
height = auto;
layers = auto;
};
VkClearColorValue = skip;
VkClearValue = {
color = {
type = (custom, QFString, parse_RGBA);
fields = (color);
};
depthStencil = auto;
};
}
}