Browse Source

external: expose VK_KHR_copy_commands2.

At this point it's getting easier to say which commands *don't* have a
"V2" yet.
pull/494/head
Vladimír Vondruš 5 years ago
parent
commit
443a8b75fc
  1. 6
      doc/developers.dox
  2. 28
      doc/vulkan-mapping.dox
  3. 1
      doc/vulkan-support.dox
  4. 2
      src/Magnum/Vk/Device.h
  5. 1
      src/Magnum/Vk/Extensions.cpp
  6. 5
      src/Magnum/Vk/Extensions.h
  7. 1
      src/MagnumExternal/Vulkan/extensions.txt
  8. 6
      src/MagnumExternal/Vulkan/flextVk.cpp
  9. 141
      src/MagnumExternal/Vulkan/flextVk.h
  10. 12
      src/MagnumExternal/Vulkan/flextVkGlobal.h

6
doc/developers.dox

@ -737,9 +737,9 @@ unless it doesn't affect public API at all.
- update the numbering to stay monotonic and unique, round up start index
of next section to nearest ten to make the updates bearable
- in case there's a lot of new extensions,
@cpp Implementation::InstanceExtensionCount @ce /
@cpp Implementation::DeviceExtensionCount @ce might needed to be
increased
@cpp Implementation::InstanceExtensionCount @ce in `Instance.h` /
@cpp Implementation::DeviceExtensionCount @ce in `Device.h` might
need to be increased
2. Add them alphabetically ordered to the correct list in
`src/Magnum/Vk/Extensions.cpp`
3. Update existing extensions with version in which they become core (last

28
doc/vulkan-mapping.dox

@ -80,7 +80,7 @@ Vulkan function | Matching API
@fn_vk{CmdBindIndexBuffer} | |
@fn_vk{CmdBindPipeline} | |
@fn_vk{CmdBindVertexBuffers} | |
@fn_vk{CmdBlitImage} | |
@fn_vk{CmdBlitImage}, \n @fn_vk{CmdBlitImage2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@fn_vk{CmdBuildAccelerationStructuresIndirectKHR} @m_class{m-label m-flat m-warning} **KHR** | |
@fn_vk{CmdBuildAccelerationStructuresKHR} @m_class{m-label m-flat m-warning} **KHR** | |
@fn_vk{CmdClearAttachments} | |
@ -88,10 +88,10 @@ Vulkan function | Matching API
@fn_vk{CmdClearDepthStencilImage} | |
@fn_vk{CmdCopyAccelerationStructureKHR} @m_class{m-label m-flat m-warning} **KHR** | |
@fn_vk{CmdCopyAccelerationStructureToMemoryKHR} @m_class{m-label m-flat m-warning} **KHR** | |
@fn_vk{CmdCopyBuffer} | |
@fn_vk{CmdCopyBufferToImage} | |
@fn_vk{CmdCopyImage} | |
@fn_vk{CmdCopyImageToBuffer} | |
@fn_vk{CmdCopyBuffer}, \n @fn_vk{CmdCopyBuffer2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@fn_vk{CmdCopyBufferToImage}, \n @fn_vk{CmdCopyBufferToImage2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@fn_vk{CmdCopyImage}, \n @fn_vk{CmdCopyImage2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@fn_vk{CmdCopyImageToBuffer}, \n @fn_vk{CmdCopyImageToBuffer2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@fn_vk{CmdCopyMemoryToAccelerationStructureKHR} @m_class{m-label m-flat m-warning} **KHR** | |
@fn_vk{CmdCopyQueryPoolResults} | |
@fn_vk{CmdDebugMarkerBeginEXT} @m_class{m-label m-danger} **deprecated** @m_class{m-label m-flat m-warning} **EXT**, \n @fn_vk{CmdDebugMarkerEndEXT} @m_class{m-label m-danger} **deprecated** @m_class{m-label m-flat m-warning} **EXT** | |
@ -112,7 +112,7 @@ Vulkan function | Matching API
@fn_vk{CmdPushConstants} | |
@fn_vk{CmdResetEvent} | |
@fn_vk{CmdResetQueryPool} | |
@fn_vk{CmdResolveImage} | |
@fn_vk{CmdResolveImage}, \n @fn_vk{CmdResolveImage2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@fn_vk{CmdSetBlendConstants} | |
@fn_vk{CmdSetDepthBias} | |
@fn_vk{CmdSetDeviceMask} @m_class{m-label m-flat m-success} **KHR, 1.1** | |
@ -363,10 +363,11 @@ Vulkan structure | Matching API
@type_vk{BaseInStructure} | |
@type_vk{BaseOutStructure} | |
@type_vk{BindSparseInfo} | |
@type_vk{BufferCopy} | |
@type_vk{BlitImageInfo2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{BufferCopy}, \n @type_vk{BufferCopy2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{BufferCreateInfo} | @ref BufferCreateInfo
@type_vk{BufferDeviceAddressInfo} @m_class{m-label m-flat m-success} **KHR, 1.2** | |
@type_vk{BufferImageCopy} | |
@type_vk{BufferImageCopy}, \n @type_vk{BufferImageCopy2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{BufferMemoryBarrier} | |
@type_vk{BufferMemoryRequirementsInfo}, \n @type_vk{BufferMemoryRequirementsInfo2} @m_class{m-label m-flat m-success} **KHR, 1.1** | not exposed, internal to @ref Buffer::memoryRequirements()
@type_vk{BufferOpaqueCaptureAddressCreateInfo} @m_class{m-label m-flat m-success} **KHR, 1.2** | |
@ -390,6 +391,10 @@ Vulkan structure | Matching API
@type_vk{ComponentMapping} | |
@type_vk{ComputePipelineCreateInfo} | |
@type_vk{ConformanceVersion} | |
@type_vk{CopyBufferInfo2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{CopyBufferToImageInfo2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{CopyImageInfo2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{CopyImageToBuffer2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{CopyAccelerationStructureInfoKHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{CopyAccelerationStructureToMemoryInfoKHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{CopyMemoryToAccelerationStructureInfoKHR} @m_class{m-label m-flat m-warning} **KHR** | |
@ -486,8 +491,8 @@ Vulkan structure | Matching API
Vulkan structure | Matching API
--------------------------------------- | ------------
@type_vk{ImageBlit} | |
@type_vk{ImageCopy} | |
@type_vk{ImageBlit}, \n @type_vk{ImageBlit2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{ImageCopy}, \n @type_vk{ImageCopy2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{ImageCreateInfo} | @ref ImageCreateInfo
@type_vk{ImageFormatListCreateInfo} @m_class{m-label m-flat m-success} **KHR, 1.2** | |
@type_vk{ImageFormatProperties}, \n @type_vk{ImageFormatProperties2} @m_class{m-label m-flat m-success} **KHR, 1.1** | |
@ -495,7 +500,7 @@ Vulkan structure | Matching API
@type_vk{ImageMemoryBarrier} | |
@type_vk{ImageMemoryRequirementsInfo}, \n @type_vk{ImageMemoryRequirementsInfo2} @m_class{m-label m-flat m-success} **KHR, 1.1** | not exposed, internal to @ref Image::memoryRequirements()
@type_vk{ImagePlaneMemoryRequirementsInfo} @m_class{m-label m-flat m-success} **KHR, 1.1** | |
@type_vk{ImageResolve} | |
@type_vk{ImageResolve}, \n @type_vk{ImageResolve2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@type_vk{ImageSparseMemoryRequirementsInfo2} @m_class{m-label m-flat m-success} **KHR, 1.1** | |
@type_vk{ImageStencilUsageCreateInfo} @m_class{m-label m-flat m-success} **EXT, 1.2** | |
@type_vk{ImageViewCreateInfo} | @ref ImageViewCreateInfo
@ -644,6 +649,7 @@ Vulkan structure | Matching API
@type_vk{RenderPassCreateInfo}, \n @type_vk{RenderPassCreateInfo2} @m_class{m-label m-flat m-success} **KHR, 1.2** | @ref RenderPassCreateInfo
@type_vk{RenderPassMultiviewCreateInfo} @m_class{m-label m-flat m-success} **KHR, 1.1** | |
@type_vk{RenderPassInputAttachmentAspectCreateInfo} @m_class{m-label m-flat m-success} **KHR, 1.1** | |
@type_vk{ResolveImageInfo2KHR} @m_class{m-label m-flat m-warning} **KHR** | |
@subsection vulkan-mapping-structures-s S

1
doc/vulkan-support.dox

@ -126,6 +126,7 @@ Extension | Status
@vk_extension{KHR,portability_subset} | done except properties
@vk_extension{KHR,deferred_host_operations} | |
@vk_extension{KHR,pipeline_library} | |
@vk_extension{KHR,copy_commands2} | |
@vk_extension{KHR,ray_tracing_pipeline} | |
@vk_extension{KHR,ray_query} | |
@vk_extension{IMG,format_pvrtc} | done

2
src/Magnum/Vk/Device.h

@ -44,7 +44,7 @@
namespace Magnum { namespace Vk {
namespace Implementation {
enum: std::size_t { ExtensionCount = 72 };
enum: std::size_t { ExtensionCount = 96 };
struct DeviceState;
}

1
src/Magnum/Vk/Extensions.cpp

@ -73,6 +73,7 @@ constexpr Extension DeviceExtensions[] {
Extensions::EXT::vertex_attribute_divisor{},
Extensions::IMG::format_pvrtc{},
Extensions::KHR::acceleration_structure{},
Extensions::KHR::copy_commands2{},
Extensions::KHR::deferred_host_operations{},
Extensions::KHR::pipeline_library{},
Extensions::KHR::portability_subset{},

5
src/Magnum/Vk/Extensions.h

@ -166,8 +166,9 @@ namespace EXT {
_extension(67, KHR,buffer_device_address, Vk10, Vk12) // #258
_extension(68, KHR,deferred_host_operations, Vk10, None) // #259
_extension(69, KHR,pipeline_library, Vk10, None) // #291
_extension(70, KHR,ray_tracing_pipeline, Vk11, None) // #348
_extension(71, KHR,ray_query, Vk11, None) // #349
_extension(70, KHR,copy_commands2, Vk10, None) // #338
_extension(71, KHR,ray_tracing_pipeline, Vk11, None) // #348
_extension(72, KHR,ray_query, Vk11, None) // #349
}
#undef _extension

1
src/MagnumExternal/Vulkan/extensions.txt vendored

@ -68,6 +68,7 @@ extension KHR_acceleration_structure optional
extension KHR_portability_subset optional
extension KHR_deferred_host_operations optional
extension KHR_pipeline_library optional
extension KHR_copy_commands2 optional
extension KHR_ray_tracing_pipeline optional
extension KHR_ray_query optional

6
src/MagnumExternal/Vulkan/flextVk.cpp vendored

@ -111,6 +111,12 @@ void flextVkInitDevice(VkDevice device, FlextVkDevice* data, PFN_vkVoidFunction(
data->GetBufferDeviceAddressKHR = reinterpret_cast<VkDeviceAddress(VKAPI_PTR*)(VkDevice, const VkBufferDeviceAddressInfo*)>(getDeviceProcAddr(device, "vkGetBufferDeviceAddressKHR"));
data->GetBufferOpaqueCaptureAddressKHR = reinterpret_cast<uint64_t(VKAPI_PTR*)(VkDevice, const VkBufferDeviceAddressInfo*)>(getDeviceProcAddr(device, "vkGetBufferOpaqueCaptureAddressKHR"));
data->GetDeviceMemoryOpaqueCaptureAddressKHR = reinterpret_cast<uint64_t(VKAPI_PTR*)(VkDevice, const VkDeviceMemoryOpaqueCaptureAddressInfo*)>(getDeviceProcAddr(device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR"));
data->CmdBlitImage2KHR = reinterpret_cast<void(VKAPI_PTR*)(VkCommandBuffer, const VkBlitImageInfo2KHR*)>(getDeviceProcAddr(device, "vkCmdBlitImage2KHR"));
data->CmdCopyBuffer2KHR = reinterpret_cast<void(VKAPI_PTR*)(VkCommandBuffer, const VkCopyBufferInfo2KHR*)>(getDeviceProcAddr(device, "vkCmdCopyBuffer2KHR"));
data->CmdCopyBufferToImage2KHR = reinterpret_cast<void(VKAPI_PTR*)(VkCommandBuffer, const VkCopyBufferToImageInfo2KHR*)>(getDeviceProcAddr(device, "vkCmdCopyBufferToImage2KHR"));
data->CmdCopyImage2KHR = reinterpret_cast<void(VKAPI_PTR*)(VkCommandBuffer, const VkCopyImageInfo2KHR*)>(getDeviceProcAddr(device, "vkCmdCopyImage2KHR"));
data->CmdCopyImageToBuffer2KHR = reinterpret_cast<void(VKAPI_PTR*)(VkCommandBuffer, const VkCopyImageToBufferInfo2KHR*)>(getDeviceProcAddr(device, "vkCmdCopyImageToBuffer2KHR"));
data->CmdResolveImage2KHR = reinterpret_cast<void(VKAPI_PTR*)(VkCommandBuffer, const VkResolveImageInfo2KHR*)>(getDeviceProcAddr(device, "vkCmdResolveImage2KHR"));
data->CmdBeginRenderPass2KHR = reinterpret_cast<void(VKAPI_PTR*)(VkCommandBuffer, const VkRenderPassBeginInfo*, const VkSubpassBeginInfo*)>(getDeviceProcAddr(device, "vkCmdBeginRenderPass2KHR"));
data->CmdEndRenderPass2KHR = reinterpret_cast<void(VKAPI_PTR*)(VkCommandBuffer, const VkSubpassEndInfo*)>(getDeviceProcAddr(device, "vkCmdEndRenderPass2KHR"));
data->CmdNextSubpass2KHR = reinterpret_cast<void(VKAPI_PTR*)(VkCommandBuffer, const VkSubpassBeginInfo*, const VkSubpassEndInfo*)>(getDeviceProcAddr(device, "vkCmdNextSubpass2KHR"));

141
src/MagnumExternal/Vulkan/flextVk.h vendored

@ -284,6 +284,11 @@ extern "C" {
#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
/* VK_KHR_copy_commands2 */
#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
/* VK_KHR_shader_float_controls */
#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
@ -319,7 +324,7 @@ extern "C" {
// Vulkan 1.2 version number
#define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0
// Version of this file
#define VK_HEADER_VERSION 165
#define VK_HEADER_VERSION 166
// Complete version of this file
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION)
#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
@ -1563,6 +1568,17 @@ typedef enum {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = 1000337000,
VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = 1000337001,
VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = 1000337002,
VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = 1000337003,
VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = 1000337004,
VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = 1000337005,
VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = 1000337006,
VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = 1000337007,
VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008,
VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009,
VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
@ -4754,6 +4770,117 @@ typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR {
uint32_t minVertexInputBindingStrideAlignment;
} VkPhysicalDevicePortabilitySubsetPropertiesKHR;
typedef struct VkBufferCopy2KHR {
VkStructureType sType;
const void* pNext;
VkDeviceSize srcOffset;
VkDeviceSize dstOffset;
VkDeviceSize size;
} VkBufferCopy2KHR;
typedef struct VkImageCopy2KHR {
VkStructureType sType;
const void* pNext;
VkImageSubresourceLayers srcSubresource;
VkOffset3D srcOffset;
VkImageSubresourceLayers dstSubresource;
VkOffset3D dstOffset;
VkExtent3D extent;
} VkImageCopy2KHR;
typedef struct VkImageBlit2KHR {
VkStructureType sType;
const void* pNext;
VkImageSubresourceLayers srcSubresource;
VkOffset3D srcOffsets[2];
VkImageSubresourceLayers dstSubresource;
VkOffset3D dstOffsets[2];
} VkImageBlit2KHR;
typedef struct VkBufferImageCopy2KHR {
VkStructureType sType;
const void* pNext;
VkDeviceSize bufferOffset;
uint32_t bufferRowLength;
uint32_t bufferImageHeight;
VkImageSubresourceLayers imageSubresource;
VkOffset3D imageOffset;
VkExtent3D imageExtent;
} VkBufferImageCopy2KHR;
typedef struct VkImageResolve2KHR {
VkStructureType sType;
const void* pNext;
VkImageSubresourceLayers srcSubresource;
VkOffset3D srcOffset;
VkImageSubresourceLayers dstSubresource;
VkOffset3D dstOffset;
VkExtent3D extent;
} VkImageResolve2KHR;
typedef struct VkCopyBufferInfo2KHR {
VkStructureType sType;
const void* pNext;
VkBuffer srcBuffer;
VkBuffer dstBuffer;
uint32_t regionCount;
const VkBufferCopy2KHR* pRegions;
} VkCopyBufferInfo2KHR;
typedef struct VkCopyImageInfo2KHR {
VkStructureType sType;
const void* pNext;
VkImage srcImage;
VkImageLayout srcImageLayout;
VkImage dstImage;
VkImageLayout dstImageLayout;
uint32_t regionCount;
const VkImageCopy2KHR* pRegions;
} VkCopyImageInfo2KHR;
typedef struct VkBlitImageInfo2KHR {
VkStructureType sType;
const void* pNext;
VkImage srcImage;
VkImageLayout srcImageLayout;
VkImage dstImage;
VkImageLayout dstImageLayout;
uint32_t regionCount;
const VkImageBlit2KHR* pRegions;
VkFilter filter;
} VkBlitImageInfo2KHR;
typedef struct VkCopyBufferToImageInfo2KHR {
VkStructureType sType;
const void* pNext;
VkBuffer srcBuffer;
VkImage dstImage;
VkImageLayout dstImageLayout;
uint32_t regionCount;
const VkBufferImageCopy2KHR* pRegions;
} VkCopyBufferToImageInfo2KHR;
typedef struct VkCopyImageToBufferInfo2KHR {
VkStructureType sType;
const void* pNext;
VkImage srcImage;
VkImageLayout srcImageLayout;
VkBuffer dstBuffer;
uint32_t regionCount;
const VkBufferImageCopy2KHR* pRegions;
} VkCopyImageToBufferInfo2KHR;
typedef struct VkResolveImageInfo2KHR {
VkStructureType sType;
const void* pNext;
VkImage srcImage;
VkImageLayout srcImageLayout;
VkImage dstImage;
VkImageLayout dstImageLayout;
uint32_t regionCount;
const VkImageResolve2KHR* pRegions;
} VkResolveImageInfo2KHR;
typedef struct VkAccelerationStructureBuildSizesInfoKHR {
VkStructureType sType;
const void* pNext;
@ -4808,6 +4935,9 @@ struct FlextVkInstance {
/* VK_KHR_buffer_device_address */
/* VK_KHR_copy_commands2 */
/* VK_KHR_create_renderpass2 */
@ -4962,6 +5092,15 @@ struct FlextVkDevice {
uint64_t (VKAPI_PTR *GetBufferOpaqueCaptureAddressKHR)(VkDevice, const VkBufferDeviceAddressInfo*);
uint64_t (VKAPI_PTR *GetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice, const VkDeviceMemoryOpaqueCaptureAddressInfo*);
/* VK_KHR_copy_commands2 */
void (VKAPI_PTR *CmdBlitImage2KHR)(VkCommandBuffer, const VkBlitImageInfo2KHR*);
void (VKAPI_PTR *CmdCopyBuffer2KHR)(VkCommandBuffer, const VkCopyBufferInfo2KHR*);
void (VKAPI_PTR *CmdCopyBufferToImage2KHR)(VkCommandBuffer, const VkCopyBufferToImageInfo2KHR*);
void (VKAPI_PTR *CmdCopyImage2KHR)(VkCommandBuffer, const VkCopyImageInfo2KHR*);
void (VKAPI_PTR *CmdCopyImageToBuffer2KHR)(VkCommandBuffer, const VkCopyImageToBufferInfo2KHR*);
void (VKAPI_PTR *CmdResolveImage2KHR)(VkCommandBuffer, const VkResolveImageInfo2KHR*);
/* VK_KHR_create_renderpass2 */
void (VKAPI_PTR *CmdBeginRenderPass2KHR)(VkCommandBuffer, const VkRenderPassBeginInfo*, const VkSubpassBeginInfo*);

12
src/MagnumExternal/Vulkan/flextVkGlobal.h vendored

@ -63,6 +63,9 @@ extern FLEXTVK_EXPORT FlextVkInstance flextVkInstance;
/* VK_KHR_buffer_device_address */
/* VK_KHR_copy_commands2 */
/* VK_KHR_create_renderpass2 */
@ -213,6 +216,15 @@ extern FLEXTVK_EXPORT FlextVkDevice flextVkDevice;
#define vkGetBufferOpaqueCaptureAddressKHR flextVkDevice.GetBufferOpaqueCaptureAddressKHR
#define vkGetDeviceMemoryOpaqueCaptureAddressKHR flextVkDevice.GetDeviceMemoryOpaqueCaptureAddressKHR
/* VK_KHR_copy_commands2 */
#define vkCmdBlitImage2KHR flextVkDevice.CmdBlitImage2KHR
#define vkCmdCopyBuffer2KHR flextVkDevice.CmdCopyBuffer2KHR
#define vkCmdCopyBufferToImage2KHR flextVkDevice.CmdCopyBufferToImage2KHR
#define vkCmdCopyImage2KHR flextVkDevice.CmdCopyImage2KHR
#define vkCmdCopyImageToBuffer2KHR flextVkDevice.CmdCopyImageToBuffer2KHR
#define vkCmdResolveImage2KHR flextVkDevice.CmdResolveImage2KHR
/* VK_KHR_create_renderpass2 */
#define vkCmdBeginRenderPass2KHR flextVkDevice.CmdBeginRenderPass2KHR

Loading…
Cancel
Save