Vulkan-Docs/doc/specs/misc/GL_AMD_shader_fragment_mask...

135 lines
4.4 KiB
Plaintext

Name
AMD_shader_fragment_mask
Name Strings
GL_AMD_shader_fragment_mask
Contact
Aaron Hagan, AMD (aaron.hagan 'at' amd.com)
Contributors
Aaron Hagan, AMD
Timothy Lottes, AMD
Daniel Rakos, AMD
Status
Pending
Version
Last Modified Date: 08/07/2017
Author Revision: 2
Number
TBD
Dependencies
This extension is written against the OpenGL Shading Language
Specification, Version 4.50.
Overview
This extension introduces new GLSL built-in functions enabling more
efficient read access to fragment mask compressed multisampled color
images. Implementations supporting this extension can avoid storing
identical sample color values inside a single pixel. This is achieved
by introducing the concept of color fragments and fragment masks.
Color fragments are storage units inside a single pixel of a multisampled
color image that can hold a unique color value. Each pixel then has a
fragment mask which contains per sample indices that map a given color
sample to a particular color fragment.
This extension enables fetching the fragment mask and individual color
fragments from a multisampled color image.
IP Status
None.
New Procedures and Functions
None.
New Tokens
None.
Modifications to the OpenGL Shading Language Specification, Version 4.50
Including the following line in a shader can be used to control the
language features described in this extension:
#extension GL_AMD_shader_fmask : <behavior>
where <behavior> is as specified in section 3.3.
New preprocessor #defines are added to the OpenGL Shading Language:
#define GL_AMD_shader_fragement_mask 1
Additions to Chapter 8 of the OpenGL Shading Language (GLSL) Specification,
version 4.30 (Built-in functions)
Add to the table of functions 8.9.2, "Texel Lookup Functions", p. 164
+-----------------------------------+-------------------------------------+
| Syntax | Description |
+-----------------------------------+-------------------------------------+
| uint fragmentMaskFetchAMD( | Returns the fragment mask from a |
| gsampler2DMS sampler, | multisampled color image. The |
| ivec2 P) | fragment mask is a single uint where|
| | each subsequent 4 bit specifies the |
| uint fragmentMaskFetchAMD( | color fragment index corresponding |
| gsampler2DMSArray sampler, | to the color sample, starting from |
| ivec3 P) | the least significant bit. |
| | |
| uint fragmentMaskFetchAMD( | |
| gsubpassInputMS subpass) | |
+-----------------------------------+-------------------------------------+
| gvec4 fragmentFetchAMD( | Fetches a color fragment with a |
| gsampler2DMS sampler, | correspoding fragment mask value. |
| ivec2 P, | |
| uint fragIndex) | |
| | |
| gvec4 fragmentFetchAMD( | |
| gsampler2DMSArray sampler, | |
| ivec3 P, | |
| uint fragIndex)| |
| | |
| gvec4 fragmentFetchAMD( | |
| gsubpassInputMS subpass, | |
| uint fragIndex) | |
+-----------------------------------+-------------------------------------+
Additions to the AGL/GLX/WGL Specifications
None.
GLX Protocol
None.
Errors
None.
Issues
Revision History
Rev. Date Author Changes
---- ---------- -------- -----------------------------------------------
2 08/07/2017 ahagan Cleanup and prepared for posting.
1 04/24/2017 ahagan Initial draft.