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

[open,refpage='VkPresentFrameTokenGGP',desc='The Google Games Platform frame token',type='structs']
--
When the `apiext:VK_GGP_frame_token` extension is enabled, a Google Games
Platform frame token can: be specified when presenting an image to a
swapchain by adding a sname:VkPresentFrameTokenGGP structure to the
pname:pNext chain of the sname:VkPresentInfoKHR structure.

The sname:VkPresentFrameTokenGGP structure is defined as:

include::{generated}/api/structs/VkPresentFrameTokenGGP.txt[]

  * pname:sType is the type of this structure.
  * pname:pNext is `NULL` or a pointer to a structure extending this
    structure.
  * pname:frameToken is the Google Games Platform frame token.

.Valid Usage
****
  * [[VUID-VkPresentFrameTokenGGP-frameToken-02680]]
    pname:frameToken must: be a valid code:GgpFrameToken
****

include::{generated}/validity/structs/VkPresentFrameTokenGGP.txt[]
--
