KhronosGroup / Vulkan-LoaderAndValidationLayers

**Deprecated repository** for Vulkan loader and validation layers
Apache License 2.0
414 stars 172 forks source link

Using the new subgroup extensions in Vulkan 1.1 causes validation error #2669

Open AndreasReiten opened 6 years ago

AndreasReiten commented 6 years ago

This might be a duplicate of issue #2532, but I thought I'd report to be sure.

Alongside the Vulkan 1.1 core subgroup functionality, a new GLSL extension GL_KHR_shader_subgroup was introduced. Using any functionality from this extension results in this validation layer error message upon shader creation with vkCreateShaderModule:

SPIR-V module not valid: Invalid capability operand: 61

However, shaders using subgroups still seem to work correctly. I have confirmed that subgroup extensions are supported by my Vulkan logical device, and that vkEnumerateInstanceVersion returns version > 1.1. The device api-version is also > 1.1. The SPIR-V binaries were created using glslangValidator with target-env vulkan1.1.

I use a Nvidia GTX 1070. Latest drivers (non-beta). Latest LunarG SDK. Both my windows and unix OSes report the same error.

Example shader code to reproduce this error:

version 450

extension GL_KHR_shader_subgroup_basic : require

layout (local_size_x = 128) in;

void main() { uint num_subgroups = gl_NumSubgroups; }

Here's my vulkaninfo: vulkaninfo.txt

I'm new to this repository, so please let me know if there is anything else I can do to clarify the issue.