vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_NV_cuda_kernel_launch

Description

Name

VK_NV_cuda_kernel_launch - device extension

VK_NV_cuda_kernel_launch

Name String
VK_NV_cuda_kernel_launch
Extension Type
Device extension
Registered Extension Number
308
Revision
2
Ratification Status
Not ratified
Extension and Version Dependencies
VK_KHR_get_physical_device_properties2 or Vulkan Version 1.1
  • __This is a provisional extension and must be used with caution. See the description of provisional header files for enablement and stability details.__
API Interactions
  • Interacts with VK_EXT_debug_report
Contact

Other Extension Metadata

Last Modified Date
2020-09-30
Contributors
  • Eric Werness, NVIDIA

Description

Interoperability between APIs can sometimes create additional overhead depending on the platform used. This extension targets deployment of existing CUDA kernels via Vulkan, with a way to directly upload PTX kernels and dispatch the kernels from Vulkan’s command buffer without the need to use interoperability between the Vulkan and CUDA contexts. However, we do encourage actual development using the native CUDA runtime for the purpose of debugging and profiling.

The application will first have to create a CUDA module using createCudaModuleNV then create the CUDA function entry point with createCudaFunctionNV.

Then in order to dispatch this function, the application will create a command buffer where it will launch the kernel with cmdCudaLaunchKernelNV.

When done, the application will then destroy the function handle, as well as the CUDA module handle with destroyCudaFunctionNV and destroyCudaModuleNV.

To reduce the impact of compilation time, this extension offers the capability to return a binary cache from the PTX that was provided. For this, a first query for the required cache size is made with getCudaModuleCacheNV with a NULL pointer to a buffer and with a valid pointer receiving the size; then another call of the same function with a valid pointer to a buffer to retrieve the data. The resulting cache could then be used later for further runs of this application by sending this cache instead of the PTX code (using the same createCudaModuleNV), thus significantly speeding up the initialization of the CUDA module.

As with PipelineCache, the binary cache depends on the hardware architecture. The application must assume the cache might fail, and need to handle falling back to the original PTX code as necessary. Most often, the cache will succeed if the same GPU driver and architecture is used between the cache generation from PTX and the use of this cache. In the event of a new driver version, or if using a different GPU architecture, the cache is likely to become invalid.

New Object Types

New Commands

New Structures

New Enum Constants

If VK_EXT_debug_report is supported:

Issues

None.

Version History

  • Revision 1, 2020-03-01 (Tristan Lorach)
  • Revision 2, 2020-09-30 (Tristan Lorach)

See Also

No cross-references are available

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

createCudaModuleNV Source #

Arguments

:: MonadIO io 
=> Device

device is the logical device that creates the shader module.

-> CudaModuleCreateInfoNV

pCreateInfo is a pointer to a CudaModuleCreateInfoNV structure.

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

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

-> io CudaModuleNV 

vkCreateCudaModuleNV - Creates a new CUDA module object

Description

Once a CUDA module has been created, the application may create the function entry point, which must refer to one function in the module.

Valid Usage (Implicit)

  • device must be a valid Device handle
  • pCreateInfo must be a valid pointer to a valid CudaModuleCreateInfoNV structure
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • pModule must be a valid pointer to a CudaModuleNV handle
  • The device must have been created with at least 1 queue

Return Codes

Success
Failure

See Also

VK_NV_cuda_kernel_launch, AllocationCallbacks, CudaModuleCreateInfoNV, CudaModuleNV, Device

withCudaModuleNV :: MonadIO io => Device -> CudaModuleCreateInfoNV -> Maybe AllocationCallbacks -> (io CudaModuleNV -> (CudaModuleNV -> io ()) -> r) -> r Source #

A convenience wrapper to make a compatible pair of calls to createCudaModuleNV and destroyCudaModuleNV

To ensure that destroyCudaModuleNV 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.

getCudaModuleCacheNV Source #

Arguments

:: MonadIO io 
=> Device

device is the logical device that destroys the Function.

-> CudaModuleNV

module is the CUDA module.

-> io (Result, "cacheData" ::: ByteString) 

vkGetCudaModuleCacheNV - Get CUDA module cache

Description

If pCacheData is NULL, then the size of the binary cache, in bytes, is returned in pCacheSize. Otherwise, pCacheSize must point to a variable set by the application to the size of the buffer, in bytes, pointed to by pCacheData, and on return the variable is overwritten with the amount of data actually written to pCacheData. If pCacheSize is less than the size of the binary shader code, nothing is written to pCacheData, and INCOMPLETE will be returned instead of SUCCESS.

The returned cache may then be used later for further initialization of the CUDA module, by sending this cache instead of the PTX code when using createCudaModuleNV.

Using the binary cache instead of the original PTX code should significantly speed up initialization of the CUDA module, given that the whole compilation and validation will not be necessary.

As with PipelineCache, the binary cache depends on the specific implementation. The application must assume the cache upload might fail in many circumstances and thus may have to get ready for falling back to the original PTX code if necessary. Most often, the cache may succeed if the same device driver and architecture is used between the cache generation from PTX and the use of this cache. In the event of a new driver version or if using a different device architecture, this cache may become invalid.

This query does not behave consistently with the behavior described in Opaque Binary Data Results, for historical reasons.

If the amount of data available is larger than the passed pDataSize, the query returns a INCOMPLETE success status instead of a ERROR_NOT_ENOUGH_SPACE_KHR error status.

Valid Usage (Implicit)

  • device must be a valid Device handle
  • module must be a valid CudaModuleNV handle
  • pCacheSize must be a valid pointer to a size_t value
  • If the value referenced by pCacheSize is not 0, and pCacheData is not NULL, pCacheData must be a valid pointer to an array of pCacheSize bytes
  • module must have been created, allocated, or retrieved from device

Return Codes

Success
Failure

See Also

VK_NV_cuda_kernel_launch, CudaModuleNV, Device

createCudaFunctionNV Source #

Arguments

:: MonadIO io 
=> Device

device is the logical device that creates the shader module.

-> CudaFunctionCreateInfoNV

pCreateInfo is a pointer to a CudaFunctionCreateInfoNV structure.

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

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

-> io CudaFunctionNV 

vkCreateCudaFunctionNV - Creates a new CUDA function object

Valid Usage (Implicit)

  • device must be a valid Device handle
  • pCreateInfo must be a valid pointer to a valid CudaFunctionCreateInfoNV structure
  • If pAllocator is not NULL, pAllocator must be a valid pointer to a valid AllocationCallbacks structure
  • pFunction must be a valid pointer to a CudaFunctionNV handle
  • The device must have been created with at least 1 queue

Return Codes

Success
Failure

See Also

VK_NV_cuda_kernel_launch, AllocationCallbacks, CudaFunctionCreateInfoNV, CudaFunctionNV, Device

withCudaFunctionNV :: MonadIO io => Device -> CudaFunctionCreateInfoNV -> Maybe AllocationCallbacks -> (io CudaFunctionNV -> (CudaFunctionNV -> io ()) -> r) -> r Source #

A convenience wrapper to make a compatible pair of calls to createCudaFunctionNV and destroyCudaFunctionNV

To ensure that destroyCudaFunctionNV 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.

destroyCudaModuleNV Source #

Arguments

:: MonadIO io 
=> Device

device is the logical device that destroys the shader module.

-> CudaModuleNV

module is the handle of the CUDA module to destroy.

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

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

-> io () 

vkDestroyCudaModuleNV - Destroy a CUDA module

Valid Usage (Implicit)

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

See Also

VK_NV_cuda_kernel_launch, AllocationCallbacks, CudaModuleNV, Device

destroyCudaFunctionNV Source #

Arguments

:: MonadIO io 
=> Device

device is the logical device that destroys the Function.

-> CudaFunctionNV

function is the handle of the CUDA function to destroy.

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

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

-> io () 

vkDestroyCudaFunctionNV - Destroy a CUDA function

Valid Usage (Implicit)

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

See Also

VK_NV_cuda_kernel_launch, AllocationCallbacks, CudaFunctionNV, Device

cmdCudaLaunchKernelNV Source #

Arguments

:: MonadIO io 
=> CommandBuffer

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

-> CudaLaunchInfoNV

pLaunchInfo is a pointer to a CudaLaunchInfoNV structure in which the grid (similar to workgroup) dimension, function handle and related arguments are defined.

-> io () 

vkCmdCudaLaunchKernelNV - Dispatch compute work items

Description

When the command is executed, a global workgroup consisting of gridDimX × gridDimY × gridDimZ local workgroups is assembled.

Valid Usage (Implicit)

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 SecondaryBoth Outside VK_QUEUE_COMPUTE_BIT VK_QUEUE_GRAPHICS_BITAction

Conditional Rendering

vkCmdCudaLaunchKernelNV is not affected by conditional rendering

See Also

VK_NV_cuda_kernel_launch, CommandBuffer, CudaLaunchInfoNV

data CudaModuleCreateInfoNV Source #

VkCudaModuleCreateInfoNV - Structure specifying the parameters to create a CUDA Module

Valid Usage (Implicit)

See Also

VK_NV_cuda_kernel_launch, StructureType, createCudaModuleNV

Constructors

CudaModuleCreateInfoNV 

Fields

  • dataSize :: Word64

    dataSize is the length of the pData array.

    dataSize must be the total size in bytes of the PTX files or binary cache passed to pData

    dataSize must be greater than 0

  • data' :: Ptr ()

    pData is a pointer to CUDA code

    pData must be a valid pointer to an array of dataSize bytes

Instances

Instances details
Storable CudaModuleCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

Show CudaModuleCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

FromCStruct CudaModuleCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

ToCStruct CudaModuleCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

Zero CudaModuleCreateInfoNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

data CudaFunctionCreateInfoNV Source #

VkCudaFunctionCreateInfoNV - Structure specifying the parameters to create a CUDA Function

Valid Usage (Implicit)

See Also

VK_NV_cuda_kernel_launch, CudaModuleNV, StructureType, createCudaFunctionNV

Constructors

CudaFunctionCreateInfoNV 

Fields

  • module' :: CudaModuleNV

    module is the CUDA CudaModuleNV module in which the function resides.

    module must be a valid CudaModuleNV handle

  • name :: ByteString

    pName is a null-terminated UTF-8 string containing the name of the shader entry point for this stage.

    pName must be a null-terminated UTF-8 string

data CudaLaunchInfoNV Source #

VkCudaLaunchInfoNV - Structure specifying the parameters to launch a CUDA kernel

Description

Kernel parameters of function are specified via pParams, very much the same way as described in cuLaunchKernel

If function has N parameters, then pParams must be an array of N pointers and paramCount must be N. Each of kernelParams[0] through kernelParams[N-1] must point to a region of memory from which the actual kernel parameter will be copied. The number of kernel parameters and their offsets and sizes are not specified here as that information is stored in the CudaFunctionNV object.

The application-owned memory pointed to by pParams and kernelParams[0] through kernelParams[N-1] are consumed immediately, and may be altered or freed after cmdCudaLaunchKernelNV has returned.

Valid Usage (Implicit)

See Also

VK_NV_cuda_kernel_launch, CudaFunctionNV, StructureType, cmdCudaLaunchKernelNV

Constructors

CudaLaunchInfoNV 

Fields

  • function :: CudaFunctionNV

    function is the CUDA-Driver handle to the function being launched.

    function must be a valid CudaFunctionNV handle

  • gridDimX :: Word32

    gridDimX is the number of local workgroups to dispatch in the X dimension. It must be less than or equal to PhysicalDeviceLimits::maxComputeWorkGroupCount[0]

    gridDimX must be less than or equal to PhysicalDeviceLimits::maxComputeWorkGroupCount[0]

  • gridDimY :: Word32

    gridDimY is the number of local workgroups to dispatch in the Y dimension. It must be less than or equal to PhysicalDeviceLimits::maxComputeWorkGroupCount[1]

    gridDimY must be less than or equal to PhysicalDeviceLimits::maxComputeWorkGroupCount[1]

  • gridDimZ :: Word32

    gridDimZ is the number of local workgroups to dispatch in the Z dimension. It must be less than or equal to PhysicalDeviceLimits::maxComputeWorkGroupCount[2]

    gridDimZ must be less than or equal to PhysicalDeviceLimits::maxComputeWorkGroupCount[2]

  • blockDimX :: Word32

    blockDimX is block size in the X dimension.

  • blockDimY :: Word32

    blockDimY is block size in the Y dimension.

  • blockDimZ :: Word32

    blockDimZ is block size in the Z dimension.

  • sharedMemBytes :: Word32

    sharedMemBytes is the dynamic shared-memory size per thread block in bytes.

  • params :: Vector (Ptr ())

    pParams is a pointer to an array of paramCount pointers, corresponding to the arguments of function.

    pParams must be a pointer to a table of paramCount parameters, corresponding to the arguments of function

  • extras :: Vector (Ptr ())

    pExtras is reserved for future use.

    pExtras must be NULL

data PhysicalDeviceCudaKernelLaunchFeaturesNV Source #

VkPhysicalDeviceCudaKernelLaunchFeaturesNV - Structure describing whether cuda kernel launch is supported by the implementation

Members

This structure describes the following features:

Description

If the PhysicalDeviceCudaKernelLaunchFeaturesNV 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. If the application wishes to use a Device with any features described by PhysicalDeviceCudaKernelLaunchFeaturesNV, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

Valid Usage (Implicit)

See Also

VK_NV_cuda_kernel_launch, Bool32, StructureType

Constructors

PhysicalDeviceCudaKernelLaunchFeaturesNV 

Fields

Instances

Instances details
Eq PhysicalDeviceCudaKernelLaunchFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

Storable PhysicalDeviceCudaKernelLaunchFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

Show PhysicalDeviceCudaKernelLaunchFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

FromCStruct PhysicalDeviceCudaKernelLaunchFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

ToCStruct PhysicalDeviceCudaKernelLaunchFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

Zero PhysicalDeviceCudaKernelLaunchFeaturesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

data PhysicalDeviceCudaKernelLaunchPropertiesNV Source #

VkPhysicalDeviceCudaKernelLaunchPropertiesNV - Structure describing the compute capability version available

Members

The members of the PhysicalDeviceCudaKernelLaunchPropertiesNV structure describe the following features:

Description

If the PhysicalDeviceCudaKernelLaunchPropertiesNV 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_cuda_kernel_launch, StructureType

Constructors

PhysicalDeviceCudaKernelLaunchPropertiesNV 

Fields

Instances

Instances details
Eq PhysicalDeviceCudaKernelLaunchPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

Storable PhysicalDeviceCudaKernelLaunchPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

Show PhysicalDeviceCudaKernelLaunchPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

FromCStruct PhysicalDeviceCudaKernelLaunchPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

ToCStruct PhysicalDeviceCudaKernelLaunchPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

Zero PhysicalDeviceCudaKernelLaunchPropertiesNV Source # 
Instance details

Defined in Vulkan.Extensions.VK_NV_cuda_kernel_launch

type NV_CUDA_KERNEL_LAUNCH_EXTENSION_NAME = "VK_NV_cuda_kernel_launch" Source #

newtype CudaModuleNV Source #

Constructors

CudaModuleNV Word64 

Instances

Instances details
Eq CudaModuleNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Ord CudaModuleNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Storable CudaModuleNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Show CudaModuleNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

HasObjectType CudaModuleNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

IsHandle CudaModuleNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Zero CudaModuleNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

newtype CudaFunctionNV Source #

Constructors

CudaFunctionNV Word64 

Instances

Instances details
Eq CudaFunctionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Ord CudaFunctionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Storable CudaFunctionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Show CudaFunctionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

HasObjectType CudaFunctionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

IsHandle CudaFunctionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Zero CudaFunctionNV Source # 
Instance details

Defined in Vulkan.Extensions.Handles

newtype DebugReportObjectTypeEXT Source #

VkDebugReportObjectTypeEXT - Specify the type of an object handle

Description

'

DebugReportObjectTypeEXTVulkan Handle Type
DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXTUnknown/Undefined Handle
DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXTInstance
DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXTPhysicalDevice
DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXTDevice
DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXTQueue
DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXTSemaphore
DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXTCommandBuffer
DEBUG_REPORT_OBJECT_TYPE_FENCE_EXTFence
DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXTDeviceMemory
DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXTBuffer
DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXTImage
DEBUG_REPORT_OBJECT_TYPE_EVENT_EXTEvent
DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXTQueryPool
DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXTBufferView
DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXTImageView
DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXTShaderModule
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXTPipelineCache
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXTPipelineLayout
DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXTRenderPass
DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXTPipeline
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXTDescriptorSetLayout
DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXTSampler
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXTDescriptorPool
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXTDescriptorSet
DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXTFramebuffer
DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXTCommandPool
DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXTSurfaceKHR
DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXTSwapchainKHR
DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXTDebugReportCallbackEXT
DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXTDisplayKHR
DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXTDisplayModeKHR
DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXTDescriptorUpdateTemplate

DebugReportObjectTypeEXT and Vulkan Handle Relationship

The primary expected use of ERROR_VALIDATION_FAILED_EXT is for validation layer testing to prevent invalid commands from reaching the ICD. It is not expected that an application would see this error code during normal use of the validation layers. If an application returns TRUE in DebugUtilsMessengerCallbackDataEXT, the validation layers will return this error code instead of passing the command down the dispatch chain.

See Also

PFN_vkDebugReportCallbackEXT, VK_EXT_debug_marker, VK_EXT_debug_report, DebugMarkerObjectNameInfoEXT, DebugMarkerObjectTagInfoEXT, debugReportMessageEXT

Bundled Patterns

pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT :: DebugReportObjectTypeEXT 
pattern DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT :: DebugReportObjectTypeEXT 

Instances

Instances details
Eq DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Ord DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Storable DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Read DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Show DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report

Zero DebugReportObjectTypeEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_debug_report