mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-01-11 14:34:08 +00:00
26f0bdbf1e
* Update release number to 72. Github Issues: * Restructure the repository to put the specification `Makefile` and associated spec source material at the top level, `vk.xml` and associated scripts material in `xml/`, and generated include and source files in `include/vulkan/` and `src/ext_loader/`, respectively (public issue 436). * Add missing bullet point markup to flink:vkCmdCopyImage valid usage statement, so it gets a VUID assigned (public issue 627). * Fix broken links in a couple of extension appendices (public pull request 665). * Add the \<platform> tag to the index in section 4.1 of the registry schema documentation, and add the protect= attribute of \<extension> tags to the comments in `registry.rnc` (public issues 673, 678). * Add missing valid usage statements for sparse image interactions to flink:VkImageCreateInfo (public pull request 675). * Fix improper usage and grammar of "`can: not`" (public pull request 681). * Remove duplicate spec language and NOTE on present layout between the flink:vkAcquireNextImageKHR and flink:vkAcquireNextImage2KHR commands (public pull request 685). * Fix some typos and markup issues (public pull request 689; public issues 642, 667, 687). * Fix typo etext:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT -> ename:VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT in the <<external-semaphore-handle-types-compatibility, External semaphore handle types compatibility>> table (public pull request 691). Internal Issues: * Remove the need for the "`noautovalidity`" attribute on extension structures in `vk.xml`. It is now implied by the "`structextends`" attribute instead (internal issue 942). * Replace uses of "`currently bound`" with "`bound`", since "`currently`" is redundant and distracting, and add a corresponding rule to the style guide (internal issue 993). * Fixed subtle issues with the last updates to flink:vkAcquireNextImageKHR language that had resulted in ambiguities (internal issue 1178). * Make it clear that only one query of a given type is allowed at a time by reordering valid usage statements for flink:vkCmdBeginQuery and flink:vkCmdEndQuery, and removing redundant ones (internal issue 1213). * Swapped OL1 and OL3 in `tessparamUL.svg` to match previous version, and fixed where "`(no edge)`" appears (internal issue 1215). Other Issues: * Fixed a minor problem with the valid usage statement extraction script, and corresponding markup in the spec source. New Extensions: * `VK_AMD_shader_core_properties` * `VK_EXT_descriptor_indexing` * `VK_NV_shader_subgroup_partitioned`
99 lines
4.0 KiB
Plaintext
99 lines
4.0 KiB
Plaintext
[[vertexpostproc-viewportwscaling]]
|
|
== Controlling Viewport W Scaling
|
|
|
|
If viewport *W* scaling is enabled, the *W* component of the clip coordinate
|
|
is modified by the provided coefficients from the corresponding viewport as
|
|
follows.
|
|
|
|
:: [eq]#w~c~' = x~coeff~ x~c~ {plus} y~coeff~ y~c~ {plus} w~c~#
|
|
|
|
[open,refpage='VkPipelineViewportWScalingStateCreateInfoNV',desc='Structure specifying parameters of a newly created pipeline viewport W scaling state',type='structs']
|
|
--
|
|
|
|
The sname:VkPipelineViewportWScalingStateCreateInfoNV structure is defined
|
|
as:
|
|
|
|
include::../../api/structs/VkPipelineViewportWScalingStateCreateInfoNV.txt[]
|
|
|
|
* pname:sType is the type of this structure.
|
|
* pname:pNext is `NULL` or a pointer to an extension-specific structure.
|
|
* pname:viewportWScalingEnable controls whether viewport *W* scaling is
|
|
enabled.
|
|
* pname:viewportCount is the number of viewports used by *W* scaling, and
|
|
must: match the number of viewports in the pipeline if viewport *W*
|
|
scaling is enabled.
|
|
* pname:pViewportWScalings is a pointer to an array of
|
|
sname:VkViewportWScalingNV structures, which define the *W* scaling
|
|
parameters for the corresponding viewport.
|
|
If the viewport *W* scaling state is dynamic, this member is ignored.
|
|
|
|
include::../../validity/structs/VkPipelineViewportWScalingStateCreateInfoNV.txt[]
|
|
--
|
|
|
|
The sname:VkPipelineViewportWScalingStateCreateInfoNV state is set by adding
|
|
an instance of this structure to the pname:pNext chain of an instance of the
|
|
sname:VkPipelineViewportStateCreateInfo structure and setting the graphics
|
|
pipeline state with flink:vkCreateGraphicsPipelines.
|
|
|
|
[open,refpage='vkCmdSetViewportWScalingNV',desc='Set the viewport W scaling on a command buffer',type='protos']
|
|
--
|
|
|
|
If the bound pipeline state object was not created with the
|
|
ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, viewport
|
|
*W* scaling parameters are specified using the pname:pViewportWScalings
|
|
member of slink:VkPipelineViewportWScalingStateCreateInfoNV in the pipeline
|
|
state object.
|
|
If the pipeline state object was created with the
|
|
ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, the
|
|
viewport transformation parameters are dynamically set and changed with the
|
|
command:
|
|
|
|
include::../../api/protos/vkCmdSetViewportWScalingNV.txt[]
|
|
|
|
* pname:commandBuffer is the command buffer into which the command will be
|
|
recorded.
|
|
* pname:firstViewport is the index of the first viewport whose parameters
|
|
are updated by the command.
|
|
* pname:viewportCount is the number of viewports whose parameters are
|
|
updated by the command.
|
|
* pname:pViewportWScalings is a pointer to an array of
|
|
slink:VkViewportWScalingNV structures specifying viewport parameters.
|
|
|
|
The viewport parameters taken from element [eq]#i# of
|
|
pname:pViewportWScalings replace the current state for the viewport index
|
|
[eq]#pname:firstViewport {plus} i#, for [eq]#i# in [eq]#[0,
|
|
pname:viewportCount)#.
|
|
|
|
.Valid Usage
|
|
****
|
|
* [[VUID-vkCmdSetViewportWScalingNV-None-01322]]
|
|
The bound graphics pipeline must: have been created with the
|
|
ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled
|
|
* [[VUID-vkCmdSetViewportWScalingNV-firstViewport-01323]]
|
|
pname:firstViewport must: be less than
|
|
slink:VkPhysicalDeviceLimits::pname:maxViewports
|
|
* [[VUID-vkCmdSetViewportWScalingNV-firstViewport-01324]]
|
|
The sum of pname:firstViewport and pname:viewportCount must: be between
|
|
`1` and slink:VkPhysicalDeviceLimits::pname:maxViewports, inclusive
|
|
****
|
|
|
|
include::../../validity/protos/vkCmdSetViewportWScalingNV.txt[]
|
|
--
|
|
|
|
Both slink:VkPipelineViewportWScalingStateCreateInfoNV and
|
|
flink:vkCmdSetViewportWScalingNV use sname:VkViewportWScalingNV to set the
|
|
viewport transformation parameters.
|
|
|
|
[open,refpage='VkViewportWScalingNV',desc='Structure specifying a viewport',type='structs']
|
|
--
|
|
|
|
The sname:VkViewportWScalingNV structure is defined as:
|
|
|
|
include::../../api/structs/VkViewportWScalingNV.txt[]
|
|
|
|
* pname:xcoeff and pname:ycoeff are the viewport's W scaling factor for x
|
|
and y respectively.
|
|
|
|
include::../../validity/structs/VkViewportWScalingNV.txt[]
|
|
--
|