Skip to content

profiles: Add option to filter out all the flags that are combination of flags #897

Description

@christophe-lunarg

EG:

<html>
<body>
<!--StartFragment--><div class="sect1" style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr; color: rgb(34, 34, 34); font-family: &quot;Helvetica Neue&quot;, Helvetica, Helvetica, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><div class="sectionbody" style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;"><div id="VkShaderStageFlagBits" class="listingblock" style="box-sizing: border-box; margin: 0px 0px 1.25em; padding: 0px; direction: ltr;"><div class="content" style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr; position: relative;"><pre class="highlight" style="box-sizing: border-box; font-family: Consolas, &quot;Liberation Mono&quot;, Courier, monospace; font-size: 1em; white-space: pre-wrap; margin: 0px; padding: 1.25em 1.5625em 1.125em; direction: ltr; line-height: 1.6; color: rgb(38, 67, 87); font-weight: normal; border: 1px hidden rgb(102, 102, 102); border-radius: 0px; overflow-wrap: break-word; background: rgb(238, 238, 238);"><code class="language-c++" data-lang="c++" style="box-sizing: border-box; font-family: Consolas, &quot;Liberation Mono&quot;, Courier, monospace; font-size: 1em; font-weight: normal; color: rgb(38, 67, 87); border-radius: 4px; line-height: 1.6;">// Provided by VK_VERSION_1_0
typedef enum VkShaderStageFlagBits {
    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
    VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
} VkShaderStageFlagBits;</code></pre></div></div></div></div><div class="sect1" style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr; border-top: 0px solid rgb(221, 221, 221); color: rgb(34, 34, 34); font-family: &quot;Helvetica Neue&quot;, Helvetica, Helvetica, Arial, sans-serif; font-size: 16px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: normal; background-color: rgb(255, 255, 255); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;"><h2 id="_description" style="box-sizing: border-box; margin: 0.5em 0px; padding: 0px; direction: ltr; font-family: Noto, sans-serif; font-weight: normal; font-style: normal; color: black; text-rendering: optimizelegibility; line-height: 1.4; font-size: 2.3125em; border-bottom: 1px solid rgb(221, 221, 221);"><a class="anchor" href="https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html#_description" style="box-sizing: border-box; background: transparent; color: rgb(0, 104, 176); text-decoration: none !important; line-height: inherit; position: absolute; z-index: 1001; width: 1.5ex; margin-left: -1.5ex; display: block; visibility: hidden; text-align: center; font-weight: normal;"></a>Description</h2><div class="sectionbody" style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;"><div class="ulist" style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;"><ul style="box-sizing: border-box; margin: 0px 0px 0.75em 1.5em; padding: 0px; direction: ltr; font-size: 1em; line-height: 1.6; list-style-position: outside; font-family: Noto, sans-serif;"><li style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;"><p style="box-sizing: border-box; margin: 0px 0px 0.375em; padding: 0px; direction: ltr; font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; text-rendering: optimizelegibility;"><a href="https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html" style="box-sizing: border-box; background: transparent; color: rgb(0, 104, 176); text-decoration: none; line-height: inherit;">VK_SHADER_STAGE_VERTEX_BIT</a><span> </span>specifies the vertex stage.</p></li><li style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;"><p style="box-sizing: border-box; margin: 0px 0px 0.375em; padding: 0px; direction: ltr; font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; text-rendering: optimizelegibility;"><a href="https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html" style="box-sizing: border-box; background: transparent; color: rgb(0, 104, 176); text-decoration: none; line-height: inherit;">VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT</a><span> </span>specifies the tessellation control stage.</p></li><li style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;"><p style="box-sizing: border-box; margin: 0px 0px 0.375em; padding: 0px; direction: ltr; font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; text-rendering: optimizelegibility;"><a href="https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html" style="box-sizing: border-box; background: transparent; color: rgb(0, 104, 176); text-decoration: none; line-height: inherit;">VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT</a><span> </span>specifies the tessellation evaluation stage.</p></li><li style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;"><p style="box-sizing: border-box; margin: 0px 0px 0.375em; padding: 0px; direction: ltr; font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; text-rendering: optimizelegibility;"><a href="https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html" style="box-sizing: border-box; background: transparent; color: rgb(0, 104, 176); text-decoration: none; line-height: inherit;">VK_SHADER_STAGE_GEOMETRY_BIT</a><span> </span>specifies the geometry stage.</p></li><li style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;"><p style="box-sizing: border-box; margin: 0px 0px 0.375em; padding: 0px; direction: ltr; font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; text-rendering: optimizelegibility;"><a href="https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html" style="box-sizing: border-box; background: transparent; color: rgb(0, 104, 176); text-decoration: none; line-height: inherit;">VK_SHADER_STAGE_FRAGMENT_BIT</a><span> </span>specifies the fragment stage.</p></li><li style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;"><p style="box-sizing: border-box; margin: 0px 0px 0.375em; padding: 0px; direction: ltr; font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; text-rendering: optimizelegibility;"><a href="https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html" style="box-sizing: border-box; background: transparent; color: rgb(0, 104, 176); text-decoration: none; line-height: inherit;">VK_SHADER_STAGE_COMPUTE_BIT</a><span> </span>specifies the compute stage.</p></li><li style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;"><p style="box-sizing: border-box; margin: 0px 0px 0.375em; padding: 0px; direction: ltr; font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; text-rendering: optimizelegibility;"><a href="https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html" style="box-sizing: border-box; background: transparent; color: rgb(0, 104, 176); text-decoration: none; line-height: inherit;">VK_SHADER_STAGE_ALL_GRAPHICS</a><span> </span>is a combination of bits used as shorthand to specify all graphics stages defined above (excluding the compute stage).</p></li><li style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;"><p style="box-sizing: border-box; margin: 0px 0px 0.375em; padding: 0px; direction: ltr; font-family: Noto, sans-serif; font-weight: normal; font-size: 1em; line-height: 1.6; text-rendering: optimizelegibility;"><a href="https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html" style="box-sizing: border-box; background: transparent; color: rgb(0, 104, 176); text-decoration: none; line-height: inherit;">VK_SHADER_STAGE_ALL</a><span> </span>is a combination of bits used as shorthand to specify all shader stages supported by the device, including all additional stages which are introduced by extensions.</p></li></ul></div><div class="admonitionblock note" style="box-sizing: border-box; margin: 0px; padding: 0px; direction: ltr;">
Note | VK_SHADER_STAGE_ALL_GRAPHICS only includes the original five graphics stages included in Vulkan 1.0, and not any stages added by extensions. Thus, it may not have the desired effect in all cases.
-- | --


</div></div></div><!--EndFragment-->
</body>
</html>// Provided by VK_VERSION_1_0
typedef enum VkShaderStageFlagBits {
    VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
    VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
    VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
    VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
    VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
} VkShaderStageFlagBits;
Description
[VK_SHADER_STAGE_VERTEX_BIT](https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html) specifies the vertex stage.

[VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT](https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html) specifies the tessellation control stage.

[VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT](https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html) specifies the tessellation evaluation stage.

[VK_SHADER_STAGE_GEOMETRY_BIT](https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html) specifies the geometry stage.

[VK_SHADER_STAGE_FRAGMENT_BIT](https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html) specifies the fragment stage.

[VK_SHADER_STAGE_COMPUTE_BIT](https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html) specifies the compute stage.

[VK_SHADER_STAGE_ALL_GRAPHICS](https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html) is a combination of bits used as shorthand to specify all graphics stages defined above (excluding the compute stage).

[VK_SHADER_STAGE_ALL](https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html) is a combination of bits used as shorthand to specify all shader stages supported by the device, including all additional stages which are introduced by extensions.

Note
[VK_SHADER_STAGE_ALL_GRAPHICS](https://registry.khronos.org/VulkanSC/specs/1.0-extensions/man/html/VkShaderStageFlagBits.html) only includes the original five graphics stages included in Vulkan 1.0, and not any stages added by extensions. Thus, it may not have the desired effect in all cases.

VK_SHADER_STAGE_ALL and VK_SHADER_STAGE_ALL_GRAPHICS are not helping to identify individual feature.

GPUinfo.org seems to export invalid profiles such as:

                    "subgroupSupportedStages": [
                        "VK_SHADER_STAGE_FRAGMENT_BIT",
                        "VK_SHADER_STAGE_COMPUTE_BIT",
                        "VK_SHADER_STAGE_ALL_GRAPHICS",
                        "VK_SHADER_STAGE_ALL"
                    ],

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions