Enum

VkShaderCreateFlagBitsEXT

Bitmask controlling how a shader object is created

Possible values of the flags member of VkShaderCreateInfoEXT specifying how a shader object is created, are:

typedef enum VkShaderCreateFlagBitsEXT {
    VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
    // Provided by extensions
    VK_SHADER_CREATE_RESERVED_17_BIT_IMG = 0x00020000,
    VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT = 0x00000400,
    VK_SHADER_CREATE_RESERVED_16_BIT_KHR = 0x00010000,
    VK_SHADER_CREATE_INSTRUMENT_SHADER_BIT_ARM = 0x00000800,
    VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
    VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
    VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
    VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
    VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
    VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
    VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = 0x00000080,
    VK_SHADER_CREATE_RESERVED_8_BIT_EXT = 0x00000100,
    VK_SHADER_CREATE_RESERVED_9_BIT_EXT = 0x00000200,
    VK_SHADER_CREATE_RESERVED_12_BIT_EXT = 0x00001000,
    VK_SHADER_CREATE_64_BIT_INDEXING_BIT_EXT = 0x00008000,
    VK_SHADER_CREATE_RESERVED_18_BIT_KHR = 0x00040000,
} VkShaderCreateFlagBitsEXT;
  • VK_SHADER_CREATE_LINK_STAGE_BIT_EXT specifies that a shader is linked to all other shaders created in the same vkCreateShadersEXT call whose VkShaderCreateInfoEXT structures' flags include VK_SHADER_CREATE_LINK_STAGE_BIT_EXT.
  • VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT specifies that the SubgroupSize may vary in a task, mesh, or compute shader.
  • VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT specifies that the subgroup sizes must be launched with all invocations active in a task, mesh, or compute shader.
  • VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT specifies that a mesh shader must only be used without a task shader. Otherwise, the mesh shader must only be used with a task shader.
  • VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT specifies that a compute shader can be used with vkCmdDispatchBase with a non-zero base workgroup.
  • VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT specifies that a fragment shader can be used with a fragment shading rate attachment.
  • VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT specifies that a fragment shader can be used with a fragment density map attachment.
  • VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT specifies that the shader can be used in combination with Device-Generated Commands.
  • VK_SHADER_CREATE_64_BIT_INDEXING_BIT_EXT specifies that the shader enables 64-bit indexing.
  • VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT specifies that the shader will use descriptor heap mappings instead of descriptor set layouts.