Add VK_INTEL_shader_integer_functions2 (#966)

This commit is contained in:
Ian Romanick 2019-05-22 04:45:00 -07:00 committed by Jon Leech
parent 40ba6e9a44
commit 261f4c614c
4 changed files with 94 additions and 3 deletions

View File

@ -0,0 +1,53 @@
include::meta/VK_INTEL_shader_integer_functions2.txt[]
*Last Modified Date*::
2019-04-30
*IP Status*::
No known IP claims.
*Contributors*::
- Ian Romanick, Intel
- Ben Ashbaugh, Intel
This extension adds support for several new integer instructions in SPIR-V for
use in graphics shaders. Many of these instructions have pre-existing
counterparts in the Kernel environment.
The added integer functions are defined by the
http://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/INTEL/SPV_INTEL_shader_integer_functions2.html[+SPV_INTEL_shader_integer_functions+]
SPIR-V extension and can be used with the GL_INTEL_shader_integer_functions2 GLSL extension.
=== New Object Types
None.
=== New Enum Constants
* Extending elink:VkStructureType:
** ename:VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS2_FEATURES_INTEL
=== New Enums
None.
=== New Structures
* Extending slink:VkPhysicalDeviceFeatures2:
** slink:VkPhysicalDeviceShaderIntegerFunctions2INTEL
=== New Functions
None.
=== New SPIR-V Capabilities
* <<spirvenv-capabilities-table-cooperativeMatrix,ShaderIntegerFunctions2INTEL>>
=== Issues
None.
=== Version History
* Revision 1, 2019-04-30 (Ian Romanick)
- Initial draft

View File

@ -274,6 +274,10 @@ ifdef::VK_NV_cooperative_matrix[]
[[spirvenv-capabilities-table-cooperativeMatrix]] [[spirvenv-capabilities-table-cooperativeMatrix]]
| code:CooperativeMatrixNV | <<features-cooperativeMatrix,cooperativeMatrix>> | code:CooperativeMatrixNV | <<features-cooperativeMatrix,cooperativeMatrix>>
endif::VK_NV_cooperative_matrix[] endif::VK_NV_cooperative_matrix[]
ifdef::VK_INTEL_shader_integer_functions2[]
[[spirvenv-capabilities-table-shaderIntegerFunctions2]]
| code:ShaderIntegerFunctions2INTEL | <<features-shaderIntegerFunctions2,shaderIntegerFunctions2>>
endif::VK_INTEL_shader_integer_functions2[]
|==== |====
ifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[] ifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[]

View File

@ -2082,6 +2082,33 @@ include::{generated}/validity/structs/VkPhysicalDeviceHostQueryResetFeaturesEXT.
endif::VK_EXT_host_query_reset[] endif::VK_EXT_host_query_reset[]
ifdef::VK_INTEL_shader_integer_functions2[]
[open,refpage='VkPhysicalDeviceShaderIntegerFunctions2INTEL',desc='Structure describing shader integer functions that can be supported by an implementation',type='structs']
--
The sname:VkPhysicalDeviceShaderIntegerFunctions2INTEL structure is
defined as:
include::{generated}/api/structs/VkPhysicalDeviceShaderIntegerFunctions2INTEL.txt[]
The members of the sname:VkPhysicalDeviceShaderIntegerFunctions2INTEL
structure describe the following features:
* [[features-shaderIntegerFunctions2]] pname:shaderIntegerFunctions2
indicates that the implementation supports the
code:ShaderIntegerFunctions2INTEL SPIR-V capability.
If the sname:VkPhysicalDeviceShaderIntegerFunctions2INTEL structure
is included in the pname:pNext chain of slink:VkPhysicalDeviceFeatures2KHR,
it is filled with values indicating whether the feature is supported.
sname:VkPhysicalDeviceShaderIntegerFunctions2INTEL can: also be used
in the pname:pNext chain of slink:VkDeviceCreateInfo to enable features.
include::{generated}/validity/structs/VkPhysicalDeviceShaderIntegerFunctions2INTEL.txt[]
--
endif::VK_INTEL_shader_integer_functions2[]
ifdef::VK_NV_coverage_reduction_mode[] ifdef::VK_NV_coverage_reduction_mode[]
[open,refpage='VkPhysicalDeviceCoverageReductionModeFeaturesNV',desc='Structure describing the coverage reduction mode features that can be supported by an implementation',type='structs'] [open,refpage='VkPhysicalDeviceCoverageReductionModeFeaturesNV',desc='Structure describing the coverage reduction mode features that can be supported by an implementation',type='structs']

View File

@ -3891,6 +3891,11 @@ typedef void <name>CAMetalLayer</name>;
<member><type>VkSampleCountFlags</type> <name>depthStencilSamples</name></member> <member><type>VkSampleCountFlags</type> <name>depthStencilSamples</name></member>
<member><type>VkSampleCountFlags</type> <name>colorSamples</name></member> <member><type>VkSampleCountFlags</type> <name>colorSamples</name></member>
</type> </type>
<type category="struct" name="VkPhysicalDeviceShaderIntegerFunctions2INTEL" structextends="VkPhysicalDeviceFeatures2,VkDeviceCreateInfo">
<member values="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS2_FEATURES_INTEL"><type>VkStructureType</type> <name>sType</name></member>
<member><type>void</type>* <name>pNext</name></member>
<member><type>VkBool32</type> <name>shaderIntegerFunctions2</name></member>
</type>
</types> </types>
<comment>Vulkan enumerant (token) definitions</comment> <comment>Vulkan enumerant (token) definitions</comment>
@ -10383,10 +10388,12 @@ typedef void <name>CAMetalLayer</name>;
<enum value="&quot;VK_KHR_extension_209&quot;" name="VK_KHR_EXTENSION_209_EXTENSION_NAME"/> <enum value="&quot;VK_KHR_extension_209&quot;" name="VK_KHR_EXTENSION_209_EXTENSION_NAME"/>
</require> </require>
</extension> </extension>
<extension name="VK_INTEL_extension_210" number="210" type="device" author="INTEL" contact="Jason Ekstrand @jekstrand" supported="disabled"> <extension name="VK_INTEL_shader_integer_functions2" number="210" type="device" requires="VK_KHR_get_physical_device_properties2" author="INTEL" contact="Ian Romanick @ianromanick" supported="vulkan">
<require> <require>
<enum value="0" name="VK_KHR_EXTENSION_210_SPEC_VERSION"/> <enum value="1" name="VK_INTEL_SHADER_INTEGER_FUNCTIONS2_SPEC_VERSION"/>
<enum value="&quot;VK_KHR_extension_210&quot;" name="VK_KHR_EXTENSION_210_EXTENSION_NAME"/> <enum value="&quot;VK_INTEL_shader_integer_functions2&quot;" name="VK_INTEL_SHADER_INTEGER_FUNCTIONS2_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS2_FEATURES_INTEL"/>
<type name="VkPhysicalDeviceShaderIntegerFunctions2INTEL"/>
</require> </require>
</extension> </extension>
<extension name="VK_INTEL_extension_211" number="211" type="device" author="INTEL" contact="Jason Ekstrand @jekstrand" supported="disabled"> <extension name="VK_INTEL_extension_211" number="211" type="device" author="INTEL" contact="Jason Ekstrand @jekstrand" supported="disabled">