VulkanRaytracingCycles 0.0.0
Cycles Render Engine With VulkanRaytracingShaderModules. ( Experiment , in progress)
extensions_vk.hpp File Reference
#include <vulkan/vulkan.h>

Go to the source code of this file.

Functions

void load_VK_EXTENSION_SUBSET (VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device, PFN_vkGetDeviceProcAddr getDeviceProcAddr)
 
void reset_VK_EXTENSION_SUBSET ()
 

Function Documentation

◆ load_VK_EXTENSION_SUBSET()

void load_VK_EXTENSION_SUBSET ( VkInstance  instance,
PFN_vkGetInstanceProcAddr  getInstanceProcAddr,
VkDevice  device,
PFN_vkGetDeviceProcAddr  getDeviceProcAddr 
)

Vulkan Extension Loader

The extensions_vk files takes care of loading and providing the symbols of Vulkan C Api extensions. It is generated by extensions_vk.lua which contains a whitelist of extensions to be made available.

The framework triggers this implicitly in the nvvk::Context class.

If you want to use it in your own code, see the instructions in the lua file how to generate it.

// loads all known extensions
load_VK_EXTENSION_SUBSET(instance, vkGetInstanceProcAddr, device, vkGetDeviceProcAddr);
// load individual extension
load_VK_KHR_push_descriptor(instance, vkGetInstanceProcAddr, device, vkGetDeviceProcAddr);
void load_VK_EXTENSION_SUBSET(VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device, PFN_vkGetDeviceProcAddr getDeviceProcAddr)
#define instance
#define device

Definition at line 1456 of file extensions_vk.cpp.

1456 {
1457#if VK_EXT_debug_marker
1458 load_VK_EXT_debug_marker(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1459#endif
1460#if VK_KHR_external_memory_win32 && defined(VK_USE_PLATFORM_WIN32_KHR)
1461 load_VK_KHR_external_memory_win32(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1462#endif
1463#if VK_KHR_external_memory_fd
1464 load_VK_KHR_external_memory_fd(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1465#endif
1466#if VK_KHR_external_semaphore_win32 && defined(VK_USE_PLATFORM_WIN32_KHR)
1467 load_VK_KHR_external_semaphore_win32(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1468#endif
1469#if VK_KHR_external_semaphore_fd
1470 load_VK_KHR_external_semaphore_fd(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1471#endif
1472#if VK_KHR_push_descriptor
1473 load_VK_KHR_push_descriptor(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1474#endif
1475#if VK_KHR_create_renderpass2
1476 load_VK_KHR_create_renderpass2(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1477#endif
1478#if VK_KHR_external_fence_win32 && defined(VK_USE_PLATFORM_WIN32_KHR)
1479 load_VK_KHR_external_fence_win32(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1480#endif
1481#if VK_EXT_debug_utils
1482 load_VK_EXT_debug_utils(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1483#endif
1484#if VK_EXT_sample_locations
1485 load_VK_EXT_sample_locations(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1486#endif
1487#if VK_KHR_ray_tracing
1488 load_VK_KHR_ray_tracing(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1489#endif
1490#if VK_NV_shading_rate_image
1491 load_VK_NV_shading_rate_image(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1492#endif
1493#if VK_NV_ray_tracing
1494 load_VK_NV_ray_tracing(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1495#endif
1496#if VK_KHR_draw_indirect_count
1497 load_VK_KHR_draw_indirect_count(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1498#endif
1499#if VK_EXT_calibrated_timestamps
1500 load_VK_EXT_calibrated_timestamps(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1501#endif
1502#if VK_NV_mesh_shader
1503 load_VK_NV_mesh_shader(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1504#endif
1505#if VK_NV_scissor_exclusive
1506 load_VK_NV_scissor_exclusive(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1507#endif
1508#if VK_EXT_buffer_device_address
1509 load_VK_EXT_buffer_device_address(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1510#endif
1511#if VK_NV_cooperative_matrix
1512 load_VK_NV_cooperative_matrix(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1513#endif
1514#if VK_NV_coverage_reduction_mode
1515 load_VK_NV_coverage_reduction_mode(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1516#endif
1517#if VK_KHR_buffer_device_address
1518 load_VK_KHR_buffer_device_address(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1519#endif
1520#if VK_EXT_host_query_reset
1521 load_VK_EXT_host_query_reset(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1522#endif
1523#if VK_KHR_pipeline_executable_properties
1524 load_VK_KHR_pipeline_executable_properties(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1525#endif
1526#if VK_NV_device_generated_commands
1527 load_VK_NV_device_generated_commands(instance, getInstanceProcAddr, device, getDeviceProcAddr);
1528#endif
1529
1530
1531
1532
1533}

◆ reset_VK_EXTENSION_SUBSET()

void reset_VK_EXTENSION_SUBSET ( )

Definition at line 1534 of file extensions_vk.cpp.

1534 {
1535#if VK_EXT_debug_marker
1536 has_VK_EXT_debug_marker = 0;
1537 pfn_vkDebugMarkerSetObjectTagEXT = 0;
1538 pfn_vkDebugMarkerSetObjectNameEXT = 0;
1539 pfn_vkCmdDebugMarkerBeginEXT = 0;
1540 pfn_vkCmdDebugMarkerEndEXT = 0;
1541 pfn_vkCmdDebugMarkerInsertEXT = 0;
1542#endif
1543
1544#if VK_KHR_external_memory_win32 && defined(VK_USE_PLATFORM_WIN32_KHR)
1545 has_VK_KHR_external_memory_win32 = 0;
1546 pfn_vkGetMemoryWin32HandleKHR = 0;
1547 pfn_vkGetMemoryWin32HandlePropertiesKHR = 0;
1548#endif
1549
1550#if VK_KHR_external_memory_fd
1551 has_VK_KHR_external_memory_fd = 0;
1552 pfn_vkGetMemoryFdKHR = 0;
1553 pfn_vkGetMemoryFdPropertiesKHR = 0;
1554#endif
1555
1556#if VK_KHR_external_semaphore_win32 && defined(VK_USE_PLATFORM_WIN32_KHR)
1557 has_VK_KHR_external_semaphore_win32 = 0;
1558 pfn_vkImportSemaphoreWin32HandleKHR = 0;
1559 pfn_vkGetSemaphoreWin32HandleKHR = 0;
1560#endif
1561
1562#if VK_KHR_external_semaphore_fd
1563 has_VK_KHR_external_semaphore_fd = 0;
1564 pfn_vkImportSemaphoreFdKHR = 0;
1565 pfn_vkGetSemaphoreFdKHR = 0;
1566#endif
1567
1568#if VK_KHR_push_descriptor
1569 has_VK_KHR_push_descriptor = 0;
1570 pfn_vkCmdPushDescriptorSetKHR = 0;
1571 pfn_vkCmdPushDescriptorSetWithTemplateKHR = 0;
1572#endif
1573
1574#if VK_KHR_create_renderpass2
1575 has_VK_KHR_create_renderpass2 = 0;
1576 pfn_vkCreateRenderPass2KHR = 0;
1577 pfn_vkCmdBeginRenderPass2KHR = 0;
1578 pfn_vkCmdNextSubpass2KHR = 0;
1579 pfn_vkCmdEndRenderPass2KHR = 0;
1580#endif
1581
1582#if VK_KHR_external_fence_win32 && defined(VK_USE_PLATFORM_WIN32_KHR)
1583 has_VK_KHR_external_fence_win32 = 0;
1584 pfn_vkImportFenceWin32HandleKHR = 0;
1585 pfn_vkGetFenceWin32HandleKHR = 0;
1586#endif
1587
1588#if VK_EXT_debug_utils
1589 has_VK_EXT_debug_utils = 0;
1590 pfn_vkSetDebugUtilsObjectNameEXT = 0;
1591 pfn_vkSetDebugUtilsObjectTagEXT = 0;
1592 pfn_vkQueueBeginDebugUtilsLabelEXT = 0;
1593 pfn_vkQueueEndDebugUtilsLabelEXT = 0;
1594 pfn_vkQueueInsertDebugUtilsLabelEXT = 0;
1595 pfn_vkCmdBeginDebugUtilsLabelEXT = 0;
1596 pfn_vkCmdEndDebugUtilsLabelEXT = 0;
1597 pfn_vkCmdInsertDebugUtilsLabelEXT = 0;
1598 pfn_vkCreateDebugUtilsMessengerEXT = 0;
1599 pfn_vkDestroyDebugUtilsMessengerEXT = 0;
1600 pfn_vkSubmitDebugUtilsMessageEXT = 0;
1601#endif
1602
1603#if VK_EXT_sample_locations
1604 has_VK_EXT_sample_locations = 0;
1605 pfn_vkCmdSetSampleLocationsEXT = 0;
1606 pfn_vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
1607#endif
1608
1609#if VK_KHR_ray_tracing
1610 has_VK_KHR_ray_tracing = 0;
1611 PFN_vkCreateAccelerationStructureKHR pfn_vkCreateAccelerationStructureKHR = 0;
1612 PFN_vkDestroyAccelerationStructureKHR pfn_vkDestroyAccelerationStructureKHR = 0;
1613 PFN_vkGetAccelerationStructureMemoryRequirementsKHR pfn_vkGetAccelerationStructureMemoryRequirementsKHR = 0;
1614 PFN_vkBindAccelerationStructureMemoryKHR pfn_vkBindAccelerationStructureMemoryKHR = 0;
1615 PFN_vkCmdBuildAccelerationStructureKHR pfn_vkCmdBuildAccelerationStructureKHR = 0;
1616 PFN_vkCmdBuildAccelerationStructureIndirectKHR pfn_vkCmdBuildAccelerationStructureIndirectKHR = 0;
1617 PFN_vkBuildAccelerationStructureKHR pfn_vkBuildAccelerationStructureKHR = 0;
1618 PFN_vkCopyAccelerationStructureKHR pfn_vkCopyAccelerationStructureKHR = 0;
1619 PFN_vkCopyAccelerationStructureToMemoryKHR pfn_vkCopyAccelerationStructureToMemoryKHR = 0;
1620 PFN_vkCopyMemoryToAccelerationStructureKHR pfn_vkCopyMemoryToAccelerationStructureKHR = 0;
1621 PFN_vkWriteAccelerationStructuresPropertiesKHR pfn_vkWriteAccelerationStructuresPropertiesKHR = 0;
1622 PFN_vkCmdCopyAccelerationStructureKHR pfn_vkCmdCopyAccelerationStructureKHR = 0;
1623 PFN_vkCmdCopyAccelerationStructureToMemoryKHR pfn_vkCmdCopyAccelerationStructureToMemoryKHR = 0;
1624 PFN_vkCmdCopyMemoryToAccelerationStructureKHR pfn_vkCmdCopyMemoryToAccelerationStructureKHR = 0;
1625 PFN_vkCmdTraceRaysKHR pfn_vkCmdTraceRaysKHR = 0;
1626 PFN_vkCreateRayTracingPipelinesKHR pfn_vkCreateRayTracingPipelinesKHR = 0;
1627 PFN_vkGetRayTracingShaderGroupHandlesKHR pfn_vkGetRayTracingShaderGroupHandlesKHR = 0;
1628 PFN_vkGetAccelerationStructureDeviceAddressKHR pfn_vkGetAccelerationStructureDeviceAddressKHR = 0;
1629 PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR pfn_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
1630 PFN_vkCmdWriteAccelerationStructuresPropertiesKHR pfn_vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
1631 PFN_vkCmdTraceRaysIndirectKHR pfn_vkCmdTraceRaysIndirectKHR = 0;
1632 PFN_vkGetDeviceAccelerationStructureCompatibilityKHR pfn_vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
1633#endif
1634
1635#if VK_NV_shading_rate_image
1636 has_VK_NV_shading_rate_image = 0;
1637 pfn_vkCmdBindShadingRateImageNV = 0;
1638 pfn_vkCmdSetViewportShadingRatePaletteNV = 0;
1639 pfn_vkCmdSetCoarseSampleOrderNV = 0;
1640#endif
1641
1642#if VK_NV_ray_tracing
1643 has_VK_NV_ray_tracing = 0;
1644 pfn_vkCreateAccelerationStructureNV = 0;
1645 pfn_vkDestroyAccelerationStructureNV = 0;
1646 pfn_vkGetAccelerationStructureMemoryRequirementsNV = 0;
1647 pfn_vkBindAccelerationStructureMemoryNV = 0;
1648 pfn_vkCmdBuildAccelerationStructureNV = 0;
1649 pfn_vkCmdCopyAccelerationStructureNV = 0;
1650 pfn_vkCmdTraceRaysNV = 0;
1651 pfn_vkCreateRayTracingPipelinesNV = 0;
1652 pfn_vkGetRayTracingShaderGroupHandlesNV = 0;
1653 pfn_vkGetAccelerationStructureHandleNV = 0;
1654 pfn_vkCmdWriteAccelerationStructuresPropertiesNV = 0;
1655 pfn_vkCompileDeferredNV = 0;
1656#endif
1657
1658#if VK_KHR_draw_indirect_count
1659 has_VK_KHR_draw_indirect_count = 0;
1660 pfn_vkCmdDrawIndirectCountKHR = 0;
1661 pfn_vkCmdDrawIndexedIndirectCountKHR = 0;
1662#endif
1663
1664#if VK_EXT_calibrated_timestamps
1665 has_VK_EXT_calibrated_timestamps = 0;
1666 pfn_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
1667 pfn_vkGetCalibratedTimestampsEXT = 0;
1668#endif
1669
1670#if VK_NV_mesh_shader
1671 has_VK_NV_mesh_shader = 0;
1672 pfn_vkCmdDrawMeshTasksNV = 0;
1673 pfn_vkCmdDrawMeshTasksIndirectNV = 0;
1674 pfn_vkCmdDrawMeshTasksIndirectCountNV = 0;
1675#endif
1676
1677#if VK_NV_scissor_exclusive
1678 has_VK_NV_scissor_exclusive = 0;
1679 pfn_vkCmdSetExclusiveScissorNV = 0;
1680#endif
1681
1682#if VK_EXT_buffer_device_address
1683 has_VK_EXT_buffer_device_address = 0;
1684 pfn_vkGetBufferDeviceAddressEXT = 0;
1685#endif
1686
1687#if VK_NV_cooperative_matrix
1688 has_VK_NV_cooperative_matrix = 0;
1689 pfn_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
1690#endif
1691
1692#if VK_NV_coverage_reduction_mode
1693 has_VK_NV_coverage_reduction_mode = 0;
1694 pfn_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
1695#endif
1696
1697#if VK_KHR_buffer_device_address
1698 has_VK_KHR_buffer_device_address = 0;
1699 pfn_vkGetBufferDeviceAddressKHR = 0;
1700 pfn_vkGetBufferOpaqueCaptureAddressKHR = 0;
1701 pfn_vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
1702#endif
1703
1704#if VK_EXT_host_query_reset
1705 has_VK_EXT_host_query_reset = 0;
1706 pfn_vkResetQueryPoolEXT = 0;
1707#endif
1708
1709#if VK_KHR_pipeline_executable_properties
1710 has_VK_KHR_pipeline_executable_properties = 0;
1711 pfn_vkGetPipelineExecutablePropertiesKHR = 0;
1712 pfn_vkGetPipelineExecutableStatisticsKHR = 0;
1713 pfn_vkGetPipelineExecutableInternalRepresentationsKHR = 0;
1714#endif
1715
1716#if VK_NV_device_generated_commands
1717 has_VK_NV_device_generated_commands = 0;
1718 pfn_vkGetGeneratedCommandsMemoryRequirementsNV = 0;
1719 pfn_vkCmdPreprocessGeneratedCommandsNV = 0;
1720 pfn_vkCmdExecuteGeneratedCommandsNV = 0;
1721 pfn_vkCmdBindPipelineShaderGroupNV = 0;
1722 pfn_vkCreateIndirectCommandsLayoutNV = 0;
1723 pfn_vkDestroyIndirectCommandsLayoutNV = 0;
1724#endif
1725
1726}