// Copyright 2021 The Khronos Group, Inc.
//
// SPDX-License-Identifier: CC-BY-4.0

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

=== Other Extension Metadata

*Last Modified Date*::
    2021-06-06
*Contributors*::
  - Shahbaz Youssefi, Google
  - Bill Licea-Kane, Qualcomm Technologies, Inc.
  - Tobias Hector, AMD

=== Description

This extension incorporates ename:VK_ATTACHMENT_STORE_OP_NONE_EXT from
`apiext:VK_QCOM_render_pass_store_ops`, enabling applications to avoid
unnecessary synchronization when an attachment is not written during a
render pass.

Additionally, ename:VK_ATTACHMENT_LOAD_OP_NONE_EXT is introduced to avoid
unnecessary synchronization when an attachment is not used during a render
pass at all.
In combination with ename:VK_ATTACHMENT_STORE_OP_NONE_EXT, this is useful as
an alternative to preserve attachments in applications that cannot decide if
an attachment will be used in a render pass until after the necessary
pipelines have been created.

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

=== Version History

  * Revision 1, 2021-06-06 (Shahbaz Youssefi)
    - Initial revision, based on VK_QCOM_render_pass_store_ops.
    - Added VK_ATTACHMENT_LOAD_OP_NONE_EXT.
