vulkan-3.23: Bindings to the Vulkan graphics API.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Vulkan.Extensions.VK_NV_optical_flow

Description

Name

VK_NV_optical_flow - device extension

VK_NV_optical_flow

Name String
VK_NV_optical_flow
Extension Type
Device extension
Registered Extension Number
465
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_format_feature_flags2 to be enabled for any device-level functionality
  • Requires VK_KHR_synchronization2 to be enabled for any device-level functionality
Contact

Other Extension Metadata

Last Modified Date
2022-09-26
Contributors
  • Carsten Rohde, NVIDIA
  • Vipul Parashar, NVIDIA
  • Jeff Bolz, NVIDIA
  • Eric Werness, NVIDIA

Description

Optical flow are fundamental algorithms in computer vision (CV) area. This extension allows applications to estimate 2D displacement of pixels between two frames.

New Object Types

New Commands

New Structures

New Enums

New Bitmasks

New Enum Constants

Examples

// Example querying available input formats
VkOpticalFlowImageFormatInfoNV ofFormatInfo = { VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV };
ofFormatInfo.usage = VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV;

uint32_t count = 0;
vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, &ofFormatInfo, &count, NULL);
VkOpticalFlowImageFormatPropertiesNV* fmt = new VkOpticalFlowImageFormatPropertiesNV[count];
memset(fmt, 0, count  * sizeof(VkOpticalFlowImageFormatPropertiesNV));
for (uint32_t i = 0; i < count; i++) {
    fmt[i].sType = VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV;
}
vkGetPhysicalDeviceOpticalFlowImageFormatsNV(physicalDevice, &ofFormatInfo, &count, fmt);

// Pick one of the available formats
VkFormat inputFormat = fmt[0].format;

// Check feature support for optimal tiling
VkFormatProperties3 formatProperties3 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 };
VkFormatProperties2 formatProperties2 = { VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, &formatProperties3 };
vkGetPhysicalDeviceFormatProperties2(physicalDevice, inputFormat, &formatProperties2);
if (!(formatProperties3.optimalTilingFeatures & VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV)) {
    return false;
}

// Check support for image creation parameters
VkPhysicalDeviceImageFormatInfo2 imageFormatInfo2 = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, &ofFormatInfo };
imageFormatInfo2.format = inputFormat;
imageFormatInfo2.type = VK_IMAGE_TYPE_2D;
imageFormatInfo2.tiling = VK_IMAGE_TILING_OPTIMAL;
imageFormatInfo2.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;

VkImageFormatProperties2 imageFormatProperties2 = { VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 };
if (vkGetPhysicalDeviceImageFormatProperties2(physicalDevice, &imageFormatInfo2, &imageFormatProperties2) != VK_SUCCESS) {
    return false;
}

VkImageCreateInfo imageCreateInfo = { VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, &ofFormatInfo };
imageCreateInfo.imageType = VK_IMAGE_TYPE_2D;
imageCreateInfo.format = inputFormat;
imageCreateInfo.extent = { width, height, (uint32_t)1};
imageCreateInfo.mipLevels = 1;
imageCreateInfo.arrayLayers = 1;
imageCreateInfo.samples = VK_SAMPLE_COUNT_1_BIT;
imageCreateInfo.usage = VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT;;
imageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL;

vkCreateImage(device, &imageCreateInfo, NULL, &input);
"allocate memory, bind image, create view"

"do the same for reference and output"

// Create optical flow session
VkOpticalFlowSessionCreateInfoNV sessionCreateInfo = { VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV };
sessionCreateInfo.width = width;
sessionCreateInfo.height = height;
sessionCreateInfo.imageFormat = inputFormat;
sessionCreateInfo.flowVectorFormat = outputFormat;
sessionCreateInfo.outputGridSize = VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV;
sessionCreateInfo.performanceLevel = VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV;
VkOpticalFlowSessionNV session;
vkCreateOpticalFlowSessionNV(device, &sessionCreateInfo, NULL, &session);

"allocate command buffer"

"transfer images to VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV"
"transfer input images to VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV and output image to VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV"

vkBindOpticalFlowSessionImageNV(device, session, VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV, inputView, VK_IMAGE_LAYOUT_GENERAL);
vkBindOpticalFlowSessionImageNV(device, session, VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV, refView, VK_IMAGE_LAYOUT_GENERAL);
vkBindOpticalFlowSessionImageNV(device, session, VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV, outputView, VK_IMAGE_LAYOUT_GENERAL);

VkOpticalFlowExecuteInfoNV opticalFlowExecuteInfo = { VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV };
vkCmdOpticalFlowExecuteNV(cmd, session, &opticalFlowExecuteInfo);

"submit command buffer"

Version History

  • Revision 1, 2022-09-26 (Carsten Rohde)

    • Internal revisions

See Also

OpticalFlowExecuteFlagBitsNV, OpticalFlowExecuteFlagsNV, OpticalFlowExecuteInfoNV, OpticalFlowGridSizeFlagBitsNV, OpticalFlowGridSizeFlagsNV, OpticalFlowImageFormatInfoNV, OpticalFlowImageFormatPropertiesNV, OpticalFlowPerformanceLevelNV, OpticalFlowSessionBindingPointNV, OpticalFlowSessionCreateFlagBitsNV, OpticalFlowSessionCreateFlagsNV, OpticalFlowSessionCreateInfoNV, OpticalFlowSessionCreatePrivateDataInfoNV, OpticalFlowSessionNV, OpticalFlowUsageFlagBitsNV, OpticalFlowUsageFlagsNV, PhysicalDeviceOpticalFlowFeaturesNV, PhysicalDeviceOpticalFlowPropertiesNV, bindOpticalFlowSessionImageNV, cmdOpticalFlowExecuteNV, createOpticalFlowSessionNV, destroyOpticalFlowSessionNV, getPhysicalDeviceOpticalFlowImageFormatsNV

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

getPhysicalDeviceOpticalFlowImageFormatsNV Source #

Arguments

:: forall io. MonadIO io 
=> PhysicalDevice

physicalDevice is the physical device being queried.

-> OpticalFlowImageFormatInfoNV

pOpticalFlowImageFormatInfo is a pointer to a OpticalFlowImageFormatInfoNV structure specifying the optical flow usage for which information is returned.

-> io (Result, "imageFormatProperties" ::: Vector OpticalFlowImageFormatPropertiesNV) 

vkGetPhysicalDeviceOpticalFlowImageFormatsNV - Query image formats for optical flow

Description

If pImageFormatProperties is NULL, then the number of optical flow properties supported for the given physicalDevice is returned in pFormatCount. Otherwise, pFormatCount must point to a variable set by the user to the number of elements in the pImageFormatProperties array, and on return the variable is overwritten with the number of values actually written to pImageFormatProperties. If the value of pFormatCount is less than the number of optical flow properties supported, at most pFormatCount values will be written to pImageFormatProperties, and INCOMPLETE will be returned instead of SUCCESS, to indicate that not all the available values were returned. Before creating an image to be used as a optical flow frame, obtain the supported image creation parameters by querying with getPhysicalDeviceFormatProperties2 and getPhysicalDeviceImageFormatProperties2 using one of the reported formats and adding OpticalFlowImageFormatInfoNV to the pNext chain of PhysicalDeviceImageFormatInfo2. When querying the parameters with getPhysicalDeviceImageFormatProperties2 for images used for optical flow operations, the OpticalFlowImageFormatInfoNV::usage field should contain one or more of the bits defined in OpticalFlowUsageFlagBitsNV.

Valid Usage (Implicit)

  • pOpticalFlowImageFormatInfo must be a valid pointer to a valid OpticalFlowImageFormatInfoNV structure
  • pFormatCount must be a valid pointer to a uint32_t value
  • If the value referenced by pFormatCount is not 0, and pImageFormatProperties is not NULL, pImageFormatProperties must be a valid pointer to an array of pFormatCount OpticalFlowImageFormatPropertiesNV structures

Return Codes

Success
Failure

Note

FORMAT_B8G8R8A8_UNORM, FORMAT_R8_UNORM and FORMAT_G8_B8R8_2PLANE_420_UNORM are initially supported for images with optical usage OPTICAL_FLOW_USAGE_INPUT_BIT_NV.

FORMAT_R16G16_S10_5_NV is initially supported for images with optical usage OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV, OPTICAL_FLOW_USAGE_HINT_BIT_NV and OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV.

FORMAT_R8_UINT and FORMAT_R32_UINT are initially supported for images with optical usage OPTICAL_FLOW_USAGE_COST_BIT_NV. It is recommended to use FORMAT_R8_UINT because of the lower bandwidth.

See Also

VK_NV_optical_flow, OpticalFlowImageFormatInfoNV, OpticalFlowImageFormatPropertiesNV, PhysicalDevice

createOpticalFlowSessionNV Source #

Arguments

:: forall a io. (Extendss OpticalFlowSessionCreateInfoNV a, PokeChain a, MonadIO io) 
=> Device

device is the logical device that creates the optical flow session object.

-> OpticalFlowSessionCreateInfoNV a

pCreateInfo is a pointer to a OpticalFlowSessionCreateInfoNV structure containing parameters specifying the creation of the optical flow session.

-> ("allocator" ::: Maybe AllocationCallbacks)

pAllocator controls host memory allocation as described in the Memory Allocation chapter.

-> io OpticalFlowSessionNV 

vkCreateOpticalFlowSessionNV - Creates an optical flow session object

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

VK_NV_optical_flow, AllocationCallbacks, Device, OpticalFlowSessionCreateInfoNV, OpticalFlowSessionNV

withOpticalFlowSessionNV :: forall a io r. (Extendss OpticalFlowSessionCreateInfoNV a, PokeChain a, MonadIO io) => Device -> OpticalFlowSessionCreateInfoNV a -> Maybe AllocationCallbacks -> (io OpticalFlowSessionNV -> (OpticalFlowSessionNV -> io ()) -> r) -> r Source #

A convenience wrapper to make a compatible pair of calls to createOpticalFlowSessionNV and destroyOpticalFlowSessionNV

To ensure that destroyOpticalFlowSessionNV is always called: pass bracket (or the allocate function from your favourite resource management library) as the last argument. To just extract the pair pass (,) as the last argument.

destroyOpticalFlowSessionNV Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the device that was used for the creation of the optical flow session.

-> OpticalFlowSessionNV

session is the optical flow session to be destroyed.

-> ("allocator" ::: Maybe AllocationCallbacks)

pAllocator controls host memory allocation as described in the Memory Allocation chapter.

-> io () 

vkDestroyOpticalFlowSessionNV - Destroy optical flow session object

Valid Usage (Implicit)

  • device must be a valid Device handle
  • session must be a valid OpticalFlowSessionNV handle
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • session must have been created, allocated, or retrieved from device

See Also

VK_NV_optical_flow, AllocationCallbacks, Device, OpticalFlowSessionNV

bindOpticalFlowSessionImageNV :: forall io. MonadIO io => Device -> OpticalFlowSessionNV -> OpticalFlowSessionBindingPointNV -> ImageView -> ImageLayout -> io () Source #

vkBindOpticalFlowSessionImageNV - Bind image to an optical flow session

Parameters

  • device is the device which owns the optical flow session object session.
  • session is the optical flow session object to which the image view is to be bound.
  • bindingPoint specifies the binding point OpticalFlowSessionBindingPointNV to which the image view is bound.
  • view is a ImageView to be bound.
  • layout must specify the layout that the image subresources accessible from view will be in at the time the optical flow vectors are calculated with cmdOpticalFlowExecuteNV on a Device.

Valid Usage (Implicit)

  • device must be a valid Device handle

Return Codes

Success
Failure

See Also

VK_NV_optical_flow, Device, ImageLayout, ImageView, OpticalFlowSessionBindingPointNV, OpticalFlowSessionNV

cmdOpticalFlowExecuteNV Source #

Arguments

:: forall io. MonadIO io 
=> CommandBuffer

commandBuffer is the command buffer into which the command will be recorded.

-> OpticalFlowSessionNV

session is the optical flow session object on which this command is operating.

-> OpticalFlowExecuteInfoNV

pExecuteInfo Info is a pointer to a OpticalFlowExecuteInfoNV.

-> io () 

vkCmdOpticalFlowExecuteNV - Calculate optical flow vectors

Valid Usage (Implicit)

  • session must be a valid OpticalFlowSessionNV handle
  • pExecuteInfo must be a valid pointer to a valid OpticalFlowExecuteInfoNV structure
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support opticalflow operations
  • This command must only be called outside of a render pass instance
  • This command must only be called outside of a video coding scope
  • Both of commandBuffer, and session must have been created, allocated, or retrieved from the same Device

Host Synchronization

  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryOutside Outside Opticalflow Action

See Also

VK_NV_optical_flow, CommandBuffer, OpticalFlowExecuteInfoNV, OpticalFlowSessionNV

data PhysicalDeviceOpticalFlowFeaturesNV Source #

VkPhysicalDeviceOpticalFlowFeaturesNV - Structure describing the optical flow features supported by the implementation

Members

This structure describes the following feature:

Description

If the PhysicalDeviceOpticalFlowFeaturesNV 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. PhysicalDeviceOpticalFlowFeaturesNV can also be used in the pNext chain of DeviceCreateInfo to selectively enable these features.

Valid Usage (Implicit)

See Also

VK_NV_optical_flow, Bool32, StructureType

Constructors

PhysicalDeviceOpticalFlowFeaturesNV 

Fields

  • opticalFlow :: Bool

    opticalFlow indicates whether the implementation supports optical flow.

Instances

Instances details
Storable PhysicalDeviceOpticalFlowFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Show PhysicalDeviceOpticalFlowFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Eq PhysicalDeviceOpticalFlowFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

FromCStruct PhysicalDeviceOpticalFlowFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

ToCStruct PhysicalDeviceOpticalFlowFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Zero PhysicalDeviceOpticalFlowFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

data PhysicalDeviceOpticalFlowPropertiesNV Source #

VkPhysicalDeviceOpticalFlowPropertiesNV - Structure describing properties supported by VK_NV_optical_flow

Description

If the PhysicalDeviceOpticalFlowPropertiesNV 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_NV_optical_flow, Bool32, OpticalFlowGridSizeFlagsNV, StructureType

Constructors

PhysicalDeviceOpticalFlowPropertiesNV 

Fields

Instances

Instances details
Storable PhysicalDeviceOpticalFlowPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Show PhysicalDeviceOpticalFlowPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Eq PhysicalDeviceOpticalFlowPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

FromCStruct PhysicalDeviceOpticalFlowPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

ToCStruct PhysicalDeviceOpticalFlowPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Zero PhysicalDeviceOpticalFlowPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

data OpticalFlowImageFormatInfoNV Source #

VkOpticalFlowImageFormatInfoNV - Structure describing optical flow image format info

Valid Usage (Implicit)

See Also

VK_NV_optical_flow, OpticalFlowUsageFlagsNV, StructureType, getPhysicalDeviceOpticalFlowImageFormatsNV

Constructors

OpticalFlowImageFormatInfoNV 

Fields

Instances

Instances details
Storable OpticalFlowImageFormatInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Show OpticalFlowImageFormatInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Eq OpticalFlowImageFormatInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

FromCStruct OpticalFlowImageFormatInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

ToCStruct OpticalFlowImageFormatInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Zero OpticalFlowImageFormatInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

data OpticalFlowImageFormatPropertiesNV Source #

VkOpticalFlowImageFormatPropertiesNV - Structure describing properties of an optical flow image format

Valid Usage (Implicit)

See Also

VK_NV_optical_flow, Format, StructureType, getPhysicalDeviceOpticalFlowImageFormatsNV

Constructors

OpticalFlowImageFormatPropertiesNV 

Fields

  • format :: Format

    format is a Format that specifies the format that can be used with the specified optical flow image usages.

Instances

Instances details
Storable OpticalFlowImageFormatPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Show OpticalFlowImageFormatPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Eq OpticalFlowImageFormatPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

FromCStruct OpticalFlowImageFormatPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

ToCStruct OpticalFlowImageFormatPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Zero OpticalFlowImageFormatPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

data OpticalFlowSessionCreateInfoNV (es :: [Type]) Source #

VkOpticalFlowSessionCreateInfoNV - Structure specifying parameters of a newly created optical flow session

Valid Usage

Valid Usage (Implicit)

See Also

VK_NV_optical_flow, Format, OpticalFlowGridSizeFlagsNV, OpticalFlowPerformanceLevelNV, OpticalFlowSessionCreateFlagsNV, StructureType, createOpticalFlowSessionNV

Constructors

OpticalFlowSessionCreateInfoNV 

Fields

Instances

Instances details
Extensible OpticalFlowSessionCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Methods

extensibleTypeName :: String Source #

getNext :: forall (es :: [Type]). OpticalFlowSessionCreateInfoNV es -> Chain es Source #

setNext :: forall (ds :: [Type]) (es :: [Type]). OpticalFlowSessionCreateInfoNV ds -> Chain es -> OpticalFlowSessionCreateInfoNV es Source #

extends :: forall e b proxy. Typeable e => proxy e -> (Extends OpticalFlowSessionCreateInfoNV e => b) -> Maybe b Source #

Show (Chain es) => Show (OpticalFlowSessionCreateInfoNV es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

(Extendss OpticalFlowSessionCreateInfoNV es, PeekChain es) => FromCStruct (OpticalFlowSessionCreateInfoNV es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

(Extendss OpticalFlowSessionCreateInfoNV es, PokeChain es) => ToCStruct (OpticalFlowSessionCreateInfoNV es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

es ~ ('[] :: [Type]) => Zero (OpticalFlowSessionCreateInfoNV es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

data OpticalFlowSessionCreatePrivateDataInfoNV Source #

VkOpticalFlowSessionCreatePrivateDataInfoNV - Structure for NV internal use only

Valid Usage (Implicit)

See Also

VK_NV_optical_flow, StructureType

Constructors

OpticalFlowSessionCreatePrivateDataInfoNV 

Fields

Instances

Instances details
Storable OpticalFlowSessionCreatePrivateDataInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Show OpticalFlowSessionCreatePrivateDataInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

FromCStruct OpticalFlowSessionCreatePrivateDataInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

ToCStruct OpticalFlowSessionCreatePrivateDataInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Zero OpticalFlowSessionCreatePrivateDataInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

data OpticalFlowExecuteInfoNV Source #

VkOpticalFlowExecuteInfoNV - Structure specifying parameters of a optical flow vector calculation

Valid Usage

Valid Usage (Implicit)

  • pNext must be NULL
  • flags must be a valid combination of OpticalFlowExecuteFlagBitsNV values
  • If regionCount is not 0, pRegions must be a valid pointer to an array of regionCount Rect2D structures

See Also

VK_NV_optical_flow, OpticalFlowExecuteFlagsNV, Rect2D, StructureType, cmdOpticalFlowExecuteNV

Constructors

OpticalFlowExecuteInfoNV 

Fields

newtype OpticalFlowGridSizeFlagBitsNV Source #

VkOpticalFlowGridSizeFlagBitsNV - Bits specifying grid sizes for optical flow operations

See Also

VK_NV_optical_flow, OpticalFlowGridSizeFlagsNV

Instances

Instances details
Bits OpticalFlowGridSizeFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Methods

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

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

xor :: OpticalFlowGridSizeFlagBitsNV -> OpticalFlowGridSizeFlagBitsNV -> OpticalFlowGridSizeFlagBitsNV #

complement :: OpticalFlowGridSizeFlagBitsNV -> OpticalFlowGridSizeFlagBitsNV #

shift :: OpticalFlowGridSizeFlagBitsNV -> Int -> OpticalFlowGridSizeFlagBitsNV #

rotate :: OpticalFlowGridSizeFlagBitsNV -> Int -> OpticalFlowGridSizeFlagBitsNV #

zeroBits :: OpticalFlowGridSizeFlagBitsNV #

bit :: Int -> OpticalFlowGridSizeFlagBitsNV #

setBit :: OpticalFlowGridSizeFlagBitsNV -> Int -> OpticalFlowGridSizeFlagBitsNV #

clearBit :: OpticalFlowGridSizeFlagBitsNV -> Int -> OpticalFlowGridSizeFlagBitsNV #

complementBit :: OpticalFlowGridSizeFlagBitsNV -> Int -> OpticalFlowGridSizeFlagBitsNV #

testBit :: OpticalFlowGridSizeFlagBitsNV -> Int -> Bool #

bitSizeMaybe :: OpticalFlowGridSizeFlagBitsNV -> Maybe Int #

bitSize :: OpticalFlowGridSizeFlagBitsNV -> Int #

isSigned :: OpticalFlowGridSizeFlagBitsNV -> Bool #

shiftL :: OpticalFlowGridSizeFlagBitsNV -> Int -> OpticalFlowGridSizeFlagBitsNV #

unsafeShiftL :: OpticalFlowGridSizeFlagBitsNV -> Int -> OpticalFlowGridSizeFlagBitsNV #

shiftR :: OpticalFlowGridSizeFlagBitsNV -> Int -> OpticalFlowGridSizeFlagBitsNV #

unsafeShiftR :: OpticalFlowGridSizeFlagBitsNV -> Int -> OpticalFlowGridSizeFlagBitsNV #

rotateL :: OpticalFlowGridSizeFlagBitsNV -> Int -> OpticalFlowGridSizeFlagBitsNV #

rotateR :: OpticalFlowGridSizeFlagBitsNV -> Int -> OpticalFlowGridSizeFlagBitsNV #

popCount :: OpticalFlowGridSizeFlagBitsNV -> Int #

FiniteBits OpticalFlowGridSizeFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Storable OpticalFlowGridSizeFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Read OpticalFlowGridSizeFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Show OpticalFlowGridSizeFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Eq OpticalFlowGridSizeFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Ord OpticalFlowGridSizeFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Zero OpticalFlowGridSizeFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

newtype OpticalFlowUsageFlagBitsNV Source #

VkOpticalFlowUsageFlagBitsNV - Bits specifying usage for optical flow operations

See Also

VK_NV_optical_flow, OpticalFlowUsageFlagsNV

Bundled Patterns

pattern OPTICAL_FLOW_USAGE_UNKNOWN_NV :: OpticalFlowUsageFlagBitsNV 
pattern OPTICAL_FLOW_USAGE_INPUT_BIT_NV :: OpticalFlowUsageFlagBitsNV

OPTICAL_FLOW_USAGE_INPUT_BIT_NV specifies that the image can be used as input or reference frame for an optical flow operation.

pattern OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV :: OpticalFlowUsageFlagBitsNV

OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV specifies that the image can be used as output flow vector map for an optical flow operation.

pattern OPTICAL_FLOW_USAGE_HINT_BIT_NV :: OpticalFlowUsageFlagBitsNV

OPTICAL_FLOW_USAGE_HINT_BIT_NV specifies that the image can be used as hint flow vector map for an optical flow operation.

pattern OPTICAL_FLOW_USAGE_COST_BIT_NV :: OpticalFlowUsageFlagBitsNV

OPTICAL_FLOW_USAGE_COST_BIT_NV specifies that the image can be used as output cost map for an optical flow operation.

pattern OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV :: OpticalFlowUsageFlagBitsNV

OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV specifies that the image can be used as global flow vector for an optical flow operation.

Instances

Instances details
Bits OpticalFlowUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Methods

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

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

xor :: OpticalFlowUsageFlagBitsNV -> OpticalFlowUsageFlagBitsNV -> OpticalFlowUsageFlagBitsNV #

complement :: OpticalFlowUsageFlagBitsNV -> OpticalFlowUsageFlagBitsNV #

shift :: OpticalFlowUsageFlagBitsNV -> Int -> OpticalFlowUsageFlagBitsNV #

rotate :: OpticalFlowUsageFlagBitsNV -> Int -> OpticalFlowUsageFlagBitsNV #

zeroBits :: OpticalFlowUsageFlagBitsNV #

bit :: Int -> OpticalFlowUsageFlagBitsNV #

setBit :: OpticalFlowUsageFlagBitsNV -> Int -> OpticalFlowUsageFlagBitsNV #

clearBit :: OpticalFlowUsageFlagBitsNV -> Int -> OpticalFlowUsageFlagBitsNV #

complementBit :: OpticalFlowUsageFlagBitsNV -> Int -> OpticalFlowUsageFlagBitsNV #

testBit :: OpticalFlowUsageFlagBitsNV -> Int -> Bool #

bitSizeMaybe :: OpticalFlowUsageFlagBitsNV -> Maybe Int #

bitSize :: OpticalFlowUsageFlagBitsNV -> Int #

isSigned :: OpticalFlowUsageFlagBitsNV -> Bool #

shiftL :: OpticalFlowUsageFlagBitsNV -> Int -> OpticalFlowUsageFlagBitsNV #

unsafeShiftL :: OpticalFlowUsageFlagBitsNV -> Int -> OpticalFlowUsageFlagBitsNV #

shiftR :: OpticalFlowUsageFlagBitsNV -> Int -> OpticalFlowUsageFlagBitsNV #

unsafeShiftR :: OpticalFlowUsageFlagBitsNV -> Int -> OpticalFlowUsageFlagBitsNV #

rotateL :: OpticalFlowUsageFlagBitsNV -> Int -> OpticalFlowUsageFlagBitsNV #

rotateR :: OpticalFlowUsageFlagBitsNV -> Int -> OpticalFlowUsageFlagBitsNV #

popCount :: OpticalFlowUsageFlagBitsNV -> Int #

FiniteBits OpticalFlowUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Storable OpticalFlowUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Read OpticalFlowUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Show OpticalFlowUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Eq OpticalFlowUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Ord OpticalFlowUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Zero OpticalFlowUsageFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

newtype OpticalFlowPerformanceLevelNV Source #

VkOpticalFlowPerformanceLevelNV - Optical flow performance level types

See Also

VK_NV_optical_flow, OpticalFlowSessionCreateInfoNV

Instances

Instances details
Storable OpticalFlowPerformanceLevelNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Read OpticalFlowPerformanceLevelNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Show OpticalFlowPerformanceLevelNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Eq OpticalFlowPerformanceLevelNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Ord OpticalFlowPerformanceLevelNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Zero OpticalFlowPerformanceLevelNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

newtype OpticalFlowSessionBindingPointNV Source #

VkOpticalFlowSessionBindingPointNV - Binding points of an optical flow session

See Also

VK_NV_optical_flow, bindOpticalFlowSessionImageNV

Bundled Patterns

pattern OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV :: OpticalFlowSessionBindingPointNV 
pattern OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV :: OpticalFlowSessionBindingPointNV

OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV specifies the binding point for the input frame.

pattern OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV :: OpticalFlowSessionBindingPointNV

OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV specifies the binding point for the input reference frame.

pattern OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV :: OpticalFlowSessionBindingPointNV

OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV specifies the binding point for the optional external hint flow vectors.

pattern OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV :: OpticalFlowSessionBindingPointNV

OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV specifies the binding point for output flow vectors of default forward flow calcution.

pattern OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV :: OpticalFlowSessionBindingPointNV

OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV specifies the binding point for the optional output flow vector map of optional backward flow calcution.

pattern OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV :: OpticalFlowSessionBindingPointNV

OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV specifies the binding point for the optional output cost map of default forward flow calcution.

pattern OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV :: OpticalFlowSessionBindingPointNV

OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV specifies the binding point for the optional output cost map of optional backward flow calcution.

pattern OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV :: OpticalFlowSessionBindingPointNV

OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV specifies the binding point for the optional global flow value of default forward flow calcution.

Instances

Instances details
Storable OpticalFlowSessionBindingPointNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Read OpticalFlowSessionBindingPointNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Show OpticalFlowSessionBindingPointNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Eq OpticalFlowSessionBindingPointNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Ord OpticalFlowSessionBindingPointNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Zero OpticalFlowSessionBindingPointNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

newtype OpticalFlowSessionCreateFlagBitsNV Source #

VkOpticalFlowSessionCreateFlagBitsNV - Bits specifying flags for optical flow session

See Also

VK_NV_optical_flow, OpticalFlowSessionCreateFlagsNV

Bundled Patterns

pattern OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV :: OpticalFlowSessionCreateFlagBitsNV

OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV specifies that a ImageView with external flow vectors will be used as hints in performing the motion search and must be bound to OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV.

pattern OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV :: OpticalFlowSessionCreateFlagBitsNV

OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV specifies that the cost for the forward flow is generated in a ImageView which must be bound to OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV. Additionally, if OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV is also set, the cost for backward flow is generated in a ImageView which must be bound to OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV. The cost is the confidence level of the flow vector for each grid in the frame. The Cost implies how (in)accurate the flow vector is. Higher cost value implies the flow vector to be less accurate and vice-versa.

pattern OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV :: OpticalFlowSessionCreateFlagBitsNV

OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV specifies that a global flow vector is estimated from forward flow in a single pixel ImageView which must be bound to OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV.

pattern OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV :: OpticalFlowSessionCreateFlagBitsNV

OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV specifies that regions of interest can be specified in OpticalFlowExecuteInfoNV.

pattern OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV :: OpticalFlowSessionCreateFlagBitsNV

OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV specifies that backward flow is generated in addition to forward flow which is always generated.

Instances

Instances details
Bits OpticalFlowSessionCreateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Methods

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

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

xor :: OpticalFlowSessionCreateFlagBitsNV -> OpticalFlowSessionCreateFlagBitsNV -> OpticalFlowSessionCreateFlagBitsNV #

complement :: OpticalFlowSessionCreateFlagBitsNV -> OpticalFlowSessionCreateFlagBitsNV #

shift :: OpticalFlowSessionCreateFlagBitsNV -> Int -> OpticalFlowSessionCreateFlagBitsNV #

rotate :: OpticalFlowSessionCreateFlagBitsNV -> Int -> OpticalFlowSessionCreateFlagBitsNV #

zeroBits :: OpticalFlowSessionCreateFlagBitsNV #

bit :: Int -> OpticalFlowSessionCreateFlagBitsNV #

setBit :: OpticalFlowSessionCreateFlagBitsNV -> Int -> OpticalFlowSessionCreateFlagBitsNV #

clearBit :: OpticalFlowSessionCreateFlagBitsNV -> Int -> OpticalFlowSessionCreateFlagBitsNV #

complementBit :: OpticalFlowSessionCreateFlagBitsNV -> Int -> OpticalFlowSessionCreateFlagBitsNV #

testBit :: OpticalFlowSessionCreateFlagBitsNV -> Int -> Bool #

bitSizeMaybe :: OpticalFlowSessionCreateFlagBitsNV -> Maybe Int #

bitSize :: OpticalFlowSessionCreateFlagBitsNV -> Int #

isSigned :: OpticalFlowSessionCreateFlagBitsNV -> Bool #

shiftL :: OpticalFlowSessionCreateFlagBitsNV -> Int -> OpticalFlowSessionCreateFlagBitsNV #

unsafeShiftL :: OpticalFlowSessionCreateFlagBitsNV -> Int -> OpticalFlowSessionCreateFlagBitsNV #

shiftR :: OpticalFlowSessionCreateFlagBitsNV -> Int -> OpticalFlowSessionCreateFlagBitsNV #

unsafeShiftR :: OpticalFlowSessionCreateFlagBitsNV -> Int -> OpticalFlowSessionCreateFlagBitsNV #

rotateL :: OpticalFlowSessionCreateFlagBitsNV -> Int -> OpticalFlowSessionCreateFlagBitsNV #

rotateR :: OpticalFlowSessionCreateFlagBitsNV -> Int -> OpticalFlowSessionCreateFlagBitsNV #

popCount :: OpticalFlowSessionCreateFlagBitsNV -> Int #

FiniteBits OpticalFlowSessionCreateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Storable OpticalFlowSessionCreateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Read OpticalFlowSessionCreateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Show OpticalFlowSessionCreateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Eq OpticalFlowSessionCreateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Ord OpticalFlowSessionCreateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Zero OpticalFlowSessionCreateFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

newtype OpticalFlowExecuteFlagBitsNV Source #

VkOpticalFlowExecuteFlagBitsNV - Bits specifying flags for a optical flow vector calculation

See Also

VK_NV_optical_flow, OpticalFlowExecuteFlagsNV

Bundled Patterns

pattern OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV :: OpticalFlowExecuteFlagBitsNV

OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV specifies that temporal hints from previously generated flow vectors are not used. If temporal hints are enabled, optical flow vectors from previous cmdOpticalFlowExecuteNV call are automatically used as hints for the current cmdOpticalFlowExecuteNV call, to take advantage of temporal correlation in a video sequence. Temporal hints should be disabled if there is a-priori knowledge of no temporal correlation (e.g. a scene change, independent successive frame pairs).

Instances

Instances details
Bits OpticalFlowExecuteFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Methods

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

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

xor :: OpticalFlowExecuteFlagBitsNV -> OpticalFlowExecuteFlagBitsNV -> OpticalFlowExecuteFlagBitsNV #

complement :: OpticalFlowExecuteFlagBitsNV -> OpticalFlowExecuteFlagBitsNV #

shift :: OpticalFlowExecuteFlagBitsNV -> Int -> OpticalFlowExecuteFlagBitsNV #

rotate :: OpticalFlowExecuteFlagBitsNV -> Int -> OpticalFlowExecuteFlagBitsNV #

zeroBits :: OpticalFlowExecuteFlagBitsNV #

bit :: Int -> OpticalFlowExecuteFlagBitsNV #

setBit :: OpticalFlowExecuteFlagBitsNV -> Int -> OpticalFlowExecuteFlagBitsNV #

clearBit :: OpticalFlowExecuteFlagBitsNV -> Int -> OpticalFlowExecuteFlagBitsNV #

complementBit :: OpticalFlowExecuteFlagBitsNV -> Int -> OpticalFlowExecuteFlagBitsNV #

testBit :: OpticalFlowExecuteFlagBitsNV -> Int -> Bool #

bitSizeMaybe :: OpticalFlowExecuteFlagBitsNV -> Maybe Int #

bitSize :: OpticalFlowExecuteFlagBitsNV -> Int #

isSigned :: OpticalFlowExecuteFlagBitsNV -> Bool #

shiftL :: OpticalFlowExecuteFlagBitsNV -> Int -> OpticalFlowExecuteFlagBitsNV #

unsafeShiftL :: OpticalFlowExecuteFlagBitsNV -> Int -> OpticalFlowExecuteFlagBitsNV #

shiftR :: OpticalFlowExecuteFlagBitsNV -> Int -> OpticalFlowExecuteFlagBitsNV #

unsafeShiftR :: OpticalFlowExecuteFlagBitsNV -> Int -> OpticalFlowExecuteFlagBitsNV #

rotateL :: OpticalFlowExecuteFlagBitsNV -> Int -> OpticalFlowExecuteFlagBitsNV #

rotateR :: OpticalFlowExecuteFlagBitsNV -> Int -> OpticalFlowExecuteFlagBitsNV #

popCount :: OpticalFlowExecuteFlagBitsNV -> Int #

FiniteBits OpticalFlowExecuteFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Storable OpticalFlowExecuteFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Read OpticalFlowExecuteFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Show OpticalFlowExecuteFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Eq OpticalFlowExecuteFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Ord OpticalFlowExecuteFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

Zero OpticalFlowExecuteFlagBitsNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_optical_flow

pattern NV_OPTICAL_FLOW_SPEC_VERSION :: forall a. Integral a => a Source #

type NV_OPTICAL_FLOW_EXTENSION_NAME = "VK_NV_optical_flow" Source #

pattern NV_OPTICAL_FLOW_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #

newtype OpticalFlowSessionNV Source #

VkOpticalFlowSessionNV - Opaque handle to an optical flow session object

See Also

VK_NV_optical_flow, bindOpticalFlowSessionImageNV, cmdOpticalFlowExecuteNV, createOpticalFlowSessionNV, destroyOpticalFlowSessionNV

Instances

Instances details
Storable OpticalFlowSessionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Show OpticalFlowSessionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Eq OpticalFlowSessionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Ord OpticalFlowSessionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

HasObjectType OpticalFlowSessionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

IsHandle OpticalFlowSessionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Zero OpticalFlowSessionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles