Change log for July 7, 2019 Vulkan 1.1.114 spec update:

* Update release number to 114.

Internal Issues:

  * Fix extension appendix for `<<VK_INTEL_performance_query>>` to remove
    duplicate citation of ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
    (internal merge request 3234).

New Extensions:

  * `<<VK_KHR_imageless_framebuffer>>`
This commit is contained in:
Jon Leech 2019-07-07 20:11:14 -07:00
parent 8897c572ce
commit 7eb07044df
7 changed files with 554 additions and 39 deletions

View File

@ -8,6 +8,22 @@ public pull requests that have been accepted.
-----------------------------------------------------
Change log for July 7, 2019 Vulkan 1.1.114 spec update:
* Update release number to 114.
Internal Issues:
* Fix extension appendix for `<<VK_INTEL_performance_query>>` to remove
duplicate citation of ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
(internal merge request 3234).
New Extensions:
* `<<VK_KHR_imageless_framebuffer>>`
-----------------------------------------------------
Change log for June 30, 2019 Vulkan 1.1.113 spec update:
* Update release number to 113.

View File

@ -121,7 +121,7 @@ VERBOSE =
# ADOCOPTS options for asciidoc->HTML5 output
NOTEOPTS = -a editing-notes -a implementation-guide
PATCHVERSION = 113
PATCHVERSION = 114
ifneq (,$(findstring VK_VERSION_1_1,$(VERSIONS)))
SPECREVISION = 1.1.$(PATCHVERSION)
else

View File

@ -30,7 +30,6 @@ metrics-discovery library to present the data in a human readable way.
** ename:VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL
** ename:VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL
** ename:VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL
** ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL
* Extending elink:VkQueryType:
** ename:VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL

View File

@ -0,0 +1,43 @@
// Copyright (c) 2016-2019 Khronos Group. This work is licensed under a
// Creative Commons Attribution 4.0 International License; see
// http://creativecommons.org/licenses/by/4.0/
include::meta/VK_KHR_imageless_framebuffer.txt[]
Last Modified Date::
2018-12-14
Contributors::
- Tobias Hector
- Graham Wihlidal
This extension allows framebuffers to be created without the need for
creating images first, allowing more flexibility in how they are used, and
avoiding the need for many of the confusing compatibility rules.
Framebuffers are now created with a small amount of additional metadata
about the image views that will be used in
slink:VkFramebufferAttachmentsCreateInfoKHR, and the actual image views are
provided at render pass begin time via
slink:VkRenderPassAttachmentBeginInfoKHR.
=== New Enum Constants
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR
** ename:VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR
** ename:VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR
** ename:VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR
* Extending elink:VkFramebufferCreateFlagBits:
** ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
=== New Structures
* slink:VkPhysicalDeviceImagelessFramebufferFeaturesKHR
* slink:VkFramebufferAttachmentsCreateInfoKHR
* slink:VkFramebufferAttachmentImageInfoKHR
* slink:VkRenderPassAttachmentBeginInfoKHR
=== Version History
* Revision 1, 2018-12-14 (Tobias Hector)
- Internal revisions

View File

@ -1995,6 +1995,34 @@ include::{generated}/validity/structs/VkPhysicalDeviceDedicatedAllocationImageAl
endif::VK_NV_dedicated_allocation_image_aliasing[]
ifdef::VK_KHR_imageless_framebuffer[]
[open,refpage='VkPhysicalDeviceImagelessFramebufferFeaturesKHR',desc='Structure indicating support for imageless framebuffers',type='structs']
--
The sname:VkPhysicalDeviceImagelessFramebufferFeaturesKHR structure is
defined as:
include::{generated}/api/structs/VkPhysicalDeviceImagelessFramebufferFeaturesKHR.txt[]
The members of the sname:VkPhysicalDeviceImagelessFramebufferFeaturesKHR
structure describe the following features:
* [[features-imagelessFramebuffer]] pname:imagelessFramebuffer indicates
that the implementation supports specifying the image view for
attachments at render pass begin time via
slink:VkRenderPassAttachmentBeginInfoKHR.
If the sname:VkPhysicalDeviceImagelessFramebufferFeaturesKHR structure is
included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2KHR, it
is filled with values indicating whether the feature is supported.
sname:VkPhysicalDeviceImagelessFramebufferFeaturesKHR can: also be used in
the pname:pNext chain of slink:VkDeviceCreateInfo to enable this feature.
include::{generated}/validity/structs/VkPhysicalDeviceImagelessFramebufferFeaturesKHR.txt[]
--
endif::VK_KHR_imageless_framebuffer[]
ifdef::VK_EXT_fragment_shader_interlock[]
[open,refpage='VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT',desc='Structure describing fragment shader interlock features that can be supported by an implementation',type='structs']

View File

@ -2297,7 +2297,7 @@ include::{generated}/api/structs/VkFramebufferCreateInfo.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:flags is reserved for future use.
* pname:flags is a bitmask of elink:VkFramebufferCreateFlagBits
* pname:renderPass is a render pass that defines what render passes the
framebuffer will be compatible with.
See <<renderpass-compatibility,Render Pass Compatibility>> for details.
@ -2305,6 +2305,10 @@ include::{generated}/api/structs/VkFramebufferCreateInfo.txt[]
* pname:pAttachments is an array of slink:VkImageView handles, each of
which will be used as the corresponding attachment in a render pass
instance.
ifdef::VK_KHR_imageless_framebuffer[]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
this parameter is ignored.
endif::VK_KHR_imageless_framebuffer[]
* pname:width, pname:height and pname:layers define the dimensions of the
framebuffer.
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
@ -2371,24 +2375,30 @@ slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples.
pname:attachmentCount must: be equal to the attachment count specified
in pname:renderPass
* [[VUID-VkFramebufferCreateInfo-pAttachments-00877]]
Each element of pname:pAttachments that is used as a color attachment or
resolve attachment by pname:renderPass must: have been created with a
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
pname:pAttachments that is used as a color attachment or resolve
attachment by pname:renderPass must: have been created with a
pname:usage value including ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
* [[VUID-VkFramebufferCreateInfo-pAttachments-02633]]
Each element of pname:pAttachments that is used as a depth/stencil
attachment by pname:renderPass must: have been created with a
pname:usage value including
ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
pname:pAttachments that is used as a depth/stencil attachment by
pname:renderPass must: have been created with a pname:usage value
including ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
ifdef::VK_KHR_depth_stencil_resolve[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-02634]]
Each element of pname:pAttachments that is used as a depth/stencil
resolve attachment by pname:renderPass must: have been created with a
pname:usage value including
ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
pname:pAttachments that is used as a depth/stencil resolve attachment by
pname:renderPass must: have been created with a pname:usage value
including ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
endif::VK_KHR_depth_stencil_resolve[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-00879]]
Each element of pname:pAttachments that is used as an input attachment
by pname:renderPass must: have been created with a pname:usage value
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
pname:pAttachments that is used as an input attachment by
pname:renderPass must: have been created with a pname:usage value
including ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
ifdef::VK_EXT_fragment_density_map[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-02552]]
@ -2403,17 +2413,23 @@ ifdef::VK_EXT_fragment_density_map[]
unless that element is the fragment density map attachment.
endif::VK_EXT_fragment_density_map[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-00880]]
Each element of pname:pAttachments must: have been created with an
elink:VkFormat value that matches the elink:VkFormat specified by the
corresponding sname:VkAttachmentDescription in pname:renderPass
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
pname:pAttachments must: have been created with an elink:VkFormat value
that matches the elink:VkFormat specified by the corresponding
sname:VkAttachmentDescription in pname:renderPass
* [[VUID-VkFramebufferCreateInfo-pAttachments-00881]]
Each element of pname:pAttachments must: have been created with a
pname:samples value that matches the pname:samples value specified by
the corresponding sname:VkAttachmentDescription in pname:renderPass
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
pname:pAttachments must: have been created with a pname:samples value
that matches the pname:samples value specified by the corresponding
sname:VkAttachmentDescription in pname:renderPass
ifndef::VK_EXT_fragment_density_map[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-00882]]
Each element of pname:pAttachments must: have dimensions at least as
large as the corresponding framebuffer dimension
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
pname:pAttachments must: have dimensions at least as large as the
corresponding framebuffer dimension
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-renderPass-02743]]
If pname:renderPass was specified with non-zero view masks, each element
@ -2423,9 +2439,11 @@ endif::VK_VERSION_1_1,VK_KHR_multiview[]
endif::VK_EXT_fragment_density_map[]
ifdef::VK_EXT_fragment_density_map[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-02554]]
Each element of pname:pAttachments must: have dimensions at least as
large as the corresponding framebuffer dimension except for any element
that is referenced by pname:fragmentDensityMapAttachment
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
pname:pAttachments must: have dimensions at least as large as the
corresponding framebuffer dimension except for any element that is
referenced by pname:fragmentDensityMapAttachment
ifndef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-02744]]
An element of pname:pAttachments that is referenced by
@ -2452,21 +2470,28 @@ ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
to `1`
endif::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-02555]]
An element of pname:pAttachments that is referenced by
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, an element of
pname:pAttachments that is referenced by
pname:fragmentDensityMapAttachment must: have a width at least as large
as
latexmath:[\lceil{\frac{width}{maxFragmentDensityTexelSize_{width}}}\rceil]
* [[VUID-VkFramebufferCreateInfo-pAttachments-02556]]
An element of pname:pAttachments that is referenced by
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, an element of
pname:pAttachments that is referenced by
pname:fragmentDensityMapAttachment must: have a height at least as large
as
latexmath:[\lceil{\frac{height}{maxFragmentDensityTexelSize_{height}}}\rceil]
endif::VK_EXT_fragment_density_map[]
* [[VUID-VkFramebufferCreateInfo-pAttachments-00883]]
Each element of pname:pAttachments must: only specify a single mip level
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
pname:pAttachments must: only specify a single mip level
* [[VUID-VkFramebufferCreateInfo-pAttachments-00884]]
Each element of pname:pAttachments must: have been created with the
identity swizzle
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of
pname:pAttachments must: have been created with the identity swizzle
* [[VUID-VkFramebufferCreateInfo-width-00885]]
pname:width must: be greater than `0`.
* [[VUID-VkFramebufferCreateInfo-width-00886]]
@ -2492,19 +2517,231 @@ ifdef::VK_VERSION_1_1,VK_KHR_maintenance1[]
Each element of pname:pAttachments that is a 2D or 2D array image view
taken from a 3D image must: not be a depth/stencil format
endif::VK_VERSION_1_1,VK_KHR_maintenance1[]
* [[VUID-VkFramebufferCreateInfo-flags-03188]]
If pname:flags does not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, and pname:attachmentCount
is not 0, pname:pAttachments must: be a valid pointer to an array of
pname:attachmentCount valid slink:VkImageView handles
ifdef::VK_KHR_imageless_framebuffer[]
* [[VUID-VkFramebufferCreateInfo-flags-03189]]
If the <<features-imagelessFramebuffer, imageless framebuffer>> feature
is not enabled, pname:flags must: not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR
* [[VUID-VkFramebufferCreateInfo-flags-03190]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:pNext chain must: include an instance of
slink:VkFramebufferAttachmentsCreateInfoKHR
* [[VUID-VkFramebufferCreateInfo-flags-03191]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:attachmentImageInfoCount member of an instance of
slink:VkFramebufferAttachmentsCreateInfoKHR in the pname:pNext chain
must: be equal to either zero or pname:attachmentCount
ifndef::VK_EXT_fragment_density_map[]
* [[VUID-VkFramebufferCreateInfo-flags-03192]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:width member of any element of the pname:pAttachmentImageInfos
member of an instance of slink:VkFramebufferAttachmentsCreateInfoKHR in
the pname:pNext chain must: be greater than or equal to pname:width
* [[VUID-VkFramebufferCreateInfo-flags-03193]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:height member of any element of the
pname:pAttachmentImageInfos member of an instance of
slink:VkFramebufferAttachmentsCreateInfoKHR in the pname:pNext chain
must: be greater than or equal to pname:height
endif::VK_EXT_fragment_density_map[]
ifdef::VK_EXT_fragment_density_map[]
* [[VUID-VkFramebufferCreateInfo-flags-03194]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:width member of any element of the pname:pAttachmentImageInfos
member of an instance of slink:VkFramebufferAttachmentsCreateInfoKHR in
the pname:pNext chain must: be greater than or equal to pname:width,
except for any element that is referenced by
slink:VkRenderPassFragmentDensityMapCreateInfoEXT::pname:fragmentDensityMapAttachment
in pname:renderPass
* [[VUID-VkFramebufferCreateInfo-flags-03195]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:height member of any element of the
pname:pAttachmentImageInfos member of an instance of
slink:VkFramebufferAttachmentsCreateInfoKHR in the pname:pNext chain
must: be greater than or equal to pname:height, except for any element
that is referenced by
slink:VkRenderPassFragmentDensityMapCreateInfoEXT::pname:fragmentDensityMapAttachment
in pname:renderPass
* [[VUID-VkFramebufferCreateInfo-flags-03196]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:width member of any element of the pname:pAttachmentImageInfos
member of an instance of slink:VkFramebufferAttachmentsCreateInfoKHR in
the pname:pNext chain that is referenced by
slink:VkRenderPassFragmentDensityMapCreateInfoEXT::pname:fragmentDensityMapAttachment
in pname:renderPass must: be greater than or equal to
latexmath:[\lceil{\frac{width}{maxFragmentDensityTexelSize_{width}}}\rceil]
* [[VUID-VkFramebufferCreateInfo-flags-03197]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:height member of any element of the
pname:pAttachmentImageInfos member of an instance of
slink:VkFramebufferAttachmentsCreateInfoKHR in the pname:pNext chain
that is referenced by
slink:VkRenderPassFragmentDensityMapCreateInfoEXT::pname:fragmentDensityMapAttachment
in pname:renderPass must: be greater than or equal to
latexmath:[\lceil{\frac{height}{maxFragmentDensityTexelSize_{height}}}\rceil]
endif::VK_EXT_fragment_density_map[]
ifdef::VK_VERSION_1_1,VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-renderPass-03198]]
If multiview is enabled for pname:renderPass, and pname:flags includes
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, the pname:layerCount
member of any element of the pname:pAttachmentImageInfos member of an
instance of slink:VkFramebufferAttachmentsCreateInfoKHR in the
pname:pNext chain must: be greater than the maximum bit index set in the
view mask in the subpasses in which it is used in pname:renderPass
* [[VUID-VkFramebufferCreateInfo-renderPass-03199]]
If multiview is not enabled for pname:renderPass, and pname:flags
includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, the
pname:layerCount member of any element of the
pname:pAttachmentImageInfos member of an instance of
slink:VkFramebufferAttachmentsCreateInfoKHR in the pname:pNext chain
must: be greater than or equal to pname:layers
endif::VK_VERSION_1_1,VK_KHR_multiview[]
ifndef::VK_VERSION_1_1+VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-flags-03200]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:layerCount member of any element of the
pname:pAttachmentImageInfos member of an instance of
slink:VkFramebufferAttachmentsCreateInfoKHR in the pname:pNext chain
must: be greater than or equal to pname:layers
endif::VK_VERSION_1_1+VK_KHR_multiview[]
* [[VUID-VkFramebufferCreateInfo-flags-03201]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:usage member of any element of the pname:pAttachmentImageInfos
member of an instance of slink:VkFramebufferAttachmentsCreateInfoKHR in
the pname:pNext chain that refers to an attachment used as a color
attachment or resolve attachment by pname:renderPass must: include
ename:VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
* [[VUID-VkFramebufferCreateInfo-flags-03202]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:usage member of any element of the pname:pAttachmentImageInfos
member of an instance of slink:VkFramebufferAttachmentsCreateInfoKHR in
the pname:pNext chain that refers to an attachment used as a
depth/stencil attachment by pname:renderPass must: include
ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
ifdef::VK_KHR_depth_stencil_resolve[]
* [[VUID-VkFramebufferCreateInfo-flags-03203]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:usage member of any element of the pname:pAttachmentImageInfos
member of an instance of slink:VkFramebufferAttachmentsCreateInfoKHR in
the pname:pNext chain that refers to an attachment used as a
depth/stencil resolve attachment by pname:renderPass must: include
ename:VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT
endif::VK_KHR_depth_stencil_resolve[]
* [[VUID-VkFramebufferCreateInfo-flags-03204]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
the pname:usage member of any element of the pname:pAttachmentImageInfos
member of an instance of slink:VkFramebufferAttachmentsCreateInfoKHR in
the pname:pNext chain that refers to an attachment used as an input
attachment by pname:renderPass must: include
ename:VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
* [[VUID-VkFramebufferCreateInfo-flags-03205]]
If pname:flags includes ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR,
at least one element of the pname:pViewFormats member of any element of
the pname:pAttachmentImageInfos member of an instance of
slink:VkFramebufferAttachmentsCreateInfoKHR in the pname:pNext chain
must: be equal to the corresponding value of
slink:VkAttachmentDescription::pname:format used to create
pname:renderPass
endif::VK_KHR_imageless_framebuffer[]
****
include::{generated}/validity/structs/VkFramebufferCreateInfo.txt[]
--
[open,refpage='VkFramebufferCreateFlags',desc='Reserved for future use',type='flags']
ifdef::VK_KHR_imageless_framebuffer[]
[open,refpage='VkFramebufferAttachmentsCreateInfoKHR',desc='Structure specifying parameters of images that will be used with a framebuffer',type='structs']
--
The sname:VkFramebufferAttachmentsCreateInfoKHR structure is defined as:
include::{generated}/api/structs/VkFramebufferAttachmentsCreateInfoKHR.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:attachmentImageInfoCount is the number of attachments being
described.
* pname:pAttachmentImageInfos is an array of
slink:VkFramebufferAttachmentImageInfoKHR instances, each of which
describes a number of parameters of the corresponding attachment in a
render pass instance.
include::{generated}/validity/structs/VkFramebufferAttachmentsCreateInfoKHR.txt[]
--
[open,refpage='VkFramebufferAttachmentImageInfoKHR',desc='Structure specifying parameters of an image that will be used with a framebuffer',type='structs']
--
The sname:VkFramebufferAttachmentImageInfoKHR structure is defined as:
include::{generated}/api/structs/VkFramebufferAttachmentImageInfoKHR.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:flags is a bitmask of elink:VkImageCreateFlagBits, matching the
value of slink:VkImageCreateInfo::pname:flags used to create an image
that will be used with this framebuffer.
* pname:usage is a bitmask of elink:VkImageUsageFlagBits, matching the
value of slink:VkImageCreateInfo::pname:usage used to create an image
used with this framebuffer.
* pname:width is the width of the image view used for rendering.
* pname:height is the height of the image view used for rendering.
* pname:viewFormatCount is the number of entries in the pname:pViewFormats
array, matching the value of
slink:VkImageFormatListCreateInfoKHR::pname:viewFormatCount used to
create an image used with this framebuffer.
* pname:pViewFormats is an array which lists of all formats which can: be
used when creating views of the image, matching the value of
slink:VkImageFormatListCreateInfoKHR::pViewFormats used to create an
image used with this framebuffer.
Images that can: be used with the framebuffer when beginning a render pass,
as specified by slink:VkRenderPassAttachmentBeginInfoKHR, must: be created
with parameters that are identical to those specified here.
include::{generated}/validity/structs/VkFramebufferAttachmentImageInfoKHR.txt[]
--
endif::VK_KHR_imageless_framebuffer[]
[open,refpage='VkFramebufferCreateFlagBits',desc='Bitmask specifying framebuffer properties',type='enums']
--
Bits which can: be set in slink:VkFramebufferCreateInfo::pname:flags to
specify options for framebuffers are:
include::{generated}/api/enums/VkFramebufferCreateFlagBits.txt[]
ifdef::VK_KHR_imageless_framebuffer[]
* ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR specifies that image views
are not specified, and only attachment compatibility information will be
provided via an instance of slink:VkFramebufferAttachmentImageInfoKHR.
endif::VK_KHR_imageless_framebuffer[]
ifndef::VK_KHR_imageless_framebuffer[]
[NOTE]
.Note
====
All bits for this type are defined by extensions, and none of those
extensions are enabled in this build of the specification.
====
endif::VK_KHR_imageless_framebuffer[]
--
[open,refpage='VkFramebufferCreateFlags',desc='Bitmask of VkFramebufferCreateFlagBits',type='flags']
--
include::{generated}/api/flags/VkFramebufferCreateFlags.txt[]
tname:VkFramebufferCreateFlags is a bitmask type for setting a mask, but is
currently reserved for future use.
tname:VkFramebufferCreateFlags is a bitmask type for setting a mask of zero
or more elink:VkFramebufferCreateFlagBits.
--
[open,refpage='vkDestroyFramebuffer',desc='Destroy a framebuffer object',type='protos']
--
@ -2830,6 +3067,121 @@ pass.
pname:renderPass must: be <<renderpass-compatibility,compatible>> with
the pname:renderPass member of the sname:VkFramebufferCreateInfo
structure specified when creating pname:framebuffer.
ifdef::VK_KHR_imageless_framebuffer[]
* [[VUID-VkRenderPassBeginInfo-pNext-03206]]
If the <<features-imagelessFramebuffer, imageless framebuffer>> feature
is not enabled, and the pname:pNext chain includes an instance of
slink:VkRenderPassAttachmentBeginInfoKHR, its pname:attachmentCount
must: be zero
* [[VUID-VkRenderPassBeginInfo-framebuffer-03207]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that did not include
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, and the pname:pNext chain
includes an instance of slink:VkRenderPassAttachmentBeginInfoKHR, its
pname:attachmentCount must: be zero
* [[VUID-VkRenderPassBeginInfo-framebuffer-03208]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, the pname:attachmentCount
of an instance of slink:VkRenderPassAttachmentBeginInfoKHR included in
the pname:pNext chain must: be equal to the value of
slink:VkFramebufferAttachmentsCreateInfoKHR::pname:attachmentImageInfoCount
used to create pname:framebuffer
* [[VUID-VkRenderPassBeginInfo-framebuffer-03209]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageCreateInfo::pname:flags equal to the pname:flags member of
the corresponding element of
slink:VkFramebufferAttachmentsCreateInfoKHR::pname:pAttachments used to
create pname:framebuffer
* [[VUID-VkRenderPassBeginInfo-framebuffer-03210]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageCreateInfo::pname:usage equal to the pname:usage member of
the corresponding element of
slink:VkFramebufferAttachmentsCreateInfoKHR::pname:pAttachments used to
create pname:framebuffer
* [[VUID-VkRenderPassBeginInfo-framebuffer-03211]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView with a width equal to the pname:width
member of the corresponding element of
slink:VkFramebufferAttachmentsCreateInfoKHR::pname:pAttachments used to
create pname:framebuffer
* [[VUID-VkRenderPassBeginInfo-framebuffer-03212]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView with a height equal to the
pname:height member of the corresponding element of
slink:VkFramebufferAttachmentsCreateInfoKHR::pname:pAttachments used to
create pname:framebuffer
* [[VUID-VkRenderPassBeginInfo-framebuffer-03213]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageViewCreateInfo::pname:subresourceRange.pname:layerCount
equal to the pname:layerCount member of the corresponding element of
slink:VkFramebufferAttachmentsCreateInfoKHR::pname:pAttachments used to
create pname:framebuffer
* [[VUID-VkRenderPassBeginInfo-framebuffer-03214]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageFormatListCreateInfoKHR::pname:viewFormatCount equal to the
pname:viewFormatCount member of the corresponding element of
slink:VkFramebufferAttachmentsCreateInfoKHR::pname:pAttachments used to
create pname:framebuffer
* [[VUID-VkRenderPassBeginInfo-framebuffer-03215]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a set of
elements in slink:VkImageFormatListCreateInfoKHR::pname:pViewFormats
equal to the set of elements in the pname:pViewFormats member of the
corresponding element of
slink:VkFramebufferAttachmentsCreateInfoKHR::pname:pAttachments used to
create pname:framebuffer
* [[VUID-VkRenderPassBeginInfo-framebuffer-03216]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageViewCreateInfo::pname:format equal to the corresponding
value of slink:VkAttachmentDescription::pname:format in pname:renderPass
* [[VUID-VkRenderPassBeginInfo-framebuffer-03217]]
If pname:framebuffer was created with a
slink:VkFramebufferCreateInfo::pname:flags value that included
ename:VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR, each element of the
pname:attachments member of an instance of
slink:VkRenderPassAttachmentBeginInfoKHR included in the pname:pNext
chain must: be a slink:VkImageView of an image created with a value of
slink:VkImageCreateInfo::pname:samples equal to the corresponding value
of slink:VkAttachmentDescription::pname:samples in pname:renderPass
endif::VK_KHR_imageless_framebuffer[]
****
include::{generated}/validity/structs/VkRenderPassBeginInfo.txt[]
@ -3065,6 +3417,33 @@ include::{generated}/validity/structs/VkDeviceGroupRenderPassBeginInfo.txt[]
endif::VK_VERSION_1_1,VK_KHR_device_group[]
ifdef::VK_KHR_imageless_framebuffer[]
[open,refpage='VkRenderPassAttachmentBeginInfoKHR',desc='Structure specifying images to be used as framebuffer attachments',type='structs']
--
The sname:VkRenderPassAttachmentBeginInfoKHR structure is defined as:
include::{generated}/api/structs/VkRenderPassAttachmentBeginInfoKHR.txt[]
* pname:sType is the type of this structure.
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
* pname:attachmentCount is the number of attachments.
* pname:pAttachments is an array of sname:VkImageView handles, each of
which will be used as the corresponding attachment in the render pass
instance.
.Valid Usage
****
* [[VUID-VkRenderPassAttachmentBeginInfoKHR-pAttachments-03218]]
Each element of pname:pAttachments must: only specify a single mip level
* [[VUID-VkRenderPassAttachmentBeginInfoKHR-pAttachments-03219]]
Each element of pname:pAttachments must: have been created with the
identity swizzle
****
include::{generated}/validity/structs/VkRenderPassAttachmentBeginInfoKHR.txt[]
--
endif::VK_KHR_imageless_framebuffer[]
[open,refpage='vkGetRenderAreaGranularity',desc='Returns the granularity for optimal render area',type='protos']
--

View File

@ -154,7 +154,7 @@ server.
<type category="define">// Vulkan 1.1 version number
#define <name>VK_API_VERSION_1_1</name> <type>VK_MAKE_VERSION</type>(1, 1, 0)// Patch version should always be set to 0</type>
<type category="define">// Version of this file
#define <name>VK_HEADER_VERSION</name> 113</type>
#define <name>VK_HEADER_VERSION</name> 114</type>
<type category="define">
#define <name>VK_DEFINE_HANDLE</name>(object) typedef struct object##_T* object;</type>
@ -199,7 +199,7 @@ typedef void <name>CAMetalLayer</name>;
<type name="int"/>
<comment>Bitmask types</comment>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkFramebufferCreateFlags</name>;</type>
<type requires="VkFramebufferCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkFramebufferCreateFlags</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkQueryPoolCreateFlags</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkRenderPassCreateFlags</name>;</type>
<type requires="VkSamplerCreateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkSamplerCreateFlags</name>;</type>
@ -3808,6 +3808,34 @@ typedef void <name>CAMetalLayer</name>;
<member><type>VkBool32</type> <name>filterCubic</name></member> <!-- The combinations of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT -->
<member><type>VkBool32</type> <name>filterCubicMinmax</name> </member> <!-- The combination of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT and ReductionMode of Min or Max -->
</type>
<type category="struct" name="VkPhysicalDeviceImagelessFramebufferFeaturesKHR" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>imagelessFramebuffer</name></member>
</type>
<type category="struct" name="VkFramebufferAttachmentsCreateInfoKHR" structextends="VkFramebufferCreateInfo">
<member values="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>uint32_t</type> <name>attachmentImageInfoCount</name></member>
<member len="attachmentImageInfoCount">const <type>VkFramebufferAttachmentImageInfoKHR</type>* <name>pAttachmentImageInfos</name></member>
</type>
<type category="struct" name="VkFramebufferAttachmentImageInfoKHR">
<member values="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member>const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkImageCreateFlags</type> <name>flags</name><comment>Image creation flags</comment></member>
<member><type>VkImageUsageFlags</type> <name>usage</name><comment>Image usage flags</comment></member>
<member><type>uint32_t</type> <name>width</name></member>
<member><type>uint32_t</type> <name>height</name></member>
<member><type>uint32_t</type> <name>layerCount</name></member>
<member optional="true"><type>uint32_t</type> <name>viewFormatCount</name></member>
<member len="viewFormatCount">const <type>VkFormat</type>* <name>pViewFormats</name></member>
</type>
<type category="struct" name="VkRenderPassAttachmentBeginInfoKHR" structextends="VkRenderPassBeginInfo">
<member values="VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR"><type>VkStructureType</type> <name>sType</name></member>
<member>const <type>void</type>* <name>pNext</name></member> <!-- Pointer to next structure -->
<member optional="true"><type>uint32_t</type> <name>attachmentCount</name></member>
<member len="attachmentCount">const <type>VkImageView</type>* <name>pAttachments</name></member>
</type>
<type category="struct" name="VkPhysicalDeviceCooperativeMatrixFeaturesNV" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
@ -5191,6 +5219,8 @@ typedef void <name>CAMetalLayer</name>;
<enum value="1" name="VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD"/>
<enum value="2" name="VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD"/>
</enums>
<enums name="VkFramebufferCreateFlagBits" type="bitmask">
</enums>
<enums name="VkScopeNV" type="enum">
<enum value="1" name="VK_SCOPE_DEVICE_NV"/>
<enum value="2" name="VK_SCOPE_WORKGROUP_NV"/>
@ -9353,10 +9383,18 @@ typedef void <name>CAMetalLayer</name>;
<enum value="&quot;VK_IMG_extension_108&quot;" name="VK_IMG_EXTENSION_108_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_IMG_extension_109" number="109" author="IMG" contact="Michael Worcester @michaelworcester" supported="disabled">
<extension name="VK_KHR_imageless_framebuffer" requires="VK_KHR_maintenance2,VK_KHR_image_format_list" number="109" author="KHR" contact="Tobias Hector @tobias" type="device" supported="vulkan">
<require>
<enum value="0" name="VK_IMG_EXTENSION_109_SPEC_VERSION"/>
<enum value="&quot;VK_IMG_extension_109&quot;" name="VK_IMG_EXTENSION_109_EXTENSION_NAME"/>
<enum value="1" name="VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_imageless_framebuffer&quot;" name="VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME"/>
<type name="VkPhysicalDeviceImagelessFramebufferFeaturesKHR"/>
<type name="VkFramebufferAttachmentsCreateInfoKHR"/>
<type name="VkRenderPassAttachmentBeginInfoKHR"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR"/>
<enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR"/>
<enum bitpos="0" extends="VkFramebufferCreateFlagBits" name="VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR"/>
</require>
</extension>
<extension name="VK_KHR_create_renderpass2" requires="VK_KHR_multiview,VK_KHR_maintenance2" number="110" contact="Tobias Hector @tobias" type="device" supported="vulkan">
@ -11136,5 +11174,17 @@ typedef void <name>CAMetalLayer</name>;
<type name="VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT"/>
</require>
</extension>
<extension name="VK_QCOM_extension_283" number="283" type="device" author="QCOM" contact="Jeff Leger @jackohound" supported="disabled">
<require>
<enum value="0" name="VK_QCOM_EXTENSION_283_SPEC_VERSION"/>
<enum value="&quot;VK_QCOM_extension_283&quot;" name="VK_QCOM_extension_283"/>
</require>
</extension>
<extension name="VK_EXT_extension_284" number="284" type="device" author="EXT" contact="Samuel Pitoiset @hakzsam" supported="disabled">
<require>
<enum value="0" name="VK_EXT_EXTENSION_284_SPEC_VERSION"/>
<enum value="&quot;VK_EXT_extension_284&quot;" name="VK_EXT_extension_284"/>
</require>
</extension>
</extensions>
</registry>