It is legal for a subpass to use no color or depth/stencil attachments, either because it has no attachment references or because all of them are ATTACHMENT_UNUSED. This kind of subpass can use shader side effects such as image stores and atomics to produce an output. In this case, the subpass continues to use the width, height, and layers of the framebuffer to define the dimensions of the rendering area, and the rasterizationSamples from each pipeline’s VkPipelineMultisampleStateCreateInfo to define the number of samples used in rasterization; however, if VkPhysicalDeviceFeatures::variableMultisampleRate is FALSE, then all pipelines to be bound with the subpass must have the same value for VkPipelineMultisampleStateCreateInfo::rasterizationSamples. In all such cases, rasterizationSamples must be a bit value that is set in VkPhysicalDeviceLimits::framebufferNoAttachmentsSampleCounts.
attachmentCount must be equal to the attachment count specified in renderPassflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT and attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handlesflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a color attachment or resolve attachment by renderPass must have been created with a usage value including IMAGE_USAGE_COLOR_ATTACHMENT_BITflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil attachment by renderPass must have been created with a usage value including IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil resolve attachment by renderPass must have been created with a usage value including IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITrenderpass is not NULL_HANDLE, flags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input attachment by renderPass must have been created with a usage value including IMAGE_USAGE_INPUT_ATTACHMENT_BITpAttachments that is used as a fragment density map attachment by renderPass must not have been created with a flags value including IMAGE_CREATE_SUBSAMPLED_BIT_EXTrenderPass has a fragment density map attachment and the fragmentDensityMapNonSubsampledImages feature is not enabled, each element of pAttachments must have been created with a flags value including IMAGE_CREATE_SUBSAMPLED_BIT_EXT unless that element is the fragment density map attachmentrenderPass was created with fragment density map offsets other than (0,0), each element of pAttachments must have been created with a flags value including IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOMflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a VkFormat value that matches the VkFormat specified by the corresponding VkAttachmentDescription in renderPassflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a samples value that matches the samples value specified by the corresponding VkAttachmentDescription in renderPassflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageCreateInfo::extent.width greater than or equal to widthflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageCreateInfo::extent.height greater than or equal to heightflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageViewCreateInfo::subresourceRange.layerCount greater than or equal to layersrenderPass was specified with non-zero view masks, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have a layerCount greater than the index of the most significant bit set in any of those view masksrenderPass was specified with non-zero view masks, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masksrenderPass was specified with all view masks equal to zero, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1flags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a width at least as large as ceil(width / maxFragmentDensityTexelSizewidth)flags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a height at least as large as ceil(height / maxFragmentDensityTexelSizeheight)flags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masksflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, and renderPass was not specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than layersrenderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment must have a layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masksflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is used as a fragment shading rate attachment must have a width at least as large as ⌈width / texelWidth⌉, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachmentflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is used as a fragment shading rate attachment must have a height at least as large as ⌈height / texelHeight⌉, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachmentflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must only specify a single mip levelflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with the identity swizzlewidth must be greater than 0width must be less than or equal to maxFramebufferWidthheight must be greater than 0height must be less than or equal to maxFramebufferHeightlayers must be greater than 0layers must be less than or equal to maxFramebufferLayersrenderPass was specified with non-zero view masks, layers must be 1flags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is a 2D or 2D array image view taken from a 3D image must not be a depth/stencil formatimagelessFramebuffer feature is not enabled, flags must not include FRAMEBUFFER_CREATE_IMAGELESS_BITflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the pNext chain must include a VkFramebufferAttachmentsCreateInfo structureflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentImageInfoCount member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain must be equal to either zero or attachmentCountflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to widthflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in renderPass must be greater than or equal to heightflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to ceil(width / maxFragmentDensityTexelSizewidth)flags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to ceil(height / maxFragmentDensityTexelSizeheight)flags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to ⌈width / texelWidth⌉, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachmentflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to ⌈height / texelHeight⌉, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachmentflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure in the pNext chain that is used as a fragment shading rate attachment must be either 1, or greater than or equal to layersflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masksrenderPass and flags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in renderPass must be greater than the maximum bit index set in the view mask in the subpasses in which it is used in renderPassrenderPass and flags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in renderPass must be greater than or equal to layersflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a color attachment or resolve attachment by renderPass must include IMAGE_USAGE_COLOR_ATTACHMENT_BITflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil attachment by renderPass must include IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil resolve attachment by renderPass must include IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as an input attachment by renderPass must include IMAGE_USAGE_INPUT_ATTACHMENT_BITflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, at least one element of the pViewFormats member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be equal to the corresponding value of VkAttachmentDescription::format used to create renderPassflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to IMAGE_VIEW_TYPE_3Dflags does not include FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have been created with a usage value including IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRflags includes FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a fragment shading rate attachment by renderPass must include IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRVkAttachmentDescription::samples or VkAttachmentDescription2::samples equal to SAMPLE_COUNT_1_BIT must have been created with IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT in their VkImageCreateInfo::flagsVkAttachmentDescription::samples or VkAttachmentDescription2::samples equal to SAMPLE_COUNT_1_BIT must have a format that supports the sample count specified in VkMultisampledRenderToSingleSampledInfoEXT::rasterizationSamplessType must be STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFOpNext must be NULL or a pointer to a valid instance of VkFramebufferAttachmentsCreateInfosType value of each struct in the pNext chain must be uniqueflags must be a valid combination of VkFramebufferCreateFlagBits valuesrenderPass must be a valid VkRenderPass handlerenderPass, and the elements of pAttachments that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice
struct VkFramebufferCreateInfo {
VkStructureType sType;
void const * pNext;
VkFramebufferCreateFlags flags;
VkRenderPass renderPass;
uint32_t attachmentCount;
VkImageView const * pAttachments;
uint32_t width;
uint32_t height;
uint32_t layers;
}
| Modifier and Type | Class and Description |
|---|---|
| public static class | VkFramebufferCreateInfo.
An array of |
| Modifier and Type | Field and Description |
|---|---|
| public static final int | ALIGNOF
The struct alignment in bytes. |
| public static final int | ATTACHMENTCOUNT
The struct member offsets. |
| public static final int | FLAGS
The struct member offsets. |
| public static final int | HEIGHT
The struct member offsets. |
| public static final int | LAYERS
The struct member offsets. |
| public static final int | PATTACHMENTS
The struct member offsets. |
| public static final int | PNEXT
The struct member offsets. |
| public static final int | RENDERPASS
The struct member offsets. |
| public static final int | SIZEOF
The struct size in bytes. |
| public static final int | STYPE
The struct member offsets. |
| public static final int | WIDTH
The struct member offsets. |
| Access | Constructor and Description |
|---|---|
| protected | |
| public | VkFramebufferCreateInfo(ByteBuffer container)
Creates a |
| Modifier and Type | Method and Description |
|---|---|
| public int | |
| public VkFramebufferCreateInfo | |
| public static VkFramebufferCreateInfo | |
| public static VkFramebufferCreateInfo. | calloc(int
the buffer capacity capacity)Returns a new |
| public static VkFramebufferCreateInfo | calloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkFramebufferCreateInfo. | calloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static VkFramebufferCreateInfo | |
| public static VkFramebufferCreateInfo | |
| public static VkFramebufferCreateInfo. | |
| public static VkFramebufferCreateInfo. | |
| protected VkFramebufferCreateInfo | create(long
the struct memory address address, ByteBuffer an optional container buffer, to be referenced strongly by the struct instance. container)Implements abstract org. the constructor, but returns the exact type of the Struct subclass.
|
| public static VkFramebufferCreateInfo | |
| public static VkFramebufferCreateInfo | create(long address)
Returns a new |
| public static VkFramebufferCreateInfo. | create(int
the buffer capacity capacity)Returns a new |
| public static VkFramebufferCreateInfo. | create(long
the memory address address, int the buffer capacity capacity)Create a |
| public static VkFramebufferCreateInfo | |
| public static VkFramebufferCreateInfo. | |
| public int | |
| public VkFramebufferCreateInfo | |
| public int | |
| public VkFramebufferCreateInfo | |
| public int | |
| public VkFramebufferCreateInfo | |
| public static VkFramebufferCreateInfo | |
| public static VkFramebufferCreateInfo. | malloc(int
the buffer capacity capacity)Returns a new |
| public static VkFramebufferCreateInfo | malloc(MemoryStack
the stack from which to allocate stack)Returns a new |
| public static VkFramebufferCreateInfo. | malloc(int
the buffer capacity capacity, MemoryStack the stack from which to allocate stack)Returns a new |
| public static VkFramebufferCreateInfo | |
| public static VkFramebufferCreateInfo | |
| public static VkFramebufferCreateInfo. | |
| public static VkFramebufferCreateInfo. | |
| public static int | |
| public static void | nattachmentCount(long struct, int value)
Sets the specified value to the |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public static LongBuffer | |
| public static void | |
| public static long | |
| public static void | |
| public static long | |
| public static void | |
| public static int | |
| public static void | |
| public static int | |
| public static void | |
| public LongBuffer | pAttachments()
a pointer to an array of |
| public VkFramebufferCreateInfo | pAttachments(LongBuffer value)
Sets the address of the specified |
| public long | |
| public VkFramebufferCreateInfo | |
| public VkFramebufferCreateInfo | pNext(VkFramebufferAttachmentsCreateInfo value)
Prepends the specified |
| public VkFramebufferCreateInfo | pNext(VkFramebufferAttachmentsCreateInfoKHR value)
Prepends the specified |
| public long | |
| public VkFramebufferCreateInfo | |
| public VkFramebufferCreateInfo | set(int sType, long pNext, int flags, long renderPass, int attachmentCount, LongBuffer pAttachments, int width, int height, int layers)
Initializes this struct with the specified values. |
| public VkFramebufferCreateInfo | Returns: this structthe source struct src)Copies the specified struct data to this struct. |
| public int | |
| public int | |
| public VkFramebufferCreateInfo | |
| public VkFramebufferCreateInfo | |
| public int | |
| public VkFramebufferCreateInfo |