From 261f4c614c510de91d5476bb3cdb5195fbdadf2e Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Wed, 22 May 2019 04:45:00 -0700 Subject: [PATCH] Add VK_INTEL_shader_integer_functions2 (#966) --- .../VK_INTEL_shader_integer_functions2.txt | 53 +++++++++++++++++++ appendices/spirvenv.txt | 4 ++ chapters/features.txt | 27 ++++++++++ xml/vk.xml | 13 +++-- 4 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 appendices/VK_INTEL_shader_integer_functions2.txt diff --git a/appendices/VK_INTEL_shader_integer_functions2.txt b/appendices/VK_INTEL_shader_integer_functions2.txt new file mode 100644 index 00000000..3cb1cb4e --- /dev/null +++ b/appendices/VK_INTEL_shader_integer_functions2.txt @@ -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 + + * <> + +=== Issues + +None. + +=== Version History + + * Revision 1, 2019-04-30 (Ian Romanick) + - Initial draft diff --git a/appendices/spirvenv.txt b/appendices/spirvenv.txt index 3d712e28..8fec5f40 100644 --- a/appendices/spirvenv.txt +++ b/appendices/spirvenv.txt @@ -274,6 +274,10 @@ ifdef::VK_NV_cooperative_matrix[] [[spirvenv-capabilities-table-cooperativeMatrix]] | code:CooperativeMatrixNV | <> endif::VK_NV_cooperative_matrix[] +ifdef::VK_INTEL_shader_integer_functions2[] +[[spirvenv-capabilities-table-shaderIntegerFunctions2]] +| code:ShaderIntegerFunctions2INTEL | <> +endif::VK_INTEL_shader_integer_functions2[] |==== ifdef::VK_VERSION_1_1,VK_KHR_variable_pointers[] diff --git a/chapters/features.txt b/chapters/features.txt index a75b160a..abd6fcf7 100644 --- a/chapters/features.txt +++ b/chapters/features.txt @@ -2082,6 +2082,33 @@ include::{generated}/validity/structs/VkPhysicalDeviceHostQueryResetFeaturesEXT. 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[] [open,refpage='VkPhysicalDeviceCoverageReductionModeFeaturesNV',desc='Structure describing the coverage reduction mode features that can be supported by an implementation',type='structs'] diff --git a/xml/vk.xml b/xml/vk.xml index d2bbdeab..5dc306ef 100644 --- a/xml/vk.xml +++ b/xml/vk.xml @@ -3891,6 +3891,11 @@ typedef void CAMetalLayer; VkSampleCountFlags depthStencilSamples VkSampleCountFlags colorSamples + + VkStructureType sType + void* pNext + VkBool32 shaderIntegerFunctions2 + Vulkan enumerant (token) definitions @@ -10383,10 +10388,12 @@ typedef void CAMetalLayer; - + - - + + + +