Skip to content

Support for 'FullyCoveredEXT' from 'VK_EXT_conservative_rasterization' in GLSL #315

@Matheo-Moinet

Description

@Matheo-Moinet

Hello,

Using VK_EXT_conservative_rasterization on a Linux Vulkan-GLSL project, I am trying to use the FullyCoveredEXT builtin/decorator in the fragment shader, defined as:

If supported by the implementation, when a pixel rectangle is fully covered the fragment shader input variable builtin called FullyCoveredEXT is set to true. The shader variable works in either overestimation or underestimation mode.

Decorating a variable with the FullyCoveredEXT built-in decoration will make that variable indicate whether the fragment area is fully covered by the generating primitive. This variable is non-zero if conservative rasterization is enabled and the current fragment area is fully covered by the generating primitive, and is zero if the fragment is not covered or partially covered, or conservative rasterization is disabled.

There doesn't seem to be any builtin or decorated variable called FullyCoveredEXT without enabling an extension, but I couldn't find a working GLSL extension to do so. (I have tried GL_NV_conservative_raster without success.)

There seem to be a SPIR-V extension implementing this (SPV_EXT_fragment_fully_covered), and there already seem to be hardware support for this on my card NVIDIA RTX 4070 (in the struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT fullyCoveredFragmentShaderInputVariable is set to true).

fullyCoveredFragmentShaderInputVariable is VK_TRUE if the implementation supports the SPIR-V builtin fragment shader input variable FullyCoveredEXT specifying that conservative rasterization is enabled and the fragment area is fully covered by the generating primitive.

Have I missed something somewhere? Or perhaps is this not implemented yet in GLSL?
If this is not implemented, would it be possible to add it?

Thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions