khr_external_semaphore_capabilities

package
v2.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2023 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ExtensionName is "VK_KHR_external_semaphore_capabilities"
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_semaphore_capabilities.html
	ExtensionName string = C.VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME

	// LUIDSize is the length of a locally unique Device identifier
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_LUID_SIZE.html
	LUIDSize int = C.VK_LUID_SIZE_KHR

	// ExternalSemaphoreFeatureExportable specifies that handles of this type can be exported
	// from Vulkan Semaphore objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreFeatureFlagBits.html
	ExternalSemaphoreFeatureExportable ExternalSemaphoreFeatureFlags = C.VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR
	// ExternalSemaphoreFeatureImportable specifies that handles of this type can be imported
	// as Vulkan Semaphore objects
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreFeatureFlagBits.html
	ExternalSemaphoreFeatureImportable ExternalSemaphoreFeatureFlags = C.VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR

	// ExternalSemaphoreHandleTypeOpaqueFD specifies a POSIX file descriptor handle that has
	// only limited valid usage outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html
	ExternalSemaphoreHandleTypeOpaqueFD ExternalSemaphoreHandleTypeFlags = C.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR
	// ExternalSemaphoreHandleTypeOpaqueWin32 specifies an NT handle that has only limited
	// valid usage outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html
	ExternalSemaphoreHandleTypeOpaqueWin32 ExternalSemaphoreHandleTypeFlags = C.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR
	// ExternalSemaphoreHandleTypeOpaqueWin32KMT specifies a global share handle that has only
	// limited valid usage outside of Vulkan and other compatible APIs
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html
	ExternalSemaphoreHandleTypeOpaqueWin32KMT ExternalSemaphoreHandleTypeFlags = C.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR
	// ExternalSemaphoreHandleTypeD3D12Fence specifies an NT handle returned by
	// ID3D12Device::CreateSharedHandle referring to a Direct3D 12 fence, or
	// ID3D11Device5::CreateFence referring to a Direct3D 11 fence
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html
	ExternalSemaphoreHandleTypeD3D12Fence ExternalSemaphoreHandleTypeFlags = C.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR
	// ExternalSemaphoreHandleTypeSyncFD specifies a POSIX file descriptor handle to a Linux Sync
	// File or Android Fence object. It can be used with any native API accepting a valid sync file or
	// Fence as input
	//
	// https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html
	ExternalSemaphoreHandleTypeSyncFD ExternalSemaphoreHandleTypeFlags = C.VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Extension

type Extension interface {
	// PhysicalDeviceExternalSemaphoreProperties queries external Semaphore capabilities
	//
	// physicalDevice - The PhysicalDevice being queried
	//
	// o - Describes the parameters that would be consumed by Device.CreateSemaphore
	//
	// outData - A pre-allocated object in which the results will be populated. It should include any
	// desired chained OutData objects.
	//
	// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceExternalSemaphoreProperties.html
	PhysicalDeviceExternalSemaphoreProperties(physicalDevice core1_0.PhysicalDevice, o PhysicalDeviceExternalSemaphoreInfo, outData *ExternalSemaphoreProperties) error
}

Extension contains all commands for the khr_external_semaphore_capabilities extension

type ExternalSemaphoreFeatureFlags

type ExternalSemaphoreFeatureFlags int32

ExternalSemaphoreFeatureFlags describes features of an external Semaphore handle type

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreFeatureFlagBits.html

func (ExternalSemaphoreFeatureFlags) Register

func (f ExternalSemaphoreFeatureFlags) Register(str string)

func (ExternalSemaphoreFeatureFlags) String

type ExternalSemaphoreHandleTypeFlags

type ExternalSemaphoreHandleTypeFlags int32

ExternalSemaphoreHandleTypeFlags is a bitmask of valid external Semaphore handle types

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreHandleTypeFlagBits.html

func (ExternalSemaphoreHandleTypeFlags) Register

func (f ExternalSemaphoreHandleTypeFlags) Register(str string)

func (ExternalSemaphoreHandleTypeFlags) String

type ExternalSemaphoreProperties

type ExternalSemaphoreProperties struct {
	// ExportFromImportedHandleTypes specifies which types of imported handle HandleType can
	// be exported from
	ExportFromImportedHandleTypes ExternalSemaphoreHandleTypeFlags
	// CompatibleHandleTypes specifies handle types which can be specified at the same time as
	// HandleType when creating a Semaphore
	CompatibleHandleTypes ExternalSemaphoreHandleTypeFlags
	// ExternalSemaphoreFeatures describes the features of HandleType
	ExternalSemaphoreFeatures ExternalSemaphoreFeatureFlags

	common.NextOutData
}

ExternalSemaphoreProperties describes supported external Semaphore handle features

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkExternalSemaphoreProperties.html

func (*ExternalSemaphoreProperties) PopulateHeader

func (o *ExternalSemaphoreProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*ExternalSemaphoreProperties) PopulateOutData

func (o *ExternalSemaphoreProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type PhysicalDeviceExternalSemaphoreInfo

type PhysicalDeviceExternalSemaphoreInfo struct {
	// HandleType specifies the external Semaphore handle type for which capabilities will
	// be returned
	HandleType ExternalSemaphoreHandleTypeFlags

	common.NextOptions
}

PhysicalDeviceExternalSemaphoreInfo specifies Semaphore creation parameters

https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceExternalSemaphoreInfo.html

func (PhysicalDeviceExternalSemaphoreInfo) PopulateCPointer

func (o PhysicalDeviceExternalSemaphoreInfo) PopulateCPointer(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

type PhysicalDeviceIDProperties

type PhysicalDeviceIDProperties struct {
	// DeviceUUID represents a universally-unique identifier for the device
	DeviceUUID uuid.UUID
	// DriverUUID represents a universally-unique identifier for the driver build
	// in use by the device
	DriverUUID uuid.UUID
	// DeviceLUID represents a locally-unique identifier for the device
	DeviceLUID uint64
	// DeviceNodeMask identifies the node within a linked device adapter corresponding to the
	// Device
	DeviceNodeMask uint32
	// DeviceLUIDValid is true if DeviceLUID contains a valid LUID and DeviceNodeMask contains
	// a valid node mask
	DeviceLUIDValid bool

	common.NextOutData
}

PhysicalDeviceIDProperties speicifes IDs related to the PhysicalDevice

func (*PhysicalDeviceIDProperties) PopulateHeader

func (o *PhysicalDeviceIDProperties) PopulateHeader(allocator *cgoparam.Allocator, preallocatedPointer unsafe.Pointer, next unsafe.Pointer) (unsafe.Pointer, error)

func (*PhysicalDeviceIDProperties) PopulateOutData

func (o *PhysicalDeviceIDProperties) PopulateOutData(cDataPointer unsafe.Pointer, helpers ...any) (next unsafe.Pointer, err error)

type VulkanExtension

type VulkanExtension struct {
	// contains filtered or unexported fields
}

VulkanExtension is an implementation of the Extension interface that actually communicates with Vulkan. This is the default implementation. See the interface for more documentation.

func CreateExtensionFromDevice

func CreateExtensionFromDevice(device core1_0.Device) *VulkanExtension

CreateExtensionFromDevice produces an Extension object from a Device with khr_external_semaphore_capabilities loaded

func CreateExtensionFromDriver

func CreateExtensionFromDriver(driver khr_external_semaphore_capabilities_driver.Driver) *VulkanExtension

CreateExtensionFromDriver generates an Extension from a driver.Driver object- this is usually used in tests to build an Extension from mock drivers

func (*VulkanExtension) PhysicalDeviceExternalSemaphoreProperties

func (e *VulkanExtension) PhysicalDeviceExternalSemaphoreProperties(physicalDevice core1_0.PhysicalDevice, o PhysicalDeviceExternalSemaphoreInfo, outData *ExternalSemaphoreProperties) error

Directories

Path Synopsis
Package mock_external_semaphore_capabilities is a generated GoMock package.
Package mock_external_semaphore_capabilities is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL