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

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

=== Other Extension Metadata

*Last Modified Date*::
    2020-06-16
*IP Status*::
    No known IP claims.
*Contributors*::
  - Nicolas Caramelli

=== Description

The `VK_EXT_directfb_surface` extension is an instance extension.
It provides a mechanism to create a slink:VkSurfaceKHR object (defined by
the `apiext:VK_KHR_surface` extension) that refers to a DirectFB
code:IDirectFBSurface, as well as a query to determine support for rendering
via DirectFB.

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

=== Version History

 * Revision 1, 2020-06-16 (Nicolas Caramelli)
   - Initial version
