mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-27 14:42:07 +00:00
3603fa75cd
It now lives in vulkan_renderpass.c and takes most of its parameters from plist configs (just the name (which is used to find the config), output spec, and draw function from C). Even the debug colors and names are taken from the config.
396 lines
10 KiB
Text
396 lines
10 KiB
Text
{
|
|
search = (
|
|
VkAttachmentDescription,
|
|
VkDebugUtilsMessageSeverityFlagBitsEXT,
|
|
VkPresentModeKHR,
|
|
VkSubpassDescription,
|
|
VkSubpassDependency,
|
|
VkSpecializationInfo,
|
|
VkPipelineShaderStageCreateInfo,
|
|
VkPipelineVertexInputStateCreateInfo,
|
|
VkPipelineInputAssemblyStateCreateInfo,
|
|
VkPipelineViewportStateCreateInfo,
|
|
VkPipelineRasterizationStateCreateInfo,
|
|
VkPipelineMultisampleStateCreateInfo,
|
|
VkPipelineDepthStencilStateCreateInfo,
|
|
VkPipelineColorBlendStateCreateInfo,
|
|
VkPipelineDynamicStateCreateInfo,
|
|
VkDescriptorSetLayoutBinding,
|
|
VkDescriptorSetLayoutCreateInfo,
|
|
VkPushConstantRange,
|
|
VkPipelineLayoutCreateInfo,
|
|
VkGraphicsPipelineCreateInfo,
|
|
VkComputePipelineCreateInfo,
|
|
VkDescriptorPoolCreateInfo,
|
|
VkSamplerCreateInfo,
|
|
VkImageCreateInfo,
|
|
VkImageViewCreateInfo,
|
|
VkFramebufferCreateInfo,
|
|
VkClearValue,
|
|
VkPhysicalDeviceLimits,
|
|
VkRenderPassCreateInfo,
|
|
VkRenderPassMultiviewCreateInfo,
|
|
|
|
qfv_subpass_t,
|
|
);
|
|
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 = (custom, (QFBinary, QFString),
|
|
parse_specialization_data);
|
|
fields = (dataSize, 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);
|
|
};
|
|
renderPass = {
|
|
type = (custom, QFString, parse_VkRenderPass);
|
|
fields = (renderPass);
|
|
};
|
|
subpass = auto;
|
|
basePipelineHandle = {
|
|
type = (custom, QFString, parse_BasePipeline);
|
|
fields = (basePipelineHandle);
|
|
};
|
|
basePipelineIndex = auto;
|
|
};
|
|
VkComputePipelineCreateInfo = {
|
|
flags = auto;
|
|
stage = auto;
|
|
layout = {
|
|
type = (custom, QFString, parse_VkPipelineLayout);
|
|
fields = (layout);
|
|
};
|
|
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;
|
|
};
|
|
VkRenderPassMultiviewCreateInfo = {
|
|
viewMasks = {
|
|
type = (array, uint32_t);
|
|
size = subpassCount;
|
|
values = pViewMasks;
|
|
};
|
|
viewOffsets = {
|
|
type = (array, int32_t);
|
|
size = dependencyCount;
|
|
values = pViewOffsets;
|
|
};
|
|
correlationMasks = {
|
|
type = (array, uint32_t);
|
|
size = correlationMaskCount;
|
|
values = pCorrelationMasks;
|
|
};
|
|
};
|
|
|
|
qfv_subpass_s = {
|
|
.name = qfv_subpass_t;
|
|
color = {
|
|
type = (custom, QFString, parse_RGBA);
|
|
fields = (color);
|
|
};
|
|
name = {
|
|
type = string;
|
|
string = name;
|
|
};
|
|
};
|
|
};
|
|
}
|