diff --git a/Docs/MoltenVK_Runtime_UserGuide.md b/Docs/MoltenVK_Runtime_UserGuide.md index f3ff508b..e4cf172b 100644 --- a/Docs/MoltenVK_Runtime_UserGuide.md +++ b/Docs/MoltenVK_Runtime_UserGuide.md @@ -271,6 +271,7 @@ In addition to the core *Vulkan* API, **MoltenVK** also supports the following - `VK_AMD_shader_image_load_store_lod` *(iOS)* - `VK_AMD_shader_trinary_minmax` *(requires Metal 2.1)* - `VK_IMG_format_pvrtc` *(iOS)* +- `VK_INTEL_shader_integer_functions2` - `VK_NV_glsl_shader` In order to visibly display your content on *iOS* or *macOS*, you must enable the `VK_EXT_metal_surface` diff --git a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm index 2ca1daff..c0cf1307 100644 --- a/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm +++ b/MoltenVK/MoltenVK/GPUObjects/MVKDevice.mm @@ -133,6 +133,11 @@ void MVKPhysicalDevice::getFeatures(VkPhysicalDeviceFeatures2* features) { portabilityFeatures->samplerMipLodBias = false; break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: { + auto* shaderIntFuncsFeatures = (VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*)next; + shaderIntFuncsFeatures->shaderIntegerFunctions2 = true; + break; + } default: break; } diff --git a/MoltenVK/MoltenVK/Layers/MVKExtensions.def b/MoltenVK/MoltenVK/Layers/MVKExtensions.def index 041b9554..0a518a32 100644 --- a/MoltenVK/MoltenVK/Layers/MVKExtensions.def +++ b/MoltenVK/MoltenVK/Layers/MVKExtensions.def @@ -75,6 +75,7 @@ MVK_EXTENSION(AMD_negative_viewport_height, AMD_NEGATIVE_VIEWPORT_HEIGHT) MVK_EXTENSION(AMD_shader_image_load_store_lod, AMD_SHADER_IMAGE_LOAD_STORE_LOD) MVK_EXTENSION(AMD_shader_trinary_minmax, AMD_SHADER_TRINARY_MINMAX) MVK_EXTENSION(IMG_format_pvrtc, IMG_FORMAT_PVRTC) +MVK_EXTENSION(INTEL_shader_integer_functions2, INTEL_SHADER_INTEGER_FUNCTIONS_2) MVK_EXTENSION_LAST(NV_glsl_shader, NV_GLSL_SHADER) #undef MVK_EXTENSION