vulkan-3.21.1: Bindings to the Vulkan graphics API.
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Description

Name

VK_EXT_graphics_pipeline_library - device extension

VK_EXT_graphics_pipeline_library

Name String
VK_EXT_graphics_pipeline_library
Extension Type
Device extension
Registered Extension Number
321
Revision
1
Extension and Version Dependencies
  • Requires support for Vulkan 1.0
  • Requires VK_KHR_get_physical_device_properties2 to be enabled for any device-level functionality
  • Requires VK_KHR_pipeline_library to be enabled for any device-level functionality
Contact
Extension Proposal
VK_EXT_graphics_pipeline_library

Other Extension Metadata

Last Modified Date
2021-08-17
Contributors
  • Tobias Hector, AMD
  • Chris Glover, Google
  • Jeff Leger, Qualcomm
  • Jan-Harald Fredriksen, Arm
  • Piers Daniell, NVidia
  • Boris Zanin, Mobica
  • Krzysztof Niski, NVidia
  • Dan Ginsburg, Valve
  • Sebastian Aaltonen, Unity
  • Arseny Kapoulkine, Roblox
  • Calle Lejdfors, Ubisoft
  • Tiago Rodrigues, Ubisoft
  • Francois Duranleau, Gameloft

Description

This extension allows the separate compilation of four distinct parts of graphics pipelines, with the intent of allowing faster pipeline loading for applications reusing the same shaders or state in multiple pipelines. Each part can be independently compiled into a graphics pipeline library, with a final link step required to create an executable pipeline that can be bound to a command buffer.

New Structures

New Enums

New Bitmasks

New Enum Constants

Version History

  • Revision 1, 2021-08-17 (Tobias Hector)

    • Initial draft.

See Also

GraphicsPipelineLibraryCreateInfoEXT, GraphicsPipelineLibraryFlagBitsEXT, GraphicsPipelineLibraryFlagsEXT, PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT, PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT, PipelineLayoutCreateFlagBits

Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Synopsis

Documentation

data PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT Source #

VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT - Structure describing support for graphics pipeline libraries

Members

This structure describes the following feature:

Description

If the PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_EXT_graphics_pipeline_library, Bool32, StructureType

Constructors

PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT 

Fields

Instances

Instances details
Eq PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Show PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Storable PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

FromCStruct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

ToCStruct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Zero PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

data PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT Source #

VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT - Structure describing additional properties of graphics pipeline libraries

Description

If the PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT structure is included in the pNext chain of the PhysicalDeviceProperties2 structure passed to getPhysicalDeviceProperties2, it is filled in with each corresponding implementation-dependent property.

Valid Usage (Implicit)

See Also

VK_EXT_graphics_pipeline_library, Bool32, StructureType

Constructors

PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT 

Fields

  • graphicsPipelineLibraryFastLinking :: Bool

    graphicsPipelineLibraryFastLinking indicates whether fast linking of graphics pipelines is supported. If it is TRUE, creating a graphics pipeline entirely from pipeline libraries without PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT is comparable in cost to recording a command in a command buffer.

  • graphicsPipelineLibraryIndependentInterpolationDecoration :: Bool

    graphicsPipelineLibraryIndependentInterpolationDecoration indicates whether NoPerspective and Flat interpolation decorations in the last vertex processing stage and the fragment shader are required to match when using graphics pipeline libraries. If it is TRUE, the interpolation decorations do not need to match. If it is FALSE, these decorations must either be present in both stages or neither stage in order for a given interface variable to match.

Instances

Instances details
Eq PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Show PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Storable PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

FromCStruct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

ToCStruct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Zero PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

data GraphicsPipelineLibraryCreateInfoEXT Source #

VkGraphicsPipelineLibraryCreateInfoEXT - Structure specifying the subsets of the graphics pipeline being compiled

Description

If a GraphicsPipelineLibraryCreateInfoEXT structure is included in the pNext chain of GraphicsPipelineCreateInfo, it specifies the subsets of the graphics pipeline being created.

If this structure is omitted, and either GraphicsPipelineCreateInfo::flags includes PIPELINE_CREATE_LIBRARY_BIT_KHR or the GraphicsPipelineCreateInfo::pNext chain includes a PipelineLibraryCreateInfoKHR structure with a libraryCount greater than 0, it is as if flags is 0. Otherwise if this structure is omitted, it is as if flags includes all possible subsets of the graphics pipeline (i.e. a complete graphics pipeline).

Valid Usage (Implicit)

See Also

VK_EXT_graphics_pipeline_library, GraphicsPipelineLibraryFlagsEXT, StructureType

Constructors

GraphicsPipelineLibraryCreateInfoEXT 

Fields

Instances

Instances details
Eq GraphicsPipelineLibraryCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Show GraphicsPipelineLibraryCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Storable GraphicsPipelineLibraryCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

FromCStruct GraphicsPipelineLibraryCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

ToCStruct GraphicsPipelineLibraryCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Zero GraphicsPipelineLibraryCreateInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

newtype GraphicsPipelineLibraryFlagBitsEXT Source #

VkGraphicsPipelineLibraryFlagBitsEXT - Bitmask specifying the subset of a graphics pipeline to compile

See Also

VK_EXT_graphics_pipeline_library, GraphicsPipelineLibraryFlagsEXT

Instances

Instances details
Eq GraphicsPipelineLibraryFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Ord GraphicsPipelineLibraryFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Read GraphicsPipelineLibraryFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Show GraphicsPipelineLibraryFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Storable GraphicsPipelineLibraryFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Bits GraphicsPipelineLibraryFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Methods

(.&.) :: GraphicsPipelineLibraryFlagBitsEXT -> GraphicsPipelineLibraryFlagBitsEXT -> GraphicsPipelineLibraryFlagBitsEXT #

(.|.) :: GraphicsPipelineLibraryFlagBitsEXT -> GraphicsPipelineLibraryFlagBitsEXT -> GraphicsPipelineLibraryFlagBitsEXT #

xor :: GraphicsPipelineLibraryFlagBitsEXT -> GraphicsPipelineLibraryFlagBitsEXT -> GraphicsPipelineLibraryFlagBitsEXT #

complement :: GraphicsPipelineLibraryFlagBitsEXT -> GraphicsPipelineLibraryFlagBitsEXT #

shift :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> GraphicsPipelineLibraryFlagBitsEXT #

rotate :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> GraphicsPipelineLibraryFlagBitsEXT #

zeroBits :: GraphicsPipelineLibraryFlagBitsEXT #

bit :: Int -> GraphicsPipelineLibraryFlagBitsEXT #

setBit :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> GraphicsPipelineLibraryFlagBitsEXT #

clearBit :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> GraphicsPipelineLibraryFlagBitsEXT #

complementBit :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> GraphicsPipelineLibraryFlagBitsEXT #

testBit :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> Bool #

bitSizeMaybe :: GraphicsPipelineLibraryFlagBitsEXT -> Maybe Int #

bitSize :: GraphicsPipelineLibraryFlagBitsEXT -> Int #

isSigned :: GraphicsPipelineLibraryFlagBitsEXT -> Bool #

shiftL :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> GraphicsPipelineLibraryFlagBitsEXT #

unsafeShiftL :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> GraphicsPipelineLibraryFlagBitsEXT #

shiftR :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> GraphicsPipelineLibraryFlagBitsEXT #

unsafeShiftR :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> GraphicsPipelineLibraryFlagBitsEXT #

rotateL :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> GraphicsPipelineLibraryFlagBitsEXT #

rotateR :: GraphicsPipelineLibraryFlagBitsEXT -> Int -> GraphicsPipelineLibraryFlagBitsEXT #

popCount :: GraphicsPipelineLibraryFlagBitsEXT -> Int #

FiniteBits GraphicsPipelineLibraryFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

Zero GraphicsPipelineLibraryFlagBitsEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_graphics_pipeline_library

type EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME = "VK_EXT_graphics_pipeline_library" Source #