2016-02-16 09:53:44 +00:00
|
|
|
// Copyright (c) 2015-2016 The Khronos Group Inc.
|
|
|
|
// Copyright notice at https://www.khronos.org/registry/speccopyright.html
|
|
|
|
|
|
|
|
[[samplers]]
|
|
|
|
= Samplers
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
// refBegin VkSampler - Opaque handle to a sampler object
|
|
|
|
|
|
|
|
sname:VkSampler objects represent the state of an image sampler which is
|
2016-02-16 09:53:44 +00:00
|
|
|
used by the implementation to read image data and apply filtering and other
|
|
|
|
transformations for the shader.
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
Samplers are represented by sname:VkSampler handles:
|
|
|
|
|
|
|
|
include::../handles/VkSampler.txt[]
|
|
|
|
|
|
|
|
// refEnd VkSampler
|
|
|
|
|
|
|
|
// refBegin vkCreateSampler Create a new sampler object
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
To create a sampler object, call:
|
|
|
|
|
|
|
|
include::../protos/vkCreateSampler.txt[]
|
|
|
|
|
|
|
|
* pname:device is the logical device that creates the sampler.
|
|
|
|
* pname:pCreateInfo is a pointer to an instance of the
|
|
|
|
slink:VkSamplerCreateInfo structure specifying the state of the sampler
|
|
|
|
object.
|
|
|
|
* pname:pAllocator controls host memory allocation as described in the
|
|
|
|
<<memory-allocation, Memory Allocation>> chapter.
|
|
|
|
* pname:pSampler points to a sname:VkSampler handle in which the resulting
|
|
|
|
sampler object is returned.
|
|
|
|
|
|
|
|
include::../validity/protos/vkCreateSampler.txt[]
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
// refBegin VkSamplerCreateInfo - Structure specifying parameters of a newly created sampler
|
|
|
|
|
2016-04-21 08:08:38 +00:00
|
|
|
The sname:VkSamplerCreateInfo structure is defined as:
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
include::../structs/VkSamplerCreateInfo.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:magFilter is the magnification filter to apply to lookups, and
|
|
|
|
is of type:
|
|
|
|
+
|
|
|
|
--
|
2016-07-11 01:13:41 +00:00
|
|
|
// refBegin VkFilter - specify filters used for texture lookups
|
2016-02-16 09:53:44 +00:00
|
|
|
include::../enums/VkFilter.txt[]
|
|
|
|
--
|
|
|
|
+
|
|
|
|
* pname:minFilter is the minification filter to apply to lookups, and is
|
|
|
|
of type elink:VkFilter.
|
|
|
|
* pname:mipmapMode is the mipmap filter to apply to lookups as described
|
Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
in the <<textures-texel-filtering, Texel Filtering>> section, and is of
|
2016-02-16 09:53:44 +00:00
|
|
|
type:
|
|
|
|
+
|
|
|
|
--
|
2016-07-11 01:13:41 +00:00
|
|
|
// refBegin VkSamplerMipmapMode - specify mipmap mode used for texture lookups
|
2016-02-16 09:53:44 +00:00
|
|
|
include::../enums/VkSamplerMipmapMode.txt[]
|
|
|
|
--
|
|
|
|
+
|
|
|
|
* pname:addressModeU is the addressing mode for outside [0..1] range for U
|
|
|
|
coordinate. See elink:VkSamplerAddressMode.
|
|
|
|
* pname:addressModeV is the addressing mode for outside [0..1] range for V
|
|
|
|
coordinate. See elink:VkSamplerAddressMode.
|
|
|
|
* pname:addressModeW is the addressing mode for outside [0..1] range for W
|
|
|
|
coordinate. See elink:VkSamplerAddressMode.
|
|
|
|
* [[samplers-mipLodBias]] pname:mipLodBias is the bias to be added to
|
|
|
|
mipmap LOD calculation and bias provided by image sampling functions in
|
|
|
|
SPIR-V, as described in the <<textures-level-of-detail-operation,
|
|
|
|
Level-of-Detail Operation>> section.
|
|
|
|
* [[samplers-maxAnisotropy]] pname:anisotropyEnable is ename:VK_TRUE to
|
|
|
|
enable anisotropic filtering, as described in the
|
Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
<<textures-texel-anisotropic-filtering, Texel Anisotropic Filtering>>
|
2016-02-16 09:53:44 +00:00
|
|
|
section, or ename:VK_FALSE otherwise.
|
|
|
|
* pname:maxAnisotropy is the anisotropy value clamp.
|
|
|
|
* pname:compareEnable is ename:VK_TRUE to enable comparison against a
|
|
|
|
reference value during lookups, or ename:VK_FALSE otherwise.
|
|
|
|
** Note: Some implementations will default to shader state if this member
|
|
|
|
does not match.
|
|
|
|
* pname:compareOp is the comparison function to apply to fetched data
|
Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
before filtering as described in the <<textures-depth-compare-operation,
|
2016-02-16 09:53:44 +00:00
|
|
|
Depth Compare Operation>> section. See elink:VkCompareOp.
|
|
|
|
* pname:minLod and pname:maxLod are the values used to clamp the computed
|
|
|
|
level-of-detail value, as described in the
|
|
|
|
<<textures-level-of-detail-operation, Level-of-Detail Operation>>
|
|
|
|
section. pname:maxLod must: be greater than or equal to pname:minLod.
|
|
|
|
* pname:borderColor is the predefined border color to use, as described
|
Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
in the <<textures-texel-replacement, Texel Replacement>>
|
2016-02-16 09:53:44 +00:00
|
|
|
section, and is of type:
|
|
|
|
+
|
|
|
|
--
|
2016-07-11 01:13:41 +00:00
|
|
|
// refBegin VkBorderColor - specify border color used for texture lookups
|
2016-02-16 09:53:44 +00:00
|
|
|
include::../enums/VkBorderColor.txt[]
|
|
|
|
--
|
|
|
|
+
|
|
|
|
* [[samplers-unnormalizedCoordinates]] pname:unnormalizedCoordinates
|
|
|
|
controls whether to use unnormalized or normalized texel coordinates to
|
|
|
|
address texels of the image. When set to ename:VK_TRUE, the range of the
|
|
|
|
image coordinates used to lookup the texel is in the range of zero to
|
|
|
|
the image dimensions for x, y and z. When set to ename:VK_FALSE the
|
|
|
|
range of image coordinates is zero to one. When
|
|
|
|
pname:unnormalizedCoordinates is ename:VK_TRUE, samplers have the
|
|
|
|
following requirements:
|
|
|
|
** pname:minFilter and pname:magFilter must: be equal.
|
|
|
|
** pname:mipmapMode must: be ename:VK_SAMPLER_MIPMAP_MODE_NEAREST.
|
|
|
|
** pname:minLod and pname:maxLod must: be zero.
|
|
|
|
** pname:addressModeU and pname:addressModeV must: each
|
|
|
|
be either ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or
|
|
|
|
ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER.
|
|
|
|
** pname:anisotropyEnable must: be ename:VK_FALSE.
|
|
|
|
** pname:compareEnable must: be ename:VK_FALSE.
|
|
|
|
* When pname:unnormalizedCoordinates is ename:VK_TRUE, images the sampler
|
|
|
|
is used with in the shader have the following requirements:
|
|
|
|
** The pname:viewType must: be either ename:VK_IMAGE_VIEW_TYPE_1D or
|
|
|
|
ename:VK_IMAGE_VIEW_TYPE_2D.
|
|
|
|
** The image view must: have a single layer and a single mip level.
|
|
|
|
* When pname:unnormalizedCoordinates is ename:VK_TRUE, image built-in
|
|
|
|
functions in the shader that use the sampler have the following
|
|
|
|
requirements:
|
|
|
|
** The functions mustnot: use projection.
|
|
|
|
** The functions mustnot: use offsets.
|
|
|
|
|
|
|
|
[NOTE]
|
Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
update.
Github Issues:
* Change valid usage statements intended to be "sub-points" to
be actual sub-points (public issue 66).
* Replace double negation in description of
slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
merge 142).
* Cleanup minor typos in spec, ref pages and XML, including those
proposed in public pull requests 144, 150, 151, 167, 168, 181, and
186.
* Use *strict subset* in describing the partial order of memory
property types for slink:VkMemoryType, and update the style guide
accordingly (public issue 190).
* Fix various "a image" -> "an image" typos (public issue 191).
* Note in the <<fundamentals-validusage,Valid Usage>> and
<<extensions-interactions,Extension Interactions>> sections that
structures defined by extensions which may be passed in structure
chains using the ptext:pNext member must: include initial
ptext:sType and ptext:pNext members (public issue 192).
Internal Issues:
* Remove duplicate language from the description of the pname:fence
parameter to flink:vkQueueSubmit and improve validity language
(internal issue 91).
* Added documentation for "optional" attribute to XML readme.tex/pdf
(internal issue 149).
* Clarify the host-side data validity rules and behavior of
flink:vkFlushMappedMemoryRanges and
flink:vkInvalidateMappedMemoryRanges (internal issue 266).
Other Commits:
* Added clarification to flink:vkCmdFillBuffer regarding the use of
ename:VK_WHOLE_SIZE.
* Fixed and documented implementation of "validextensionstructs"
attribute. in XML processing scripts and readme.tex/pdf.
* Add missing validity statements to flink:vkResetEvent and
flink:vkCmdResetEvent.
* Fix validity for the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
Correct all the draw/dispatch commands to mention optimally tiled
images as well as linear tiled images, and say image VIEWS instead
of images. Add validity statement to flink:vkCmdBlitImage
* Replace the {apiname} macro with hardcoded "Vulkan", now that we've
committed to that name.
* Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 12:53:46 +00:00
|
|
|
.Mapping of OpenGL to Vulkan filter modes
|
2016-02-16 09:53:44 +00:00
|
|
|
==================
|
|
|
|
pname:magFilter values of ename:VK_FILTER_NEAREST and ename:VK_FILTER_LINEAR
|
|
|
|
directly correspond to code:GL_NEAREST and code:GL_LINEAR magnification
|
|
|
|
filters. pname:minFilter and pname:mipmapMode combine to correspond to the
|
|
|
|
similarly named OpenGL minification filter of
|
|
|
|
code:GL_minFilter_MIPMAP_mipmapMode (e.g. pname:minFilter of
|
|
|
|
ename:VK_FILTER_LINEAR and pname:mipmapMode of
|
|
|
|
ename:VK_SAMPLER_MIPMAP_MODE_NEAREST correspond to
|
|
|
|
code:GL_LINEAR_MIPMAP_NEAREST).
|
|
|
|
|
Change log for April 29, 2016 Vulkan 1.0.12 spec update:
* Bump API patch number and header version number to 12 for this
update.
Github Issues:
* Change valid usage statements intended to be "sub-points" to
be actual sub-points (public issue 66).
* Replace double negation in description of
slink:VkRenderPassBeginInfo::pname:pClearValues (based on public
merge 142).
* Cleanup minor typos in spec, ref pages and XML, including those
proposed in public pull requests 144, 150, 151, 167, 168, 181, and
186.
* Use *strict subset* in describing the partial order of memory
property types for slink:VkMemoryType, and update the style guide
accordingly (public issue 190).
* Fix various "a image" -> "an image" typos (public issue 191).
* Note in the <<fundamentals-validusage,Valid Usage>> and
<<extensions-interactions,Extension Interactions>> sections that
structures defined by extensions which may be passed in structure
chains using the ptext:pNext member must: include initial
ptext:sType and ptext:pNext members (public issue 192).
Internal Issues:
* Remove duplicate language from the description of the pname:fence
parameter to flink:vkQueueSubmit and improve validity language
(internal issue 91).
* Added documentation for "optional" attribute to XML readme.tex/pdf
(internal issue 149).
* Clarify the host-side data validity rules and behavior of
flink:vkFlushMappedMemoryRanges and
flink:vkInvalidateMappedMemoryRanges (internal issue 266).
Other Commits:
* Added clarification to flink:vkCmdFillBuffer regarding the use of
ename:VK_WHOLE_SIZE.
* Fixed and documented implementation of "validextensionstructs"
attribute. in XML processing scripts and readme.tex/pdf.
* Add missing validity statements to flink:vkResetEvent and
flink:vkCmdResetEvent.
* Fix validity for the
ename:VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag.
Correct all the draw/dispatch commands to mention optimally tiled
images as well as linear tiled images, and say image VIEWS instead
of images. Add validity statement to flink:vkCmdBlitImage
* Replace the {apiname} macro with hardcoded "Vulkan", now that we've
committed to that name.
* Add the VK_AMD_rasterization_order extension to vk.xml.
2016-04-29 12:53:46 +00:00
|
|
|
There are no Vulkan filter modes that directly correspond to OpenGL
|
2016-04-21 08:08:38 +00:00
|
|
|
minification filters of code:GL_LINEAR or code:GL_NEAREST, but they can: be
|
2016-02-16 09:53:44 +00:00
|
|
|
emulated using ename:VK_SAMPLER_MIPMAP_MODE_NEAREST, pname:minLod = 0, and
|
|
|
|
pname:maxLod = 0.25, and using pname:minFilter = ename:VK_FILTER_LINEAR or
|
|
|
|
pname:minFilter = ename:VK_FILTER_NEAREST, respectively.
|
|
|
|
|
|
|
|
Note that using a pname:maxLod of zero would cause
|
|
|
|
<<textures-texel-filtering,magnification>> to always be performed, and the
|
|
|
|
pname:magFilter to always be used. This is valid, just not an exact match
|
|
|
|
for OpenGL behavior. Clamping the maximum lod to 0.25 allows the
|
|
|
|
latexmath:[$\lambda$] value to be non-zero and minification to be performed,
|
|
|
|
while still always rounding down to the base level. If the pname:minFilter
|
|
|
|
and pname:magFilter are equal, then using a pname:maxLod of zero also works.
|
|
|
|
==================
|
|
|
|
|
|
|
|
pname:addressModeU, pname:addressModeV, and pname:addressModeW must: each
|
|
|
|
have one of the following values:
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
// refBegin VkSamplerAddressMode - specify behavior of sampling with texture coordinates outside an image
|
2016-02-16 09:53:44 +00:00
|
|
|
include::../enums/VkSamplerAddressMode.txt[]
|
|
|
|
|
|
|
|
These values control the behavior of sampling with coordinates outside the
|
2016-07-11 01:13:41 +00:00
|
|
|
range latexmath:[$[0,1\]$] for the respective u, v, or w coordinate as defined in the
|
Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
<<textures-wrapping-operation, Wrapping Operation>> section.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
* ename:VK_SAMPLER_ADDRESS_MODE_REPEAT indicates that the repeat wrap mode
|
|
|
|
will be used.
|
|
|
|
* ename:VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT indicates that the
|
|
|
|
mirrored repeat wrap mode will be used.
|
|
|
|
* ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE indicates that the clamp to
|
|
|
|
edge wrap mode will be used.
|
|
|
|
* ename:VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER indicates that the clamp
|
|
|
|
to border wrap mode will be used.
|
Change log for February 25, 2015 Vulkan 1.0.4 spec update:
* Bump API patch number from 3 to 4 for the first public update to the
spec. Add patch number to the spec title (this will be done
automatically from XML, later).
* Fixes for numerous editorial issues. Regularize descriptions of
variable-length array queries. Properly tag enumerants so they come
out in the right font (many were mislabeled in usage tags in vk.xml,
or not tagged). Spelling and markup corrections (public issue 4).
* Fix typos and clearly separate description of different types of
memory areas (public issue 5).
* Use standards-compliant preprocessor guard symbols on headers
(public issue 7).
* Note that Github users can't currently set labels on issues, and
recommend a fallback approach (public issue 15).
* Use latexmath prefix on len= attributes (public issue 29).
* Make flink:vkCmdUpdateBuffer pname:dataSize limit consistent (public
issue 65).
* Add VK_KHR_mirror_clamp_to_edge extension to core API branch, as an
optional feature not introducing new commands or enums (internal
issue 104).
* Cleanup invariance language inherited from the GL specification to
not refer to nonexistent (GL-specific) state (internal issue 111).
* Modify the flink:vkCmdDrawIndexed pname:vertexOffset definition to
not be the "base offset within the index buffer" but rather the
"value added to the vertex index before indexing into the vertex
buffer" (internal issue 118).
* Fix drawing chapter in the "Programmable Primitive Shading" section
where it described categories of drawing commands. It referenced
flink:vkCmdDrawIndexed twice. Replace the second reference with
flink:vkCmdDrawIndexedIndirect (internal issue 119).
* Typo fixed in <<sparsememory-examples-advanced,Advanced Sparse
Resources>> sparse memory example (internal issue 122).
* Add flink:VkDisplayPlaneAlphaFlagsKHR to <require> section of
VK_KHR_display extension (internal issue 125)
* Add missing optional="false,true" to
flink:vkGetImageSparseMemoryRequirements
pname:pSparseMemoryRequirementCount parameter (internal issue 132)
* Rename ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT to
ename:VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT
(internal issue 133)
* Fix a handful of broken cross-references in the
<<samplers,Samplers>> chapter (internal issue 134).
* Fix "Input Attachement" GLSL example to use correct syntax (internal
issue 135).
* Update XML schema and documentation to accomodate recently added
attributes for validity. Add some introductory material describing
design choices and pointing to the public repository to file issues.
* Put include of validity in the core spec extensions chapter on its
own line, so that asciidoc is happy.
* Fix vertexOffset language to specify that it's the value added to
the vertex index before indexing into the vertex buffer, not the
base offset within the index buffer.
* Fix error in the description of flink:vkCmdNextSubpass.
2016-02-25 06:02:34 +00:00
|
|
|
* ename:VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE indicates that
|
|
|
|
the mirror clamp to edge wrap mode will be used. This is only valid
|
|
|
|
if the VK_KHR_mirror_clamp_to_edge extension is enabled.
|
2016-02-16 09:53:44 +00:00
|
|
|
|
|
|
|
The maximum number of sampler objects which can: be simultaneously created
|
|
|
|
on a device is implementation-dependent and specified by the
|
|
|
|
<<features-limits-maxSamplerAllocationCount,pname:maxSamplerAllocationCount>>
|
|
|
|
member of the sname:VkPhysicalDeviceLimits structure. If
|
|
|
|
pname:maxSamplerAllocationCount is exceeded, fname:vkCreateSampler will
|
|
|
|
return ename:VK_ERROR_TOO_MANY_OBJECTS.
|
|
|
|
|
|
|
|
Since sname:VkSampler is a non-dispatchable handle type, implementations
|
|
|
|
may: return the same handle for sampler state vectors that are identical. In
|
|
|
|
such cases, all such objects would only count once against the
|
|
|
|
pname:maxSamplerAllocationCount limit.
|
|
|
|
|
2016-07-11 01:13:41 +00:00
|
|
|
include::../validity/structs/VkSamplerCreateInfo.txt[]
|
|
|
|
|
|
|
|
// refBegin vkDestroySampler Destroy a sampler object
|
|
|
|
|
2016-02-16 09:53:44 +00:00
|
|
|
To destroy a sampler, call:
|
|
|
|
|
|
|
|
include::../protos/vkDestroySampler.txt[]
|
|
|
|
|
|
|
|
* pname:device is the logical device that destroys the sampler.
|
|
|
|
* pname:sampler is the sampler to destroy.
|
|
|
|
* pname:pAllocator controls host memory allocation as described in the
|
|
|
|
<<memory-allocation, Memory Allocation>> chapter.
|
|
|
|
|
|
|
|
include::../validity/protos/vkDestroySampler.txt[]
|