Documentation ¶
Index ¶
Constants ¶
const ( // ExtensionName is "VK_KHR_external_semaphore_capabilities" 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
func (ExternalSemaphoreFeatureFlags) Register ¶
func (f ExternalSemaphoreFeatureFlags) Register(str string)
func (ExternalSemaphoreFeatureFlags) String ¶
func (f ExternalSemaphoreFeatureFlags) String() string
type ExternalSemaphoreHandleTypeFlags ¶
type ExternalSemaphoreHandleTypeFlags int32
ExternalSemaphoreHandleTypeFlags is a bitmask of valid external Semaphore handle types
func (ExternalSemaphoreHandleTypeFlags) Register ¶
func (f ExternalSemaphoreHandleTypeFlags) Register(str string)
func (ExternalSemaphoreHandleTypeFlags) String ¶
func (f ExternalSemaphoreHandleTypeFlags) String() 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 (*ExternalSemaphoreProperties) PopulateOutData ¶
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
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 (*PhysicalDeviceIDProperties) PopulateOutData ¶
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