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

Vulkan.Extensions.VK_KHR_external_fence_win32

Synopsis

Documentation

getFenceWin32HandleKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the logical device that created the fence being exported.

device must be a valid Device handle

-> FenceGetWin32HandleInfoKHR

pGetWin32HandleInfo is a pointer to a FenceGetWin32HandleInfoKHR structure containing parameters of the export operation.

pGetWin32HandleInfo must be a valid pointer to a valid FenceGetWin32HandleInfoKHR structure

-> io HANDLE 

vkGetFenceWin32HandleKHR - Get a Windows HANDLE for a fence

Description

For handle types defined as NT handles, the handles returned by getFenceWin32HandleKHR are owned by the application. To avoid leaking resources, the application must release ownership of them using the CloseHandle system call when they are no longer needed.

Exporting a Windows handle from a fence may have side effects depending on the transference of the specified handle type, as described in Importing Fence Payloads.

Return Codes

Success
Failure

See Also

Device, FenceGetWin32HandleInfoKHR

importFenceWin32HandleKHR Source #

Arguments

:: forall io. MonadIO io 
=> Device

device is the logical device that created the fence.

device must be a valid Device handle

-> ImportFenceWin32HandleInfoKHR

pImportFenceWin32HandleInfo is a pointer to a ImportFenceWin32HandleInfoKHR structure specifying the fence and import parameters.

pImportFenceWin32HandleInfo must be a valid pointer to a valid ImportFenceWin32HandleInfoKHR structure

-> io () 

vkImportFenceWin32HandleKHR - Import a fence from a Windows HANDLE

Description

Importing a fence payload from Windows handles does not transfer ownership of the handle to the Vulkan implementation. For handle types defined as NT handles, the application must release ownership using the CloseHandle system call when the handle is no longer needed.

Applications can import the same fence payload into multiple instances of Vulkan, into the same instance from which it was exported, and multiple times into a given Vulkan instance.

Return Codes

Success
Failure

See Also

Device, ImportFenceWin32HandleInfoKHR

data ImportFenceWin32HandleInfoKHR Source #

VkImportFenceWin32HandleInfoKHR - (None)

Description

The handle types supported by handleType are:

Handle Type Transference Permanence Supported
EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT Reference Temporary,Permanent
EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT Reference Temporary,Permanent

Handle Types Supported by ImportFenceWin32HandleInfoKHR

Valid Usage

Valid Usage (Implicit)

Host Synchronization

  • Host access to fence must be externally synchronized

See Also

ExternalFenceHandleTypeFlagBits, Fence, FenceImportFlags, StructureType, importFenceWin32HandleKHR

Constructors

ImportFenceWin32HandleInfoKHR 

Fields

Instances

Instances details
Eq ImportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Show ImportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Generic ImportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Associated Types

type Rep ImportFenceWin32HandleInfoKHR :: Type -> Type #

Storable ImportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

FromCStruct ImportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

ToCStruct ImportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Zero ImportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

type Rep ImportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

data ExportFenceWin32HandleInfoKHR Source #

VkExportFenceWin32HandleInfoKHR - Structure specifying additional attributes of Windows handles exported from a fence

Description

If ExportFenceCreateInfo is not present in the same pNext chain, this structure is ignored.

If ExportFenceCreateInfo is present in the pNext chain of FenceCreateInfo with a Windows handleType, but either ExportFenceWin32HandleInfoKHR is not present in the pNext chain, or if it is but pAttributes is set to NULL, default security descriptor values will be used, and child processes created by the application will not inherit the handle, as described in the MSDN documentation for “Synchronization Object Security and Access Rights”1. Further, if the structure is not present, the access rights will be

DXGI_SHARED_RESOURCE_READ | DXGI_SHARED_RESOURCE_WRITE

for handles of the following types:

EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT

1
https://docs.microsoft.com/en-us/windows/win32/sync/synchronization-object-security-and-access-rights

Valid Usage

Valid Usage (Implicit)

  • If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value

See Also

StructureType

Constructors

ExportFenceWin32HandleInfoKHR 

Fields

Instances

Instances details
Eq ExportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Show ExportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Generic ExportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Associated Types

type Rep ExportFenceWin32HandleInfoKHR :: Type -> Type #

Storable ExportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

FromCStruct ExportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

ToCStruct ExportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Zero ExportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

type Rep ExportFenceWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

type Rep ExportFenceWin32HandleInfoKHR = D1 ('MetaData "ExportFenceWin32HandleInfoKHR" "Vulkan.Extensions.VK_KHR_external_fence_win32" "vulkan-3.4-inplace" 'False) (C1 ('MetaCons "ExportFenceWin32HandleInfoKHR" 'PrefixI 'True) (S1 ('MetaSel ('Just "attributes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Ptr SECURITY_ATTRIBUTES)) :*: (S1 ('MetaSel ('Just "dwAccess") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DWORD) :*: S1 ('MetaSel ('Just "name") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 LPCWSTR))))

data FenceGetWin32HandleInfoKHR Source #

VkFenceGetWin32HandleInfoKHR - Structure describing a Win32 handle fence export operation

Description

The properties of the handle returned depend on the value of handleType. See ExternalFenceHandleTypeFlagBits for a description of the properties of the defined external fence handle types.

Valid Usage

  • handleType must have been included in ExportFenceCreateInfo::handleTypes when the fence’s current payload was created
  • If handleType is defined as an NT handle, getFenceWin32HandleKHR must be called no more than once for each valid unique combination of fence and handleType
  • fence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload’s handle type was included in ExternalFenceProperties::exportFromImportedHandleTypes for handleType
  • If handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution
  • handleType must be defined as an NT handle or a global share handle

Valid Usage (Implicit)

See Also

ExternalFenceHandleTypeFlagBits, Fence, StructureType, getFenceWin32HandleKHR

Constructors

FenceGetWin32HandleInfoKHR 

Fields

Instances

Instances details
Eq FenceGetWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Show FenceGetWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Generic FenceGetWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Associated Types

type Rep FenceGetWin32HandleInfoKHR :: Type -> Type #

Storable FenceGetWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

FromCStruct FenceGetWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

ToCStruct FenceGetWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

Zero FenceGetWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

type Rep FenceGetWin32HandleInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_external_fence_win32

type Rep FenceGetWin32HandleInfoKHR = D1 ('MetaData "FenceGetWin32HandleInfoKHR" "Vulkan.Extensions.VK_KHR_external_fence_win32" "vulkan-3.4-inplace" 'False) (C1 ('MetaCons "FenceGetWin32HandleInfoKHR" 'PrefixI 'True) (S1 ('MetaSel ('Just "fence") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Fence) :*: S1 ('MetaSel ('Just "handleType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ExternalFenceHandleTypeFlagBits)))

type KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME = "VK_KHR_external_fence_win32" Source #

type HANDLE = Ptr () Source #