org.lwjgl.vulkan.VKCapabilitiesInstance Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lwjgl-vulkan Show documentation
Show all versions of lwjgl-vulkan Show documentation
A new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.
/*
* Copyright LWJGL. All rights reserved.
* License terms: https://www.lwjgl.org/license
* MACHINE GENERATED FILE, DO NOT EDIT
*/
package org.lwjgl.vulkan;
import org.lwjgl.system.*;
import java.util.Set;
import static org.lwjgl.system.Checks.*;
/** Defines the capabilities of a Vulkan {@code VkInstance}. */
@SuppressWarnings("SimplifiableIfStatement")
public class VKCapabilitiesInstance {
// VK10
public final long
vkDestroyInstance,
vkEnumeratePhysicalDevices,
vkGetPhysicalDeviceFeatures,
vkGetPhysicalDeviceFormatProperties,
vkGetPhysicalDeviceImageFormatProperties,
vkGetPhysicalDeviceProperties,
vkGetPhysicalDeviceQueueFamilyProperties,
vkGetPhysicalDeviceMemoryProperties,
vkCreateDevice,
vkEnumerateDeviceExtensionProperties,
vkEnumerateDeviceLayerProperties,
vkGetPhysicalDeviceSparseImageFormatProperties;
// VK11
public final long
vkEnumeratePhysicalDeviceGroups,
vkGetPhysicalDeviceFeatures2,
vkGetPhysicalDeviceProperties2,
vkGetPhysicalDeviceFormatProperties2,
vkGetPhysicalDeviceImageFormatProperties2,
vkGetPhysicalDeviceQueueFamilyProperties2,
vkGetPhysicalDeviceMemoryProperties2,
vkGetPhysicalDeviceSparseImageFormatProperties2,
vkGetPhysicalDeviceExternalBufferProperties,
vkGetPhysicalDeviceExternalFenceProperties,
vkGetPhysicalDeviceExternalSemaphoreProperties;
// EXT_acquire_drm_display
public final long
vkAcquireDrmDisplayEXT,
vkGetDrmDisplayEXT;
// EXT_acquire_xlib_display
public final long
vkAcquireXlibDisplayEXT,
vkGetRandROutputDisplayEXT;
// EXT_calibrated_timestamps
public final long
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
// EXT_debug_report
public final long
vkCreateDebugReportCallbackEXT,
vkDestroyDebugReportCallbackEXT,
vkDebugReportMessageEXT;
// EXT_debug_utils
public final long
vkCreateDebugUtilsMessengerEXT,
vkDestroyDebugUtilsMessengerEXT,
vkSubmitDebugUtilsMessageEXT;
// EXT_direct_mode_display
public final long
vkReleaseDisplayEXT;
// EXT_display_surface_counter
public final long
vkGetPhysicalDeviceSurfaceCapabilities2EXT;
// EXT_full_screen_exclusive
public final long
vkGetPhysicalDeviceSurfacePresentModes2EXT;
// EXT_headless_surface
public final long
vkCreateHeadlessSurfaceEXT;
// EXT_metal_surface
public final long
vkCreateMetalSurfaceEXT;
// EXT_sample_locations
public final long
vkGetPhysicalDeviceMultisamplePropertiesEXT;
// EXT_tooling_info
public final long
vkGetPhysicalDeviceToolPropertiesEXT;
// KHR_device_group
public final long
vkGetPhysicalDevicePresentRectanglesKHR;
// KHR_device_group_creation
public final long
vkEnumeratePhysicalDeviceGroupsKHR;
// KHR_display
public final long
vkGetPhysicalDeviceDisplayPropertiesKHR,
vkGetPhysicalDeviceDisplayPlanePropertiesKHR,
vkGetDisplayPlaneSupportedDisplaysKHR,
vkGetDisplayModePropertiesKHR,
vkCreateDisplayModeKHR,
vkGetDisplayPlaneCapabilitiesKHR,
vkCreateDisplayPlaneSurfaceKHR;
// KHR_external_fence_capabilities
public final long
vkGetPhysicalDeviceExternalFencePropertiesKHR;
// KHR_external_memory_capabilities
public final long
vkGetPhysicalDeviceExternalBufferPropertiesKHR;
// KHR_external_semaphore_capabilities
public final long
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
// KHR_fragment_shading_rate
public final long
vkGetPhysicalDeviceFragmentShadingRatesKHR;
// KHR_get_display_properties2
public final long
vkGetPhysicalDeviceDisplayProperties2KHR,
vkGetPhysicalDeviceDisplayPlaneProperties2KHR,
vkGetDisplayModeProperties2KHR,
vkGetDisplayPlaneCapabilities2KHR;
// KHR_get_physical_device_properties2
public final long
vkGetPhysicalDeviceFeatures2KHR,
vkGetPhysicalDeviceProperties2KHR,
vkGetPhysicalDeviceFormatProperties2KHR,
vkGetPhysicalDeviceImageFormatProperties2KHR,
vkGetPhysicalDeviceQueueFamilyProperties2KHR,
vkGetPhysicalDeviceMemoryProperties2KHR,
vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
// KHR_get_surface_capabilities2
public final long
vkGetPhysicalDeviceSurfaceCapabilities2KHR,
vkGetPhysicalDeviceSurfaceFormats2KHR;
// KHR_performance_query
public final long
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR,
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
// KHR_surface
public final long
vkDestroySurfaceKHR,
vkGetPhysicalDeviceSurfaceSupportKHR,
vkGetPhysicalDeviceSurfaceCapabilitiesKHR,
vkGetPhysicalDeviceSurfaceFormatsKHR,
vkGetPhysicalDeviceSurfacePresentModesKHR;
// KHR_video_queue
public final long
vkGetPhysicalDeviceVideoCapabilitiesKHR,
vkGetPhysicalDeviceVideoFormatPropertiesKHR;
// KHR_wayland_surface
public final long
vkCreateWaylandSurfaceKHR,
vkGetPhysicalDeviceWaylandPresentationSupportKHR;
// KHR_win32_surface
public final long
vkCreateWin32SurfaceKHR,
vkGetPhysicalDeviceWin32PresentationSupportKHR;
// KHR_xlib_surface
public final long
vkCreateXlibSurfaceKHR,
vkGetPhysicalDeviceXlibPresentationSupportKHR;
// MVK_macos_surface
public final long
vkCreateMacOSSurfaceMVK;
// NV_acquire_winrt_display
public final long
vkAcquireWinrtDisplayNV,
vkGetWinrtDisplayNV;
// NV_cooperative_matrix
public final long
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV;
// NV_coverage_reduction_mode
public final long
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
// NV_external_memory_capabilities
public final long
vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
/** The Vulkan API version number. */
public final int apiVersion;
/** When true, {@link VK10} is supported. */
public final boolean Vulkan10;
/** When true, {@link VK11} is supported. */
public final boolean Vulkan11;
/** When true, {@link VK12} is supported. */
public final boolean Vulkan12;
/** When true, {@link EXTAcquireDrmDisplay} is supported. */
public final boolean VK_EXT_acquire_drm_display;
/** When true, {@link EXTAcquireXlibDisplay} is supported. */
public final boolean VK_EXT_acquire_xlib_display;
/** When true, {@link EXTDebugReport} is supported. */
public final boolean VK_EXT_debug_report;
/** When true, {@link EXTDebugUtils} is supported. */
public final boolean VK_EXT_debug_utils;
/** When true, {@link EXTDirectModeDisplay} is supported. */
public final boolean VK_EXT_direct_mode_display;
/** When true, {@link EXTDisplaySurfaceCounter} is supported. */
public final boolean VK_EXT_display_surface_counter;
/** When true, {@link EXTHeadlessSurface} is supported. */
public final boolean VK_EXT_headless_surface;
/** When true, {@link EXTMetalSurface} is supported. */
public final boolean VK_EXT_metal_surface;
/** When true, {@link EXTSwapchainColorspace} is supported. */
public final boolean VK_EXT_swapchain_colorspace;
/** When true, {@link EXTValidationFeatures} is supported. */
public final boolean VK_EXT_validation_features;
/** When true, {@link EXTValidationFlags} is supported. */
public final boolean VK_EXT_validation_flags;
/** When true, {@link KHRDeviceGroupCreation} is supported. */
public final boolean VK_KHR_device_group_creation;
/** When true, {@link KHRDisplay} is supported. */
public final boolean VK_KHR_display;
/** When true, {@link KHRExternalFenceCapabilities} is supported. */
public final boolean VK_KHR_external_fence_capabilities;
/** When true, {@link KHRExternalMemoryCapabilities} is supported. */
public final boolean VK_KHR_external_memory_capabilities;
/** When true, {@link KHRExternalSemaphoreCapabilities} is supported. */
public final boolean VK_KHR_external_semaphore_capabilities;
/** When true, {@link KHRGetDisplayProperties2} is supported. */
public final boolean VK_KHR_get_display_properties2;
/** When true, {@link KHRGetPhysicalDeviceProperties2} is supported. */
public final boolean VK_KHR_get_physical_device_properties2;
/** When true, {@link KHRGetSurfaceCapabilities2} is supported. */
public final boolean VK_KHR_get_surface_capabilities2;
/** When true, {@link KHRSurface} is supported. */
public final boolean VK_KHR_surface;
/** When true, {@link KHRSurfaceProtectedCapabilities} is supported. */
public final boolean VK_KHR_surface_protected_capabilities;
/** When true, {@link KHRWaylandSurface} is supported. */
public final boolean VK_KHR_wayland_surface;
/** When true, {@link KHRWin32Surface} is supported. */
public final boolean VK_KHR_win32_surface;
/** When true, {@link KHRXlibSurface} is supported. */
public final boolean VK_KHR_xlib_surface;
/** When true, {@link MVKMacosSurface} is supported. */
public final boolean VK_MVK_macos_surface;
/** When true, {@link NVExternalMemoryCapabilities} is supported. */
public final boolean VK_NV_external_memory_capabilities;
VKCapabilitiesInstance(FunctionProvider provider, int apiVersion, Set ext, Set deviceExt) {
this.apiVersion = apiVersion;
long[] caps = new long[88];
Vulkan10 = check_VK10(provider, caps, ext);
Vulkan11 = check_VK11(provider, caps, ext);
Vulkan12 = ext.contains("Vulkan12");
VK_EXT_acquire_drm_display = check_EXT_acquire_drm_display(provider, caps, ext);
VK_EXT_acquire_xlib_display = check_EXT_acquire_xlib_display(provider, caps, ext);
check_EXT_calibrated_timestamps(provider, caps, deviceExt);
VK_EXT_debug_report = check_EXT_debug_report(provider, caps, ext);
VK_EXT_debug_utils = check_EXT_debug_utils(provider, caps, ext);
VK_EXT_direct_mode_display = check_EXT_direct_mode_display(provider, caps, ext);
VK_EXT_display_surface_counter = check_EXT_display_surface_counter(provider, caps, ext);
check_EXT_full_screen_exclusive(provider, caps, deviceExt);
VK_EXT_headless_surface = check_EXT_headless_surface(provider, caps, ext);
VK_EXT_metal_surface = check_EXT_metal_surface(provider, caps, ext);
check_EXT_sample_locations(provider, caps, deviceExt);
VK_EXT_swapchain_colorspace = ext.contains("VK_EXT_swapchain_colorspace");
check_EXT_tooling_info(provider, caps, deviceExt);
VK_EXT_validation_features = ext.contains("VK_EXT_validation_features");
VK_EXT_validation_flags = ext.contains("VK_EXT_validation_flags");
check_KHR_device_group(provider, caps, deviceExt);
VK_KHR_device_group_creation = check_KHR_device_group_creation(provider, caps, ext);
VK_KHR_display = check_KHR_display(provider, caps, ext);
VK_KHR_external_fence_capabilities = check_KHR_external_fence_capabilities(provider, caps, ext);
VK_KHR_external_memory_capabilities = check_KHR_external_memory_capabilities(provider, caps, ext);
VK_KHR_external_semaphore_capabilities = check_KHR_external_semaphore_capabilities(provider, caps, ext);
check_KHR_fragment_shading_rate(provider, caps, deviceExt);
VK_KHR_get_display_properties2 = check_KHR_get_display_properties2(provider, caps, ext);
VK_KHR_get_physical_device_properties2 = check_KHR_get_physical_device_properties2(provider, caps, ext);
VK_KHR_get_surface_capabilities2 = check_KHR_get_surface_capabilities2(provider, caps, ext);
check_KHR_performance_query(provider, caps, deviceExt);
VK_KHR_surface = check_KHR_surface(provider, caps, ext);
VK_KHR_surface_protected_capabilities = ext.contains("VK_KHR_surface_protected_capabilities");
check_KHR_swapchain(provider, caps, deviceExt);
check_KHR_video_queue(provider, caps, deviceExt);
VK_KHR_wayland_surface = check_KHR_wayland_surface(provider, caps, ext);
VK_KHR_win32_surface = check_KHR_win32_surface(provider, caps, ext);
VK_KHR_xlib_surface = check_KHR_xlib_surface(provider, caps, ext);
VK_MVK_macos_surface = check_MVK_macos_surface(provider, caps, ext);
check_NV_acquire_winrt_display(provider, caps, deviceExt);
check_NV_cooperative_matrix(provider, caps, deviceExt);
check_NV_coverage_reduction_mode(provider, caps, deviceExt);
VK_NV_external_memory_capabilities = check_NV_external_memory_capabilities(provider, caps, ext);
vkDestroyInstance = caps[0];
vkEnumeratePhysicalDevices = caps[1];
vkGetPhysicalDeviceFeatures = caps[2];
vkGetPhysicalDeviceFormatProperties = caps[3];
vkGetPhysicalDeviceImageFormatProperties = caps[4];
vkGetPhysicalDeviceProperties = caps[5];
vkGetPhysicalDeviceQueueFamilyProperties = caps[6];
vkGetPhysicalDeviceMemoryProperties = caps[7];
vkCreateDevice = caps[8];
vkEnumerateDeviceExtensionProperties = caps[9];
vkEnumerateDeviceLayerProperties = caps[10];
vkGetPhysicalDeviceSparseImageFormatProperties = caps[11];
vkEnumeratePhysicalDeviceGroups = caps[12];
vkGetPhysicalDeviceFeatures2 = caps[13];
vkGetPhysicalDeviceProperties2 = caps[14];
vkGetPhysicalDeviceFormatProperties2 = caps[15];
vkGetPhysicalDeviceImageFormatProperties2 = caps[16];
vkGetPhysicalDeviceQueueFamilyProperties2 = caps[17];
vkGetPhysicalDeviceMemoryProperties2 = caps[18];
vkGetPhysicalDeviceSparseImageFormatProperties2 = caps[19];
vkGetPhysicalDeviceExternalBufferProperties = caps[20];
vkGetPhysicalDeviceExternalFenceProperties = caps[21];
vkGetPhysicalDeviceExternalSemaphoreProperties = caps[22];
vkAcquireDrmDisplayEXT = caps[23];
vkGetDrmDisplayEXT = caps[24];
vkAcquireXlibDisplayEXT = caps[25];
vkGetRandROutputDisplayEXT = caps[26];
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = caps[27];
vkCreateDebugReportCallbackEXT = caps[28];
vkDestroyDebugReportCallbackEXT = caps[29];
vkDebugReportMessageEXT = caps[30];
vkCreateDebugUtilsMessengerEXT = caps[31];
vkDestroyDebugUtilsMessengerEXT = caps[32];
vkSubmitDebugUtilsMessageEXT = caps[33];
vkReleaseDisplayEXT = caps[34];
vkGetPhysicalDeviceSurfaceCapabilities2EXT = caps[35];
vkGetPhysicalDeviceSurfacePresentModes2EXT = caps[36];
vkCreateHeadlessSurfaceEXT = caps[37];
vkCreateMetalSurfaceEXT = caps[38];
vkGetPhysicalDeviceMultisamplePropertiesEXT = caps[39];
vkGetPhysicalDeviceToolPropertiesEXT = caps[40];
vkGetPhysicalDevicePresentRectanglesKHR = caps[41];
vkEnumeratePhysicalDeviceGroupsKHR = caps[42];
vkGetPhysicalDeviceDisplayPropertiesKHR = caps[43];
vkGetPhysicalDeviceDisplayPlanePropertiesKHR = caps[44];
vkGetDisplayPlaneSupportedDisplaysKHR = caps[45];
vkGetDisplayModePropertiesKHR = caps[46];
vkCreateDisplayModeKHR = caps[47];
vkGetDisplayPlaneCapabilitiesKHR = caps[48];
vkCreateDisplayPlaneSurfaceKHR = caps[49];
vkGetPhysicalDeviceExternalFencePropertiesKHR = caps[50];
vkGetPhysicalDeviceExternalBufferPropertiesKHR = caps[51];
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = caps[52];
vkGetPhysicalDeviceFragmentShadingRatesKHR = caps[53];
vkGetPhysicalDeviceDisplayProperties2KHR = caps[54];
vkGetPhysicalDeviceDisplayPlaneProperties2KHR = caps[55];
vkGetDisplayModeProperties2KHR = caps[56];
vkGetDisplayPlaneCapabilities2KHR = caps[57];
vkGetPhysicalDeviceFeatures2KHR = caps[58];
vkGetPhysicalDeviceProperties2KHR = caps[59];
vkGetPhysicalDeviceFormatProperties2KHR = caps[60];
vkGetPhysicalDeviceImageFormatProperties2KHR = caps[61];
vkGetPhysicalDeviceQueueFamilyProperties2KHR = caps[62];
vkGetPhysicalDeviceMemoryProperties2KHR = caps[63];
vkGetPhysicalDeviceSparseImageFormatProperties2KHR = caps[64];
vkGetPhysicalDeviceSurfaceCapabilities2KHR = caps[65];
vkGetPhysicalDeviceSurfaceFormats2KHR = caps[66];
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = caps[67];
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = caps[68];
vkDestroySurfaceKHR = caps[69];
vkGetPhysicalDeviceSurfaceSupportKHR = caps[70];
vkGetPhysicalDeviceSurfaceCapabilitiesKHR = caps[71];
vkGetPhysicalDeviceSurfaceFormatsKHR = caps[72];
vkGetPhysicalDeviceSurfacePresentModesKHR = caps[73];
vkGetPhysicalDeviceVideoCapabilitiesKHR = caps[74];
vkGetPhysicalDeviceVideoFormatPropertiesKHR = caps[75];
vkCreateWaylandSurfaceKHR = caps[76];
vkGetPhysicalDeviceWaylandPresentationSupportKHR = caps[77];
vkCreateWin32SurfaceKHR = caps[78];
vkGetPhysicalDeviceWin32PresentationSupportKHR = caps[79];
vkCreateXlibSurfaceKHR = caps[80];
vkGetPhysicalDeviceXlibPresentationSupportKHR = caps[81];
vkCreateMacOSSurfaceMVK = caps[82];
vkAcquireWinrtDisplayNV = caps[83];
vkGetWinrtDisplayNV = caps[84];
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = caps[85];
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = caps[86];
vkGetPhysicalDeviceExternalImageFormatPropertiesNV = caps[87];
}
private static boolean check_VK10(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("Vulkan10")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
},
"vkDestroyInstance", "vkEnumeratePhysicalDevices", "vkGetPhysicalDeviceFeatures", "vkGetPhysicalDeviceFormatProperties",
"vkGetPhysicalDeviceImageFormatProperties", "vkGetPhysicalDeviceProperties", "vkGetPhysicalDeviceQueueFamilyProperties",
"vkGetPhysicalDeviceMemoryProperties", "vkCreateDevice", "vkEnumerateDeviceExtensionProperties", "vkEnumerateDeviceLayerProperties",
"vkGetPhysicalDeviceSparseImageFormatProperties"
) || reportMissing("VK", "Vulkan10");
}
private static boolean check_VK11(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("Vulkan11")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22
},
"vkEnumeratePhysicalDeviceGroups", "vkGetPhysicalDeviceFeatures2", "vkGetPhysicalDeviceProperties2", "vkGetPhysicalDeviceFormatProperties2",
"vkGetPhysicalDeviceImageFormatProperties2", "vkGetPhysicalDeviceQueueFamilyProperties2", "vkGetPhysicalDeviceMemoryProperties2",
"vkGetPhysicalDeviceSparseImageFormatProperties2", "vkGetPhysicalDeviceExternalBufferProperties", "vkGetPhysicalDeviceExternalFenceProperties",
"vkGetPhysicalDeviceExternalSemaphoreProperties"
) || reportMissing("VK", "Vulkan11");
}
private static boolean check_EXT_acquire_drm_display(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_acquire_drm_display")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
23, 24
},
"vkAcquireDrmDisplayEXT", "vkGetDrmDisplayEXT"
) || reportMissing("VK", "VK_EXT_acquire_drm_display");
}
private static boolean check_EXT_acquire_xlib_display(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_acquire_xlib_display")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
25, 26
},
"vkAcquireXlibDisplayEXT", "vkGetRandROutputDisplayEXT"
) || reportMissing("VK", "VK_EXT_acquire_xlib_display");
}
private static boolean check_EXT_calibrated_timestamps(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_calibrated_timestamps")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
27
},
"vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"
) || reportMissing("VK", "VK_EXT_calibrated_timestamps");
}
private static boolean check_EXT_debug_report(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_debug_report")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
28, 29, 30
},
"vkCreateDebugReportCallbackEXT", "vkDestroyDebugReportCallbackEXT", "vkDebugReportMessageEXT"
) || reportMissing("VK", "VK_EXT_debug_report");
}
private static boolean check_EXT_debug_utils(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_debug_utils")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
31, 32, 33
},
"vkCreateDebugUtilsMessengerEXT", "vkDestroyDebugUtilsMessengerEXT", "vkSubmitDebugUtilsMessageEXT"
) || reportMissing("VK", "VK_EXT_debug_utils");
}
private static boolean check_EXT_direct_mode_display(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_direct_mode_display")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
34
},
"vkReleaseDisplayEXT"
) || reportMissing("VK", "VK_EXT_direct_mode_display");
}
private static boolean check_EXT_display_surface_counter(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_display_surface_counter")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
35
},
"vkGetPhysicalDeviceSurfaceCapabilities2EXT"
) || reportMissing("VK", "VK_EXT_display_surface_counter");
}
private static boolean check_EXT_full_screen_exclusive(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_full_screen_exclusive")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
36
},
"vkGetPhysicalDeviceSurfacePresentModes2EXT"
) || reportMissing("VK", "VK_EXT_full_screen_exclusive");
}
private static boolean check_EXT_headless_surface(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_headless_surface")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
37
},
"vkCreateHeadlessSurfaceEXT"
) || reportMissing("VK", "VK_EXT_headless_surface");
}
private static boolean check_EXT_metal_surface(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_metal_surface")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
38
},
"vkCreateMetalSurfaceEXT"
) || reportMissing("VK", "VK_EXT_metal_surface");
}
private static boolean check_EXT_sample_locations(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_sample_locations")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
39
},
"vkGetPhysicalDeviceMultisamplePropertiesEXT"
) || reportMissing("VK", "VK_EXT_sample_locations");
}
private static boolean check_EXT_tooling_info(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_EXT_tooling_info")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
40
},
"vkGetPhysicalDeviceToolPropertiesEXT"
) || reportMissing("VK", "VK_EXT_tooling_info");
}
private static boolean check_KHR_device_group(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_device_group")) {
return false;
}
int flag0 = ext.contains("VK_KHR_surface") ? 0 : Integer.MIN_VALUE;
return checkFunctions(provider, caps, new int[] {
flag0 + 41
},
"vkGetPhysicalDevicePresentRectanglesKHR"
) || reportMissing("VK", "VK_KHR_device_group");
}
private static boolean check_KHR_device_group_creation(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_device_group_creation")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
42
},
"vkEnumeratePhysicalDeviceGroupsKHR"
) || reportMissing("VK", "VK_KHR_device_group_creation");
}
private static boolean check_KHR_display(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_display")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
43, 44, 45, 46, 47, 48, 49
},
"vkGetPhysicalDeviceDisplayPropertiesKHR", "vkGetPhysicalDeviceDisplayPlanePropertiesKHR", "vkGetDisplayPlaneSupportedDisplaysKHR",
"vkGetDisplayModePropertiesKHR", "vkCreateDisplayModeKHR", "vkGetDisplayPlaneCapabilitiesKHR", "vkCreateDisplayPlaneSurfaceKHR"
) || reportMissing("VK", "VK_KHR_display");
}
private static boolean check_KHR_external_fence_capabilities(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_external_fence_capabilities")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
50
},
"vkGetPhysicalDeviceExternalFencePropertiesKHR"
) || reportMissing("VK", "VK_KHR_external_fence_capabilities");
}
private static boolean check_KHR_external_memory_capabilities(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_external_memory_capabilities")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
51
},
"vkGetPhysicalDeviceExternalBufferPropertiesKHR"
) || reportMissing("VK", "VK_KHR_external_memory_capabilities");
}
private static boolean check_KHR_external_semaphore_capabilities(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_external_semaphore_capabilities")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
52
},
"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"
) || reportMissing("VK", "VK_KHR_external_semaphore_capabilities");
}
private static boolean check_KHR_fragment_shading_rate(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_fragment_shading_rate")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
53
},
"vkGetPhysicalDeviceFragmentShadingRatesKHR"
) || reportMissing("VK", "VK_KHR_fragment_shading_rate");
}
private static boolean check_KHR_get_display_properties2(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_get_display_properties2")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
54, 55, 56, 57
},
"vkGetPhysicalDeviceDisplayProperties2KHR", "vkGetPhysicalDeviceDisplayPlaneProperties2KHR", "vkGetDisplayModeProperties2KHR",
"vkGetDisplayPlaneCapabilities2KHR"
) || reportMissing("VK", "VK_KHR_get_display_properties2");
}
private static boolean check_KHR_get_physical_device_properties2(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_get_physical_device_properties2")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
58, 59, 60, 61, 62, 63, 64
},
"vkGetPhysicalDeviceFeatures2KHR", "vkGetPhysicalDeviceProperties2KHR", "vkGetPhysicalDeviceFormatProperties2KHR",
"vkGetPhysicalDeviceImageFormatProperties2KHR", "vkGetPhysicalDeviceQueueFamilyProperties2KHR", "vkGetPhysicalDeviceMemoryProperties2KHR",
"vkGetPhysicalDeviceSparseImageFormatProperties2KHR"
) || reportMissing("VK", "VK_KHR_get_physical_device_properties2");
}
private static boolean check_KHR_get_surface_capabilities2(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_get_surface_capabilities2")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
65, 66
},
"vkGetPhysicalDeviceSurfaceCapabilities2KHR", "vkGetPhysicalDeviceSurfaceFormats2KHR"
) || reportMissing("VK", "VK_KHR_get_surface_capabilities2");
}
private static boolean check_KHR_performance_query(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_performance_query")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
67, 68
},
"vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR", "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"
) || reportMissing("VK", "VK_KHR_performance_query");
}
private static boolean check_KHR_surface(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_surface")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
69, 70, 71, 72, 73
},
"vkDestroySurfaceKHR", "vkGetPhysicalDeviceSurfaceSupportKHR", "vkGetPhysicalDeviceSurfaceCapabilitiesKHR", "vkGetPhysicalDeviceSurfaceFormatsKHR",
"vkGetPhysicalDeviceSurfacePresentModesKHR"
) || reportMissing("VK", "VK_KHR_surface");
}
private static boolean check_KHR_swapchain(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_swapchain")) {
return false;
}
int flag0 = ext.contains("Vulkan11") ? 0 : Integer.MIN_VALUE;
return checkFunctions(provider, caps, new int[] {
flag0 + 41
},
"vkGetPhysicalDevicePresentRectanglesKHR"
) || reportMissing("VK", "VK_KHR_swapchain");
}
private static boolean check_KHR_video_queue(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_video_queue")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
74, 75
},
"vkGetPhysicalDeviceVideoCapabilitiesKHR", "vkGetPhysicalDeviceVideoFormatPropertiesKHR"
) || reportMissing("VK", "VK_KHR_video_queue");
}
private static boolean check_KHR_wayland_surface(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_wayland_surface")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
76, 77
},
"vkCreateWaylandSurfaceKHR", "vkGetPhysicalDeviceWaylandPresentationSupportKHR"
) || reportMissing("VK", "VK_KHR_wayland_surface");
}
private static boolean check_KHR_win32_surface(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_win32_surface")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
78, 79
},
"vkCreateWin32SurfaceKHR", "vkGetPhysicalDeviceWin32PresentationSupportKHR"
) || reportMissing("VK", "VK_KHR_win32_surface");
}
private static boolean check_KHR_xlib_surface(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_KHR_xlib_surface")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
80, 81
},
"vkCreateXlibSurfaceKHR", "vkGetPhysicalDeviceXlibPresentationSupportKHR"
) || reportMissing("VK", "VK_KHR_xlib_surface");
}
private static boolean check_MVK_macos_surface(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_MVK_macos_surface")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
82
},
"vkCreateMacOSSurfaceMVK"
) || reportMissing("VK", "VK_MVK_macos_surface");
}
private static boolean check_NV_acquire_winrt_display(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_NV_acquire_winrt_display")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
83, 84
},
"vkAcquireWinrtDisplayNV", "vkGetWinrtDisplayNV"
) || reportMissing("VK", "VK_NV_acquire_winrt_display");
}
private static boolean check_NV_cooperative_matrix(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_NV_cooperative_matrix")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
85
},
"vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"
) || reportMissing("VK", "VK_NV_cooperative_matrix");
}
private static boolean check_NV_coverage_reduction_mode(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_NV_coverage_reduction_mode")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
86
},
"vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"
) || reportMissing("VK", "VK_NV_coverage_reduction_mode");
}
private static boolean check_NV_external_memory_capabilities(FunctionProvider provider, long[] caps, java.util.Set ext) {
if (!ext.contains("VK_NV_external_memory_capabilities")) {
return false;
}
return checkFunctions(provider, caps, new int[] {
87
},
"vkGetPhysicalDeviceExternalImageFormatPropertiesNV"
) || reportMissing("VK", "VK_NV_external_memory_capabilities");
}
}