// Copyright (c) 2020 The Khronos Group Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/{refprefix}VK_EXT_color_write_enable.txt[]

=== Other Extension Metadata

*Last Modified Date*::
    2020-02-25
*IP Status*::
    No known IP claims.
*Contributors*::
  - Sharif Elcott, Google
  - Tobias Hector, AMD
  - Piers Daniell, NVIDIA

=== Description

This extension allows for selectively enabling and disabling writes to
output color attachments via a pipeline dynamic state.

The intended use cases for this new state are mostly identical to those of
colorWriteMask, such as selectively disabling writes to avoid feedback loops
between subpasses or bandwidth savings for unused outputs.
By making the state dynamic, one additional benefit is the ability to reduce
pipeline counts and pipeline switching via shaders that write a superset of
the desired data of which subsets are selected dynamically.
The reason for a new state, colorWriteEnable, rather than making
colorWriteMask dynamic is that, on many implementations, the more flexible
per-component semantics of the colorWriteMask state cannot be made dynamic
in a performant manner.

include::{generated}/interfaces/VK_EXT_color_write_enable.txt[]

=== Version History

 * Revision 1, 2020-01-25 (Sharif Elcott)
   - Internal revisions
