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

135 lines
4.4 KiB
Plaintext
Raw Normal View History

Change log for September 5, 2017 Vulkan 1.0.60 spec update: * Bump API patch number and header version number to 60 for this update. Github Issues: * Document that <<queries-timestamps, Timestamp Queries>> can only be meaningfully compared when they are written from the same queue (public issue 216). * Document that the `<extension>` tag `type` attribute is required for non-disabled extensions (derived from, but does not close public issue 354). * Clean up registry schema length attribute descriptions to be consistent and correct (public issue 555). Internal Issues: * Replace as much of the hand-written extension appendix metadata as possible with asciidoc includes generated from corresponding attributes of +vk.xml+, and enhance the style guide to match. This avoids inconsistencies between +vk.xml+ and the appendices, and produces a more uniform style (internal issue 137). * Remove the generated extDependency.{py,sh} files from the tree and create them dynamically on demand instead, reducing merge conflicts (internal issue 713). * Add a prototype tool for generating in-place difference markup for sections guarded by asciidoc conditionals, and new syntax for open blocks to support it (internal issue 833). * Remove unnecessary restriction of etext:*SYNC_FD_BIT_KHR external handle types to the same physical device in the slink:VkPhysicalDeviceIDPropertiesKHR, flink:VkImportMemoryWin32HandleInfoKHR, slink:VkImportFenceWin32HandleInfoKHR, slink:VkImportFenceFdInfoKHR, slink:VkImportSemaphoreWin32HandleInfoKHR, slink:VkImportSemaphoreFdInfoKHR <<external-memory-handle-types-compatibility, External memory handle types compatibility>>, <<external-semaphore-handle-types-compatibility, External semaphore handle types compatibility>>, and <<external-fence-handle-types-compatibility, External fence handle types compatibility>> sections (internal issue 956). Other Issues: * Remove dependency of +VK_KHX_device_group+ on +VK_KHR_swapchain+ (there is an interaction, but not a strict dependency), and add a new `extension` attribute to the `<require` XML tag to allow classifying a subset of interfaces of an extension as requiring another extension. Update the registry schema and documentation accordingly. New Extensions: * `VK_AMD_shader_fragment_mask` (and related `GL_AMD_shader_fragment_mask` GLSL extension) * `VK_EXT_sample_locations` * `VK_EXT_validation_cache`
2017-09-04 10:06:55 +00:00
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.