From 798b864c07acd67fbeb6432574b541267df10ebb Mon Sep 17 00:00:00 2001 From: Ioannis Tsakpinis Date: Mon, 30 Jul 2018 14:35:27 +0300 Subject: [PATCH] feat(Vulkan): update to 1.1.82 --- doc/notes/3.1.7.md | 4 +- .../lwjgl/vulkan/AMDDrawIndirectCount.java | 4 +- .../lwjgl/vulkan/KHRDrawIndirectCount.java | 8 +- .../vulkan/NVDeviceDiagnosticCheckpoints.java | 210 ++++++++++ .../generated/java/org/lwjgl/vulkan/VK10.java | 71 ++-- .../lwjgl/vulkan/VKCapabilitiesDevice.java | 12 +- .../org/lwjgl/vulkan/VkCheckpointDataNV.java | 364 ++++++++++++++++++ .../vulkan/VkGraphicsPipelineCreateInfo.java | 2 +- .../VkQueueFamilyCheckpointPropertiesNV.java | 216 +++++++++++ .../vulkan/VkQueueFamilyProperties2.java | 2 +- .../src/templates/kotlin/vulkan/Custom.kt | 2 +- .../templates/kotlin/vulkan/ExtensionTypes.kt | 29 ++ .../src/templates/kotlin/vulkan/VKTypes.kt | 5 +- .../templates/AMD_draw_indirect_count.kt | 4 +- .../templates/KHR_draw_indirect_count.kt | 8 +- .../NV_device_diagnostic_checkpoints.kt | 152 ++++++++ .../templates/kotlin/vulkan/templates/VK10.kt | 61 ++- 17 files changed, 1065 insertions(+), 89 deletions(-) create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVDeviceDiagnosticCheckpoints.java create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCheckpointDataNV.java create mode 100644 modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyCheckpointPropertiesNV.java create mode 100644 modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_diagnostic_checkpoints.kt diff --git a/doc/notes/3.1.7.md b/doc/notes/3.1.7.md index e2da6bfb8f..40733a24e4 100644 --- a/doc/notes/3.1.7.md +++ b/doc/notes/3.1.7.md @@ -27,8 +27,8 @@ This build includes the following changes: * Updated `stb_truetype` to 1.19 (up from 1.18) * Updated `stb_vorbis` to 1.14 (up from 1.13b) - tinyfiledialogs: Updated to 3.3.6 (up from 3.2.9) -- Vulkan: Updated to 1.1.81 (up from 1.0.68) - * Includes MoltenVK 1.0.11 +- Vulkan: Updated to 1.1.82 (up from 1.0.68) + * Includes MoltenVK 1.0.16 - xxhash: Update to 0.6.5 (up from 0.6.4) - Yoga: Updated to 1.9.0 (up from 1.7.1) - Zstd: Updated to 1.3.5 (up from 1.3.4) diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/AMDDrawIndirectCount.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/AMDDrawIndirectCount.java index 29e5476d40..8f5e2cc50d 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/AMDDrawIndirectCount.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/AMDDrawIndirectCount.java @@ -119,7 +119,7 @@ static boolean checkCapsDevice(FunctionProvider provider, java.util.MapIf any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • - *
  • Any {@code VkImageView} being sampled with {@link VK10#VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command must be of a format which supports linear filtering, as specified by the {@link VK10#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link VK10#vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If a {@code VkImageView} is sampled with with {@link VK10#VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command, then the image view’s format features must contain {@link VK10#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT}.
  • *
  • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}.
  • *
  • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
  • @@ -222,7 +222,7 @@ public static void vkCmdDrawIndirectCountAMD(VkCommandBuffer commandBuffer, @Nat *
  • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • - *
  • Any {@code VkImageView} being sampled with {@link VK10#VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command must be of a format which supports linear filtering, as specified by the {@link VK10#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link VK10#vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If a {@code VkImageView} is sampled with with {@link VK10#VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command, then the image view’s format features must contain {@link VK10#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT}.
  • *
  • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}.
  • *
  • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
  • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/KHRDrawIndirectCount.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/KHRDrawIndirectCount.java index c8569c1094..69dedf6dde 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/KHRDrawIndirectCount.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/KHRDrawIndirectCount.java @@ -118,9 +118,9 @@ static boolean checkCapsDevice(FunctionProvider provider, java.util.MapIf any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • - *
  • Any {@code VkImageView} being sampled with {@link VK10#VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command must be of a format which supports linear filtering, as specified by the {@link VK10#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} (for a linear image) or {@link VkFormatProperties}{@code ::optimalTilingFeatures}(for an optimally tiled image) returned by {@link VK10#vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties}
  • + *
  • If a {@code VkImageView} is sampled with with {@link VK10#VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command, then the image view’s format features must contain {@link VK10#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT}.
  • *
  • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
  • - *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must be of a format which supports cubic filtering, as specified by the {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} (for a linear image) or {@link VkFormatProperties}{@code ::optimalTilingFeatures}(for an optimally tiled image) returned by {@link VK10#vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties}
  • + *
  • If a {@code VkImageView} is sampled with with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command, then the image view’s format features must contain {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG}.
  • *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must not have a {@code VkImageViewType} of {@link VK10#VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, or {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}.
  • *
  • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
  • @@ -223,9 +223,9 @@ public static void vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, @Nat *
  • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • - *
  • Any {@code VkImageView} being sampled with {@link VK10#VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command must be of a format which supports linear filtering, as specified by the {@link VK10#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} (for a linear image) or {@link VkFormatProperties}{@code ::optimalTilingFeatures}(for an optimally tiled image) returned by {@link VK10#vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties}
  • + *
  • If a {@code VkImageView} is sampled with with {@link VK10#VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command, then the image view’s format features must contain {@link VK10#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT}.
  • *
  • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
  • - *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must be of a format which supports cubic filtering, as specified by the {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} (for a linear image) or {@link VkFormatProperties}{@code ::optimalTilingFeatures}(for an optimally tiled image) returned by {@link VK10#vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties}
  • + *
  • If a {@code VkImageView} is sampled with with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command, then the image view’s format features must contain {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG}.
  • *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must not have a {@code VkImageViewType} of {@link VK10#VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, or {@link VK10#VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}.
  • *
  • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link VK10#VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
  • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVDeviceDiagnosticCheckpoints.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVDeviceDiagnosticCheckpoints.java new file mode 100644 index 0000000000..4bb8fd6281 --- /dev/null +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/NVDeviceDiagnosticCheckpoints.java @@ -0,0 +1,210 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package org.lwjgl.vulkan; + +import javax.annotation.*; + +import java.nio.*; + +import org.lwjgl.system.*; + +import static org.lwjgl.system.Checks.*; +import static org.lwjgl.system.JNI.*; +import static org.lwjgl.system.MemoryUtil.*; + +/** + * This extension allows applications to insert markers in the command stream and associate them with custom data. + * + *

    If a device lost error occurs, the application may then query the implementation for the last markers to cross specific implementation-defined pipeline stages, in order to narrow down which commands were executing at the time and might have caused the failure.

    + * + *
    + *
    Name String
    + *
    {@code VK_NV_device_diagnostic_checkpoints}
    + *
    Extension Type
    + *
    Device extension
    + *
    Registered Extension Number
    + *
    207
    + *
    Revision
    + *
    2
    + *
    Extension and Version Dependencies
    + *
      + *
    • Requires Vulkan 1.0
    • + *
    • Requires {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2}
    • + *
    + *
    Contact
    + *
      + *
    • Nuno Subtil @nsubtil
    • + *
    + *
    Last Modified Date
    + *
    2018-07-16
    + *
    Contributors
    + *
      + *
    • Oleg Kuznetsov, NVIDIA
    • + *
    • Alex Dunn, NVIDIA
    • + *
    • Jeff Bolz, NVIDIA
    • + *
    • Eric Werness, NVIDIA
    • + *
    • Daniel Koch, NVIDIA
    • + *
    + *
    + */ +public class NVDeviceDiagnosticCheckpoints { + + /** The extension specification version. */ + public static final int VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION = 2; + + /** The extension name. */ + public static final String VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME = "VK_NV_device_diagnostic_checkpoints"; + + /** + * Extends {@code VkStructureType}. + * + *
    Enum values:
    + * + *
      + *
    • {@link #VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV STRUCTURE_TYPE_CHECKPOINT_DATA_NV}
    • + *
    • {@link #VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV}
    • + *
    + */ + public static final int + VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, + VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001; + + protected NVDeviceDiagnosticCheckpoints() { + throw new UnsupportedOperationException(); + } + + static boolean checkCapsDevice(FunctionProvider provider, java.util.Map caps, java.util.Set ext) { + return ext.contains("VK_NV_device_diagnostic_checkpoints") && VK.checkExtension("VK_NV_device_diagnostic_checkpoints", + VK.isSupported(provider, "vkCmdSetCheckpointNV", caps) + && VK.isSupported(provider, "vkGetQueueCheckpointDataNV", caps) + ); + } + + // --- [ vkCmdSetCheckpointNV ] --- + + /** + * insert diagnostic checkpoint in command stream. + * + *
    C Specification
    + * + *

    Device diagnostic checkpoints are inserted into the command stream by calling {@code vkCmdSetCheckpointNV}.

    + * + *
    
    +     * void vkCmdSetCheckpointNV(
    +     *     VkCommandBuffer                             commandBuffer,
    +     *     const void*                                 pCheckpointMarker);
    + * + *
    Valid Usage (Implicit)
    + * + *
      + *
    • {@code commandBuffer} must be a valid {@code VkCommandBuffer} handle
    • + *
    • {@code commandBuffer} must be in the recording state
    • + *
    • The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support graphics, compute, or transfer operations
    • + *
    + * + *
    Host Synchronization
    + * + *
      + *
    • Host access to the {@code VkCommandPool} that {@code commandBuffer} was allocated from must be externally synchronized
    • + *
    + * + *
    Command Properties
    + * + * + * + * + *
    Command Buffer LevelsRender Pass ScopeSupported Queue TypesPipeline Type
    Primary SecondaryBothGraphics Compute Transfer
    + * + * @param commandBuffer the command buffer that will receive the marker + * @param pCheckpointMarker an opaque application-provided value that will be associated with the checkpoint. + */ + public static void vkCmdSetCheckpointNV(VkCommandBuffer commandBuffer, @NativeType("void const *") long pCheckpointMarker) { + long __functionAddress = commandBuffer.getCapabilities().vkCmdSetCheckpointNV; + if (CHECKS) { + check(__functionAddress); + check(pCheckpointMarker); + } + callPPV(__functionAddress, commandBuffer.address(), pCheckpointMarker); + } + + // --- [ vkGetQueueCheckpointDataNV ] --- + + /** + * Unsafe version of: {@link #vkGetQueueCheckpointDataNV GetQueueCheckpointDataNV} + * + * @param pCheckpointDataCount a pointer to an integer related to the number of checkpoint markers available or queried, as described below. + */ + public static void nvkGetQueueCheckpointDataNV(VkQueue queue, long pCheckpointDataCount, long pCheckpointData) { + long __functionAddress = queue.getCapabilities().vkGetQueueCheckpointDataNV; + if (CHECKS) { + check(__functionAddress); + } + callPPPV(__functionAddress, queue.address(), pCheckpointDataCount, pCheckpointData); + } + + /** + * retrieve diagnostic checkpoint data. + * + *
    C Specification
    + * + *

    If the device encounters an error during execution, the implementation will return a {@link VK10#VK_ERROR_DEVICE_LOST ERROR_DEVICE_LOST} error to the application at a certain point during host execution. When this happens, the application can call {@code vkGetQueueCheckpointDataNV} to retrieve information on the most recent diagnostic checkpoints that were executed by the device.

    + * + *
    
    +     * void vkGetQueueCheckpointDataNV(
    +     *     VkQueue                                     queue,
    +     *     uint32_t*                                   pCheckpointDataCount,
    +     *     VkCheckpointDataNV*                         pCheckpointData);
    + * + *
    Description
    + * + *

    If {@code pCheckpointData} is {@code NULL}, then the number of checkpoint markers available is returned in {@code pCheckpointDataCount}.

    + * + *

    Otherwise, {@code pCheckpointDataCount} must point to a variable set by the user to the number of elements in the {@code pCheckpointData} array, and on return the variable is overwritten with the number of structures actually written to {@code pCheckpointData}.

    + * + *

    If {@code pCheckpointDataCount} is less than the number of checkpoint markers available, at most {@code pCheckpointDataCount} structures will be written.

    + * + *
    Valid Usage
    + * + *
      + *
    • The device that {@code queue} belongs to must be in the lost state
    • + *
    + * + *
    Valid Usage (Implicit)
    + * + *
      + *
    • {@code queue} must be a valid {@code VkQueue} handle
    • + *
    • {@code pCheckpointDataCount} must be a valid pointer to a {@code uint32_t} value
    • + *
    • If the value referenced by {@code pCheckpointDataCount} is not 0, and {@code pCheckpointData} is not {@code NULL}, {@code pCheckpointData} must be a valid pointer to an array of {@code pCheckpointDataCount} {@link VkCheckpointDataNV} structures
    • + *
    + * + *
    See Also
    + * + *

    {@link VkCheckpointDataNV}

    + * + * @param queue the {@code VkQueue} object the caller would like to retrieve checkpoint data for + * @param pCheckpointDataCount a pointer to an integer related to the number of checkpoint markers available or queried, as described below. + * @param pCheckpointData either {@code NULL} or a pointer to an array of {@link VkCheckpointDataNV} structures. + */ + public static void vkGetQueueCheckpointDataNV(VkQueue queue, @NativeType("uint32_t *") IntBuffer pCheckpointDataCount, @Nullable @NativeType("VkCheckpointDataNV *") VkCheckpointDataNV.Buffer pCheckpointData) { + if (CHECKS) { + check(pCheckpointDataCount, 1); + checkSafe(pCheckpointData, pCheckpointDataCount.get(pCheckpointDataCount.position())); + } + nvkGetQueueCheckpointDataNV(queue, memAddress(pCheckpointDataCount), memAddressSafe(pCheckpointData)); + } + + /** Array version of: {@link #vkGetQueueCheckpointDataNV GetQueueCheckpointDataNV} */ + public static void vkGetQueueCheckpointDataNV(VkQueue queue, @NativeType("uint32_t *") int[] pCheckpointDataCount, @Nullable @NativeType("VkCheckpointDataNV *") VkCheckpointDataNV.Buffer pCheckpointData) { + long __functionAddress = queue.getCapabilities().vkGetQueueCheckpointDataNV; + if (CHECKS) { + check(__functionAddress); + check(pCheckpointDataCount, 1); + checkSafe(pCheckpointData, pCheckpointDataCount[0]); + } + callPPPV(__functionAddress, queue.address(), pCheckpointDataCount, memAddressSafe(pCheckpointData)); + } + +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK10.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK10.java index 8e1c133c1a..a8e160a1c1 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK10.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VK10.java @@ -115,7 +115,7 @@ public class VK10 { * *
    See Also
    * - *

    {@link VkAcquireNextImageInfoKHR}, {@link VkApplicationInfo}, {@link VkAttachmentDescription2KHR}, {@link VkAttachmentReference2KHR}, {@link VkBaseInStructure}, {@link VkBaseOutStructure}, {@link VkBindBufferMemoryDeviceGroupInfo}, {@link VkBindBufferMemoryInfo}, {@link VkBindImageMemoryDeviceGroupInfo}, {@link VkBindImageMemoryInfo}, {@link VkBindImageMemorySwapchainInfoKHR}, {@link VkBindImagePlaneMemoryInfo}, {@link VkBindSparseInfo}, {@link VkBufferCreateInfo}, {@link VkBufferMemoryBarrier}, {@link VkBufferMemoryRequirementsInfo2}, {@link VkBufferViewCreateInfo}, {@link VkCmdProcessCommandsInfoNVX}, {@link VkCmdReserveSpaceForCommandsInfoNVX}, {@link VkCommandBufferAllocateInfo}, {@link VkCommandBufferBeginInfo}, {@link VkCommandBufferInheritanceConditionalRenderingInfoEXT}, {@link VkCommandBufferInheritanceInfo}, {@link VkCommandPoolCreateInfo}, {@link VkComputePipelineCreateInfo}, {@link VkConditionalRenderingBeginInfoEXT}, {@link VkCopyDescriptorSet}, {@link VkD3D12FenceSubmitInfoKHR}, {@link VkDebugMarkerMarkerInfoEXT}, {@link VkDebugMarkerObjectNameInfoEXT}, {@link VkDebugMarkerObjectTagInfoEXT}, {@link VkDebugReportCallbackCreateInfoEXT}, {@link VkDebugUtilsLabelEXT}, {@link VkDebugUtilsMessengerCallbackDataEXT}, {@link VkDebugUtilsMessengerCreateInfoEXT}, {@link VkDebugUtilsObjectNameInfoEXT}, {@link VkDebugUtilsObjectTagInfoEXT}, {@link VkDedicatedAllocationBufferCreateInfoNV}, {@link VkDedicatedAllocationImageCreateInfoNV}, {@link VkDedicatedAllocationMemoryAllocateInfoNV}, {@link VkDescriptorPoolCreateInfo}, {@link VkDescriptorSetAllocateInfo}, {@link VkDescriptorSetLayoutBindingFlagsCreateInfoEXT}, {@link VkDescriptorSetLayoutCreateInfo}, {@link VkDescriptorSetLayoutSupport}, {@link VkDescriptorSetVariableDescriptorCountAllocateInfoEXT}, {@link VkDescriptorSetVariableDescriptorCountLayoutSupportEXT}, {@link VkDescriptorUpdateTemplateCreateInfo}, {@link VkDeviceCreateInfo}, {@link VkDeviceEventInfoEXT}, {@link VkDeviceGeneratedCommandsFeaturesNVX}, {@link VkDeviceGeneratedCommandsLimitsNVX}, {@link VkDeviceGroupBindSparseInfo}, {@link VkDeviceGroupCommandBufferBeginInfo}, {@link VkDeviceGroupDeviceCreateInfo}, {@link VkDeviceGroupPresentCapabilitiesKHR}, {@link VkDeviceGroupPresentInfoKHR}, {@link VkDeviceGroupRenderPassBeginInfo}, {@link VkDeviceGroupSubmitInfo}, {@link VkDeviceGroupSwapchainCreateInfoKHR}, {@link VkDeviceQueueCreateInfo}, {@link VkDeviceQueueGlobalPriorityCreateInfoEXT}, {@link VkDeviceQueueInfo2}, {@link VkDisplayEventInfoEXT}, {@link VkDisplayModeCreateInfoKHR}, {@link VkDisplayModeProperties2KHR}, {@link VkDisplayPlaneCapabilities2KHR}, {@link VkDisplayPlaneInfo2KHR}, {@link VkDisplayPlaneProperties2KHR}, {@link VkDisplayPowerInfoEXT}, {@link VkDisplayPresentInfoKHR}, {@link VkDisplayProperties2KHR}, {@link VkDisplaySurfaceCreateInfoKHR}, {@link VkEventCreateInfo}, {@link VkExportFenceCreateInfo}, {@link VkExportFenceWin32HandleInfoKHR}, {@link VkExportMemoryAllocateInfo}, {@link VkExportMemoryAllocateInfoNV}, {@link VkExportMemoryWin32HandleInfoKHR}, {@link VkExportMemoryWin32HandleInfoNV}, {@link VkExportSemaphoreCreateInfo}, {@link VkExportSemaphoreWin32HandleInfoKHR}, {@link VkExternalBufferProperties}, {@link VkExternalFenceProperties}, {@link VkExternalImageFormatProperties}, {@link VkExternalMemoryBufferCreateInfo}, {@link VkExternalMemoryImageCreateInfo}, {@link VkExternalMemoryImageCreateInfoNV}, {@link VkExternalSemaphoreProperties}, {@link VkFenceCreateInfo}, {@link VkFenceGetFdInfoKHR}, {@link VkFenceGetWin32HandleInfoKHR}, {@link VkFormatProperties2}, {@link VkFramebufferCreateInfo}, {@link VkGraphicsPipelineCreateInfo}, {@link VkHdrMetadataEXT}, {@link VkImageCreateInfo}, {@link VkImageFormatListCreateInfoKHR}, {@link VkImageFormatProperties2}, {@link VkImageMemoryBarrier}, {@link VkImageMemoryRequirementsInfo2}, {@link VkImagePlaneMemoryRequirementsInfo}, {@link VkImageSparseMemoryRequirementsInfo2}, {@link VkImageSwapchainCreateInfoKHR}, {@link VkImageViewCreateInfo}, {@link VkImageViewUsageCreateInfo}, {@link VkImportFenceFdInfoKHR}, {@link VkImportFenceWin32HandleInfoKHR}, {@link VkImportMemoryFdInfoKHR}, {@link VkImportMemoryHostPointerInfoEXT}, {@link VkImportMemoryWin32HandleInfoKHR}, {@link VkImportMemoryWin32HandleInfoNV}, {@link VkImportSemaphoreFdInfoKHR}, {@link VkImportSemaphoreWin32HandleInfoKHR}, {@link VkIndirectCommandsLayoutCreateInfoNVX}, {@link VkInstanceCreateInfo}, {@link VkMacOSSurfaceCreateInfoMVK}, {@link VkMappedMemoryRange}, {@link VkMemoryAllocateFlagsInfo}, {@link VkMemoryAllocateInfo}, {@link VkMemoryBarrier}, {@link VkMemoryDedicatedAllocateInfo}, {@link VkMemoryDedicatedRequirements}, {@link VkMemoryFdPropertiesKHR}, {@link VkMemoryGetFdInfoKHR}, {@link VkMemoryGetWin32HandleInfoKHR}, {@link VkMemoryHostPointerPropertiesEXT}, {@link VkMemoryRequirements2}, {@link VkMemoryWin32HandlePropertiesKHR}, {@link VkMultisamplePropertiesEXT}, {@link VkObjectTableCreateInfoNVX}, {@link VkPhysicalDevice16BitStorageFeatures}, {@link VkPhysicalDevice8BitStorageFeaturesKHR}, {@link VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}, {@link VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}, {@link VkPhysicalDeviceConditionalRenderingFeaturesEXT}, {@link VkPhysicalDeviceConservativeRasterizationPropertiesEXT}, {@link VkPhysicalDeviceDescriptorIndexingFeaturesEXT}, {@link VkPhysicalDeviceDescriptorIndexingPropertiesEXT}, {@link VkPhysicalDeviceDiscardRectanglePropertiesEXT}, {@link VkPhysicalDeviceExternalBufferInfo}, {@link VkPhysicalDeviceExternalFenceInfo}, {@link VkPhysicalDeviceExternalImageFormatInfo}, {@link VkPhysicalDeviceExternalMemoryHostPropertiesEXT}, {@link VkPhysicalDeviceExternalSemaphoreInfo}, {@link VkPhysicalDeviceFeatures2}, {@link VkPhysicalDeviceGroupProperties}, {@link VkPhysicalDeviceIDProperties}, {@link VkPhysicalDeviceImageFormatInfo2}, {@link VkPhysicalDeviceMaintenance3Properties}, {@link VkPhysicalDeviceMemoryProperties2}, {@link VkPhysicalDeviceMultiviewFeatures}, {@link VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}, {@link VkPhysicalDeviceMultiviewProperties}, {@link VkPhysicalDevicePointClippingProperties}, {@link VkPhysicalDeviceProperties2}, {@link VkPhysicalDeviceProtectedMemoryFeatures}, {@link VkPhysicalDeviceProtectedMemoryProperties}, {@link VkPhysicalDevicePushDescriptorPropertiesKHR}, {@link VkPhysicalDeviceSampleLocationsPropertiesEXT}, {@link VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT}, {@link VkPhysicalDeviceSamplerYcbcrConversionFeatures}, {@link VkPhysicalDeviceShaderCorePropertiesAMD}, {@link VkPhysicalDeviceShaderDrawParameterFeatures}, {@link VkPhysicalDeviceSparseImageFormatInfo2}, {@link VkPhysicalDeviceSubgroupProperties}, {@link VkPhysicalDeviceSurfaceInfo2KHR}, {@link VkPhysicalDeviceVariablePointerFeatures}, {@link VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}, {@link VkPipelineCacheCreateInfo}, {@link VkPipelineColorBlendAdvancedStateCreateInfoEXT}, {@link VkPipelineColorBlendStateCreateInfo}, {@link VkPipelineCoverageModulationStateCreateInfoNV}, {@link VkPipelineCoverageToColorStateCreateInfoNV}, {@link VkPipelineDepthStencilStateCreateInfo}, {@link VkPipelineDiscardRectangleStateCreateInfoEXT}, {@link VkPipelineDynamicStateCreateInfo}, {@link VkPipelineInputAssemblyStateCreateInfo}, {@link VkPipelineLayoutCreateInfo}, {@link VkPipelineMultisampleStateCreateInfo}, {@link VkPipelineRasterizationConservativeStateCreateInfoEXT}, {@link VkPipelineRasterizationStateCreateInfo}, {@link VkPipelineRasterizationStateRasterizationOrderAMD}, {@link VkPipelineSampleLocationsStateCreateInfoEXT}, {@link VkPipelineShaderStageCreateInfo}, {@link VkPipelineTessellationDomainOriginStateCreateInfo}, {@link VkPipelineTessellationStateCreateInfo}, {@link VkPipelineVertexInputDivisorStateCreateInfoEXT}, {@link VkPipelineVertexInputStateCreateInfo}, {@link VkPipelineViewportStateCreateInfo}, {@link VkPipelineViewportSwizzleStateCreateInfoNV}, {@link VkPipelineViewportWScalingStateCreateInfoNV}, {@link VkPresentInfoKHR}, {@link VkPresentRegionsKHR}, {@link VkPresentTimesInfoGOOGLE}, {@link VkProtectedSubmitInfo}, {@link VkQueryPoolCreateInfo}, {@link VkQueueFamilyProperties2}, {@link VkRenderPassBeginInfo}, {@link VkRenderPassCreateInfo}, {@link VkRenderPassCreateInfo2KHR}, {@link VkRenderPassInputAttachmentAspectCreateInfo}, {@link VkRenderPassMultiviewCreateInfo}, {@link VkRenderPassSampleLocationsBeginInfoEXT}, {@link VkSampleLocationsInfoEXT}, {@link VkSamplerCreateInfo}, {@link VkSamplerReductionModeCreateInfoEXT}, {@link VkSamplerYcbcrConversionCreateInfo}, {@link VkSamplerYcbcrConversionImageFormatProperties}, {@link VkSamplerYcbcrConversionInfo}, {@link VkSemaphoreCreateInfo}, {@link VkSemaphoreGetFdInfoKHR}, {@link VkSemaphoreGetWin32HandleInfoKHR}, {@link VkShaderModuleCreateInfo}, {@link VkShaderModuleValidationCacheCreateInfoEXT}, {@link VkSharedPresentSurfaceCapabilitiesKHR}, {@link VkSparseImageFormatProperties2}, {@link VkSparseImageMemoryRequirements2}, {@link VkSubmitInfo}, {@link VkSubpassBeginInfoKHR}, {@link VkSubpassDependency2KHR}, {@link VkSubpassDescription2KHR}, {@link VkSubpassEndInfoKHR}, {@link VkSurfaceCapabilities2EXT}, {@link VkSurfaceCapabilities2KHR}, {@link VkSurfaceFormat2KHR}, {@link VkSwapchainCounterCreateInfoEXT}, {@link VkSwapchainCreateInfoKHR}, {@link VkTextureLODGatherFormatPropertiesAMD}, {@link VkValidationCacheCreateInfoEXT}, {@link VkValidationFlagsEXT}, {@link VkWaylandSurfaceCreateInfoKHR}, {@link VkWin32KeyedMutexAcquireReleaseInfoKHR}, {@link VkWin32KeyedMutexAcquireReleaseInfoNV}, {@link VkWin32SurfaceCreateInfoKHR}, {@link VkWriteDescriptorSet}, {@link VkXlibSurfaceCreateInfoKHR}

    + *

    {@link VkAcquireNextImageInfoKHR}, {@link VkApplicationInfo}, {@link VkAttachmentDescription2KHR}, {@link VkAttachmentReference2KHR}, {@link VkBaseInStructure}, {@link VkBaseOutStructure}, {@link VkBindBufferMemoryDeviceGroupInfo}, {@link VkBindBufferMemoryInfo}, {@link VkBindImageMemoryDeviceGroupInfo}, {@link VkBindImageMemoryInfo}, {@link VkBindImageMemorySwapchainInfoKHR}, {@link VkBindImagePlaneMemoryInfo}, {@link VkBindSparseInfo}, {@link VkBufferCreateInfo}, {@link VkBufferMemoryBarrier}, {@link VkBufferMemoryRequirementsInfo2}, {@link VkBufferViewCreateInfo}, {@link VkCheckpointDataNV}, {@link VkCmdProcessCommandsInfoNVX}, {@link VkCmdReserveSpaceForCommandsInfoNVX}, {@link VkCommandBufferAllocateInfo}, {@link VkCommandBufferBeginInfo}, {@link VkCommandBufferInheritanceConditionalRenderingInfoEXT}, {@link VkCommandBufferInheritanceInfo}, {@link VkCommandPoolCreateInfo}, {@link VkComputePipelineCreateInfo}, {@link VkConditionalRenderingBeginInfoEXT}, {@link VkCopyDescriptorSet}, {@link VkD3D12FenceSubmitInfoKHR}, {@link VkDebugMarkerMarkerInfoEXT}, {@link VkDebugMarkerObjectNameInfoEXT}, {@link VkDebugMarkerObjectTagInfoEXT}, {@link VkDebugReportCallbackCreateInfoEXT}, {@link VkDebugUtilsLabelEXT}, {@link VkDebugUtilsMessengerCallbackDataEXT}, {@link VkDebugUtilsMessengerCreateInfoEXT}, {@link VkDebugUtilsObjectNameInfoEXT}, {@link VkDebugUtilsObjectTagInfoEXT}, {@link VkDedicatedAllocationBufferCreateInfoNV}, {@link VkDedicatedAllocationImageCreateInfoNV}, {@link VkDedicatedAllocationMemoryAllocateInfoNV}, {@link VkDescriptorPoolCreateInfo}, {@link VkDescriptorSetAllocateInfo}, {@link VkDescriptorSetLayoutBindingFlagsCreateInfoEXT}, {@link VkDescriptorSetLayoutCreateInfo}, {@link VkDescriptorSetLayoutSupport}, {@link VkDescriptorSetVariableDescriptorCountAllocateInfoEXT}, {@link VkDescriptorSetVariableDescriptorCountLayoutSupportEXT}, {@link VkDescriptorUpdateTemplateCreateInfo}, {@link VkDeviceCreateInfo}, {@link VkDeviceEventInfoEXT}, {@link VkDeviceGeneratedCommandsFeaturesNVX}, {@link VkDeviceGeneratedCommandsLimitsNVX}, {@link VkDeviceGroupBindSparseInfo}, {@link VkDeviceGroupCommandBufferBeginInfo}, {@link VkDeviceGroupDeviceCreateInfo}, {@link VkDeviceGroupPresentCapabilitiesKHR}, {@link VkDeviceGroupPresentInfoKHR}, {@link VkDeviceGroupRenderPassBeginInfo}, {@link VkDeviceGroupSubmitInfo}, {@link VkDeviceGroupSwapchainCreateInfoKHR}, {@link VkDeviceQueueCreateInfo}, {@link VkDeviceQueueGlobalPriorityCreateInfoEXT}, {@link VkDeviceQueueInfo2}, {@link VkDisplayEventInfoEXT}, {@link VkDisplayModeCreateInfoKHR}, {@link VkDisplayModeProperties2KHR}, {@link VkDisplayPlaneCapabilities2KHR}, {@link VkDisplayPlaneInfo2KHR}, {@link VkDisplayPlaneProperties2KHR}, {@link VkDisplayPowerInfoEXT}, {@link VkDisplayPresentInfoKHR}, {@link VkDisplayProperties2KHR}, {@link VkDisplaySurfaceCreateInfoKHR}, {@link VkEventCreateInfo}, {@link VkExportFenceCreateInfo}, {@link VkExportFenceWin32HandleInfoKHR}, {@link VkExportMemoryAllocateInfo}, {@link VkExportMemoryAllocateInfoNV}, {@link VkExportMemoryWin32HandleInfoKHR}, {@link VkExportMemoryWin32HandleInfoNV}, {@link VkExportSemaphoreCreateInfo}, {@link VkExportSemaphoreWin32HandleInfoKHR}, {@link VkExternalBufferProperties}, {@link VkExternalFenceProperties}, {@link VkExternalImageFormatProperties}, {@link VkExternalMemoryBufferCreateInfo}, {@link VkExternalMemoryImageCreateInfo}, {@link VkExternalMemoryImageCreateInfoNV}, {@link VkExternalSemaphoreProperties}, {@link VkFenceCreateInfo}, {@link VkFenceGetFdInfoKHR}, {@link VkFenceGetWin32HandleInfoKHR}, {@link VkFormatProperties2}, {@link VkFramebufferCreateInfo}, {@link VkGraphicsPipelineCreateInfo}, {@link VkHdrMetadataEXT}, {@link VkImageCreateInfo}, {@link VkImageFormatListCreateInfoKHR}, {@link VkImageFormatProperties2}, {@link VkImageMemoryBarrier}, {@link VkImageMemoryRequirementsInfo2}, {@link VkImagePlaneMemoryRequirementsInfo}, {@link VkImageSparseMemoryRequirementsInfo2}, {@link VkImageSwapchainCreateInfoKHR}, {@link VkImageViewCreateInfo}, {@link VkImageViewUsageCreateInfo}, {@link VkImportFenceFdInfoKHR}, {@link VkImportFenceWin32HandleInfoKHR}, {@link VkImportMemoryFdInfoKHR}, {@link VkImportMemoryHostPointerInfoEXT}, {@link VkImportMemoryWin32HandleInfoKHR}, {@link VkImportMemoryWin32HandleInfoNV}, {@link VkImportSemaphoreFdInfoKHR}, {@link VkImportSemaphoreWin32HandleInfoKHR}, {@link VkIndirectCommandsLayoutCreateInfoNVX}, {@link VkInstanceCreateInfo}, {@link VkMacOSSurfaceCreateInfoMVK}, {@link VkMappedMemoryRange}, {@link VkMemoryAllocateFlagsInfo}, {@link VkMemoryAllocateInfo}, {@link VkMemoryBarrier}, {@link VkMemoryDedicatedAllocateInfo}, {@link VkMemoryDedicatedRequirements}, {@link VkMemoryFdPropertiesKHR}, {@link VkMemoryGetFdInfoKHR}, {@link VkMemoryGetWin32HandleInfoKHR}, {@link VkMemoryHostPointerPropertiesEXT}, {@link VkMemoryRequirements2}, {@link VkMemoryWin32HandlePropertiesKHR}, {@link VkMultisamplePropertiesEXT}, {@link VkObjectTableCreateInfoNVX}, {@link VkPhysicalDevice16BitStorageFeatures}, {@link VkPhysicalDevice8BitStorageFeaturesKHR}, {@link VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT}, {@link VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT}, {@link VkPhysicalDeviceConditionalRenderingFeaturesEXT}, {@link VkPhysicalDeviceConservativeRasterizationPropertiesEXT}, {@link VkPhysicalDeviceDescriptorIndexingFeaturesEXT}, {@link VkPhysicalDeviceDescriptorIndexingPropertiesEXT}, {@link VkPhysicalDeviceDiscardRectanglePropertiesEXT}, {@link VkPhysicalDeviceExternalBufferInfo}, {@link VkPhysicalDeviceExternalFenceInfo}, {@link VkPhysicalDeviceExternalImageFormatInfo}, {@link VkPhysicalDeviceExternalMemoryHostPropertiesEXT}, {@link VkPhysicalDeviceExternalSemaphoreInfo}, {@link VkPhysicalDeviceFeatures2}, {@link VkPhysicalDeviceGroupProperties}, {@link VkPhysicalDeviceIDProperties}, {@link VkPhysicalDeviceImageFormatInfo2}, {@link VkPhysicalDeviceMaintenance3Properties}, {@link VkPhysicalDeviceMemoryProperties2}, {@link VkPhysicalDeviceMultiviewFeatures}, {@link VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX}, {@link VkPhysicalDeviceMultiviewProperties}, {@link VkPhysicalDevicePointClippingProperties}, {@link VkPhysicalDeviceProperties2}, {@link VkPhysicalDeviceProtectedMemoryFeatures}, {@link VkPhysicalDeviceProtectedMemoryProperties}, {@link VkPhysicalDevicePushDescriptorPropertiesKHR}, {@link VkPhysicalDeviceSampleLocationsPropertiesEXT}, {@link VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT}, {@link VkPhysicalDeviceSamplerYcbcrConversionFeatures}, {@link VkPhysicalDeviceShaderCorePropertiesAMD}, {@link VkPhysicalDeviceShaderDrawParameterFeatures}, {@link VkPhysicalDeviceSparseImageFormatInfo2}, {@link VkPhysicalDeviceSubgroupProperties}, {@link VkPhysicalDeviceSurfaceInfo2KHR}, {@link VkPhysicalDeviceVariablePointerFeatures}, {@link VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT}, {@link VkPipelineCacheCreateInfo}, {@link VkPipelineColorBlendAdvancedStateCreateInfoEXT}, {@link VkPipelineColorBlendStateCreateInfo}, {@link VkPipelineCoverageModulationStateCreateInfoNV}, {@link VkPipelineCoverageToColorStateCreateInfoNV}, {@link VkPipelineDepthStencilStateCreateInfo}, {@link VkPipelineDiscardRectangleStateCreateInfoEXT}, {@link VkPipelineDynamicStateCreateInfo}, {@link VkPipelineInputAssemblyStateCreateInfo}, {@link VkPipelineLayoutCreateInfo}, {@link VkPipelineMultisampleStateCreateInfo}, {@link VkPipelineRasterizationConservativeStateCreateInfoEXT}, {@link VkPipelineRasterizationStateCreateInfo}, {@link VkPipelineRasterizationStateRasterizationOrderAMD}, {@link VkPipelineSampleLocationsStateCreateInfoEXT}, {@link VkPipelineShaderStageCreateInfo}, {@link VkPipelineTessellationDomainOriginStateCreateInfo}, {@link VkPipelineTessellationStateCreateInfo}, {@link VkPipelineVertexInputDivisorStateCreateInfoEXT}, {@link VkPipelineVertexInputStateCreateInfo}, {@link VkPipelineViewportStateCreateInfo}, {@link VkPipelineViewportSwizzleStateCreateInfoNV}, {@link VkPipelineViewportWScalingStateCreateInfoNV}, {@link VkPresentInfoKHR}, {@link VkPresentRegionsKHR}, {@link VkPresentTimesInfoGOOGLE}, {@link VkProtectedSubmitInfo}, {@link VkQueryPoolCreateInfo}, {@link VkQueueFamilyCheckpointPropertiesNV}, {@link VkQueueFamilyProperties2}, {@link VkRenderPassBeginInfo}, {@link VkRenderPassCreateInfo}, {@link VkRenderPassCreateInfo2KHR}, {@link VkRenderPassInputAttachmentAspectCreateInfo}, {@link VkRenderPassMultiviewCreateInfo}, {@link VkRenderPassSampleLocationsBeginInfoEXT}, {@link VkSampleLocationsInfoEXT}, {@link VkSamplerCreateInfo}, {@link VkSamplerReductionModeCreateInfoEXT}, {@link VkSamplerYcbcrConversionCreateInfo}, {@link VkSamplerYcbcrConversionImageFormatProperties}, {@link VkSamplerYcbcrConversionInfo}, {@link VkSemaphoreCreateInfo}, {@link VkSemaphoreGetFdInfoKHR}, {@link VkSemaphoreGetWin32HandleInfoKHR}, {@link VkShaderModuleCreateInfo}, {@link VkShaderModuleValidationCacheCreateInfoEXT}, {@link VkSharedPresentSurfaceCapabilitiesKHR}, {@link VkSparseImageFormatProperties2}, {@link VkSparseImageMemoryRequirements2}, {@link VkSubmitInfo}, {@link VkSubpassBeginInfoKHR}, {@link VkSubpassDependency2KHR}, {@link VkSubpassDescription2KHR}, {@link VkSubpassEndInfoKHR}, {@link VkSurfaceCapabilities2EXT}, {@link VkSurfaceCapabilities2KHR}, {@link VkSurfaceFormat2KHR}, {@link VkSwapchainCounterCreateInfoEXT}, {@link VkSwapchainCreateInfoKHR}, {@link VkTextureLODGatherFormatPropertiesAMD}, {@link VkValidationCacheCreateInfoEXT}, {@link VkValidationFlagsEXT}, {@link VkWaylandSurfaceCreateInfoKHR}, {@link VkWin32KeyedMutexAcquireReleaseInfoKHR}, {@link VkWin32KeyedMutexAcquireReleaseInfoNV}, {@link VkWin32SurfaceCreateInfoKHR}, {@link VkWriteDescriptorSet}, {@link VkXlibSurfaceCreateInfoKHR}

    * *
    Enum values:
    * @@ -1035,7 +1035,7 @@ public class VK10 { * *
    See Also
    * - *

    {@code VkPipelineStageFlags}, {@link AMDBufferMarker#vkCmdWriteBufferMarkerAMD CmdWriteBufferMarkerAMD}, {@link #vkCmdWriteTimestamp CmdWriteTimestamp}

    + *

    {@link VkCheckpointDataNV}, {@code VkPipelineStageFlags}, {@link AMDBufferMarker#vkCmdWriteBufferMarkerAMD CmdWriteBufferMarkerAMD}, {@link #vkCmdWriteTimestamp CmdWriteTimestamp}

    */ public static final int VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x1, @@ -2527,7 +2527,7 @@ public class VK10 { public static final int VK_API_VERSION_1_0 = VK_MAKE_VERSION(1, 0, 0); /** The Vulkan registry version used to generate the LWJGL bindings. */ - public static final int VK_HEADER_VERSION = 81; + public static final int VK_HEADER_VERSION = 82; /** * The reserved handle {@code VK_NULL_HANDLE} can be passed in place of valid object handles when explicitly called out in the specification. Any @@ -4132,6 +4132,7 @@ public static int nvkQueueSubmit(VkQueue queue, int submitCount, long pSubmits, *
  • Any secondary command buffers recorded into any element of the {@code pCommandBuffers} member of any element of {@code pSubmits} must be in the pending or executable state.
  • *
  • If any secondary command buffers recorded into any element of the {@code pCommandBuffers} member of any element of {@code pSubmits} was not recorded with the {@link #VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT}, it must not be in the pending state.
  • *
  • Each element of the {@code pCommandBuffers} member of each element of {@code pSubmits} must have been allocated from a {@code VkCommandPool} that was created for the same queue family {@code queue} belongs to.
  • + *
  • If any element of {@code pSubmits}→{@code pCommandBuffers} includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens before the acquire operation.
  • * * *
    Valid Usage (Implicit)
    @@ -4235,6 +4236,7 @@ public static int vkQueueSubmit(VkQueue queue, @Nullable @NativeType("VkSubmitIn *
  • Any secondary command buffers recorded into any element of the {@code pCommandBuffers} member of any element of {@code pSubmits} must be in the pending or executable state.
  • *
  • If any secondary command buffers recorded into any element of the {@code pCommandBuffers} member of any element of {@code pSubmits} was not recorded with the {@link #VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT}, it must not be in the pending state.
  • *
  • Each element of the {@code pCommandBuffers} member of each element of {@code pSubmits} must have been allocated from a {@code VkCommandPool} that was created for the same queue family {@code queue} belongs to.
  • + *
  • If any element of {@code pSubmits}→{@code pCommandBuffers} includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens before the acquire operation.
  • * * *
    Valid Usage (Implicit)
    @@ -8317,6 +8319,7 @@ public static void nvkDestroyPipelineLayout(VkDevice device, long pipelineLayout *
      *
    • If {@link VkAllocationCallbacks} were provided when {@code pipelineLayout} was created, a compatible set of callbacks must be provided here
    • *
    • If no {@link VkAllocationCallbacks} were provided when {@code pipelineLayout} was created, {@code pAllocator} must be {@code NULL}
    • + *
    • {@code pipelineLayout} must not have been passed to any vkCmd* command for any command buffers that are still in the recording state when {@link #vkDestroyPipelineLayout DestroyPipelineLayout} is called
    • *
    * *
    Valid Usage (Implicit)
    @@ -10916,9 +10919,9 @@ public static void vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, @Native *
  • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • - *
  • Any {@code VkImageView} being sampled with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command must be of a format which supports linear filtering, as specified by the {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • *
  • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
  • - *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must be of a format which supports cubic filtering, as specified by the {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If a {@code VkImageView} is sampled with with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command, then the image view’s format features must contain {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT}.
  • + *
  • If a {@code VkImageView} is sampled with with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command, then the image view’s format features must contain {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG}.
  • *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must not have a {@code VkImageViewType} of {@link #VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link #VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, or {@link #VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}.
  • *
  • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
  • @@ -11006,9 +11009,9 @@ public static void vkCmdDraw(VkCommandBuffer commandBuffer, @NativeType("uint32_ *
  • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • - *
  • Any {@code VkImageView} being sampled with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command must be of a format which supports linear filtering, as specified by the {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If a {@code VkImageView} is sampled with with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command, then the image view’s format features must contain {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT}.
  • *
  • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
  • - *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must be of a format which supports cubic filtering, as specified by the {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If a {@code VkImageView} is sampled with with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command, then the image view’s format features must contain {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG}.
  • *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must not have a {@code VkImageViewType} of {@link #VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link #VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, or {@link #VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}.
  • *
  • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
  • @@ -11099,9 +11102,9 @@ public static void vkCmdDrawIndexed(VkCommandBuffer commandBuffer, @NativeType(" *
  • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • - *
  • Any {@code VkImageView} being sampled with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command must be of a format which supports linear filtering, as specified by the {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If a {@code VkImageView} is sampled with with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command, then the image view’s format features must contain {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT}.
  • *
  • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
  • - *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must be of a format which supports cubic filtering, as specified by the {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If a {@code VkImageView} is sampled with with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command, then the image view’s format features must contain {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG}.
  • *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must not have a {@code VkImageViewType} of {@link #VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link #VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, or {@link #VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}.
  • *
  • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
  • @@ -11193,9 +11196,9 @@ public static void vkCmdDrawIndirect(VkCommandBuffer commandBuffer, @NativeType( *
  • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • - *
  • Any {@code VkImageView} being sampled with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command must be of a format which supports linear filtering, as specified by the {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If a {@code VkImageView} is sampled with with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command, then the image view’s format features must contain {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT}.
  • *
  • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
  • - *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must be of a format which supports cubic filtering, as specified by the {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If a {@code VkImageView} is sampled with with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command, then the image view’s format features must contain {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG}.
  • *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must not have a {@code VkImageViewType} of {@link #VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link #VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, or {@link #VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}
  • *
  • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to {@link VkPhysicalDeviceMultiviewProperties}{@code ::maxMultiviewInstanceIndex}.
  • *
  • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_GRAPHICS PIPELINE_BIND_POINT_GRAPHICS} reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
  • @@ -11275,8 +11278,8 @@ public static void vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, @Nati *
  • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to {@link #VK_PIPELINE_BIND_POINT_COMPUTE PIPELINE_BIND_POINT_COMPUTE} uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_COMPUTE PIPELINE_BIND_POINT_COMPUTE} accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_COMPUTE PIPELINE_BIND_POINT_COMPUTE} accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • - *
  • Any {@code VkImageView} being sampled with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command must be of a format which supports linear filtering, as specified by the {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • - *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must be of a format which supports cubic filtering, as specified by the {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If a {@code VkImageView} is sampled with with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command, then the image view’s format features must contain {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT}.
  • + *
  • If a {@code VkImageView} is sampled with with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command, then the image view’s format features must contain {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG}.
  • *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must not have a {@code VkImageViewType} of {@link #VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link #VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, or {@link #VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}
  • *
  • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_COMPUTE PIPELINE_BIND_POINT_COMPUTE} reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
  • *
  • If {@code commandBuffer} is a protected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_COMPUTE PIPELINE_BIND_POINT_COMPUTE} writes to any image or buffer, that image or buffer must not be an unprotected image or unprotected buffer.
  • @@ -11351,8 +11354,8 @@ public static void vkCmdDispatch(VkCommandBuffer commandBuffer, @NativeType("uin *
  • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to {@link #VK_PIPELINE_BIND_POINT_COMPUTE PIPELINE_BIND_POINT_COMPUTE} uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_COMPUTE PIPELINE_BIND_POINT_COMPUTE} accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • *
  • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_COMPUTE PIPELINE_BIND_POINT_COMPUTE} accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
  • - *
  • Any {@code VkImageView} being sampled with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command must be of a format which supports linear filtering, as specified by the {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • - *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must be of a format which supports cubic filtering, as specified by the {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If a {@code VkImageView} is sampled with with {@link #VK_FILTER_LINEAR FILTER_LINEAR} as a result of this command, then the image view’s format features must contain {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT}.
  • + *
  • If a {@code VkImageView} is sampled with with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command, then the image view’s format features must contain {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG}.
  • *
  • Any {@code VkImageView} being sampled with {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG} as a result of this command must not have a {@code VkImageViewType} of {@link #VK_IMAGE_VIEW_TYPE_3D IMAGE_VIEW_TYPE_3D}, {@link #VK_IMAGE_VIEW_TYPE_CUBE IMAGE_VIEW_TYPE_CUBE}, or {@link #VK_IMAGE_VIEW_TYPE_CUBE_ARRAY IMAGE_VIEW_TYPE_CUBE_ARRAY}
  • *
  • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_COMPUTE PIPELINE_BIND_POINT_COMPUTE} reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
  • *
  • If {@code commandBuffer} is a protected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to {@link #VK_PIPELINE_BIND_POINT_COMPUTE PIPELINE_BIND_POINT_COMPUTE} writes to any image or buffer, that image or buffer must not be an unprotected image or unprotected buffer.
  • @@ -11556,12 +11559,12 @@ public static void nvkCmdCopyImage(VkCommandBuffer commandBuffer, long srcImage, *
  • The source region specified by each element of {@code pRegions} must be a region that is contained within {@code srcImage} if the {@code srcImage}’s {@code VkFormat} is not a multi-planar format, and must be a region that is contained within the plane being copied if the {@code srcImage}’s {@code VkFormat} is a multi-planar format
  • *
  • The destination region specified by each element of {@code pRegions} must be a region that is contained within {@code dstImage} if the {@code dstImage}’s {@code VkFormat} is not a multi-planar format, and must be a region that is contained within the plane being copied to if the {@code dstImage}’s {@code VkFormat} is a multi-planar format
  • *
  • The union of all source regions, and the union of all destination regions, specified by the elements of {@code pRegions}, must not overlap in memory
  • - *
  • {@code srcImage} must use a format that supports {@link VK11#VK_FORMAT_FEATURE_TRANSFER_SRC_BIT FORMAT_FEATURE_TRANSFER_SRC_BIT}, which is indicated by {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • The format features of {@code srcImage} must contain {@link VK11#VK_FORMAT_FEATURE_TRANSFER_SRC_BIT FORMAT_FEATURE_TRANSFER_SRC_BIT}.
  • *
  • {@code srcImage} must have been created with {@link #VK_IMAGE_USAGE_TRANSFER_SRC_BIT IMAGE_USAGE_TRANSFER_SRC_BIT} usage flag
  • *
  • If {@code srcImage} is non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a single {@code VkDeviceMemory} object
  • *
  • {@code srcImageLayout} must specify the layout of the image subresources of {@code srcImage} specified in {@code pRegions} at the time this command is executed on a {@code VkDevice}
  • *
  • {@code srcImageLayout} must be {@link #VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL}, {@link #VK_IMAGE_LAYOUT_GENERAL IMAGE_LAYOUT_GENERAL}, or {@link KHRSharedPresentableImage#VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR IMAGE_LAYOUT_SHARED_PRESENT_KHR}
  • - *
  • {@code dstImage} must use a format that supports {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}, which is indicated by {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • The format features of {@code dstImage} must contain {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}.
  • *
  • {@code dstImage} must have been created with {@link #VK_IMAGE_USAGE_TRANSFER_DST_BIT IMAGE_USAGE_TRANSFER_DST_BIT} usage flag
  • *
  • If {@code dstImage} is non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a single {@code VkDeviceMemory} object
  • *
  • {@code dstImageLayout} must specify the layout of the image subresources of {@code dstImage} specified in {@code pRegions} at the time this command is executed on a {@code VkDevice}
  • @@ -11732,13 +11735,13 @@ public static void nvkCmdBlitImage(VkCommandBuffer commandBuffer, long srcImage, *
  • The source region specified by each element of {@code pRegions} must be a region that is contained within {@code srcImage}
  • *
  • The destination region specified by each element of {@code pRegions} must be a region that is contained within {@code dstImage}
  • *
  • The union of all destination regions, specified by the elements of {@code pRegions}, must not overlap in memory with any texel that may be sampled during the blit operation
  • - *
  • {@code srcImage} must use a format that supports {@link #VK_FORMAT_FEATURE_BLIT_SRC_BIT FORMAT_FEATURE_BLIT_SRC_BIT}, which is indicated by {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • The format features of {@code srcImage} must contain {@link #VK_FORMAT_FEATURE_BLIT_SRC_BIT FORMAT_FEATURE_BLIT_SRC_BIT}.
  • *
  • {@code srcImage} must not use a format listed in the “Formats requiring sampler Y'CBCR conversion for {@link #VK_IMAGE_ASPECT_COLOR_BIT IMAGE_ASPECT_COLOR_BIT} image views” table
  • *
  • {@code srcImage} must have been created with {@link #VK_IMAGE_USAGE_TRANSFER_SRC_BIT IMAGE_USAGE_TRANSFER_SRC_BIT} usage flag
  • *
  • If {@code srcImage} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
  • *
  • {@code srcImageLayout} must specify the layout of the image subresources of {@code srcImage} specified in {@code pRegions} at the time this command is executed on a {@code VkDevice}
  • *
  • {@code srcImageLayout} must be {@link KHRSharedPresentableImage#VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR IMAGE_LAYOUT_SHARED_PRESENT_KHR}, {@link #VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL} or {@link #VK_IMAGE_LAYOUT_GENERAL IMAGE_LAYOUT_GENERAL}
  • - *
  • {@code dstImage} must use a format that supports {@link #VK_FORMAT_FEATURE_BLIT_DST_BIT FORMAT_FEATURE_BLIT_DST_BIT}, which is indicated by {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • The format features of {@code dstImage} must contain {@link #VK_FORMAT_FEATURE_BLIT_DST_BIT FORMAT_FEATURE_BLIT_DST_BIT}.
  • *
  • {@code dstImage} must not use a format listed in the “Formats requiring sampler Y'CBCR conversion for {@link #VK_IMAGE_ASPECT_COLOR_BIT IMAGE_ASPECT_COLOR_BIT} image views” table
  • *
  • {@code dstImage} must have been created with {@link #VK_IMAGE_USAGE_TRANSFER_DST_BIT IMAGE_USAGE_TRANSFER_DST_BIT} usage flag
  • *
  • If {@code dstImage} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
  • @@ -11751,8 +11754,8 @@ public static void nvkCmdBlitImage(VkCommandBuffer commandBuffer, long srcImage, *
  • If {@code srcImage} was created with a depth/stencil format, {@code filter} must be {@link #VK_FILTER_NEAREST FILTER_NEAREST}
  • *
  • {@code srcImage} must have been created with a {@code samples} value of {@link #VK_SAMPLE_COUNT_1_BIT SAMPLE_COUNT_1_BIT}
  • *
  • {@code dstImage} must have been created with a {@code samples} value of {@link #VK_SAMPLE_COUNT_1_BIT SAMPLE_COUNT_1_BIT}
  • - *
  • If {@code filter} is {@link #VK_FILTER_LINEAR FILTER_LINEAR}, {@code srcImage} must be of a format which supports linear filtering, as specified by the {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • - *
  • If {@code filter} is {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG}, {@code srcImage} must be of a format which supports cubic filtering, as specified by the {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • If {@code filter} is {@link #VK_FILTER_LINEAR FILTER_LINEAR}, then the format features of {@code srcImage} must contain {@link #VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT}.
  • + *
  • If {@code filter} is {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG}, then the format features of {@code srcImage} must contain {@link IMGFilterCubic#VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG}.
  • *
  • If {@code filter} is {@link IMGFilterCubic#VK_FILTER_CUBIC_IMG FILTER_CUBIC_IMG}, {@code srcImage} must have a {@code VkImageType} of {@link #VK_IMAGE_TYPE_2D IMAGE_TYPE_2D}
  • *
  • If {@code commandBuffer} is an unprotected command buffer, then {@code srcImage} must not be a protected image
  • *
  • If {@code commandBuffer} is an unprotected command buffer, then {@code dstImage} must not be a protected image
  • @@ -11851,7 +11854,7 @@ public static void nvkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, long s *
  • The image region specified by each element of {@code pRegions} must be a region that is contained within {@code dstImage} if the {@code dstImage}’s {@code VkFormat} is not a multi-planar format, and must be a region that is contained within the plane being copied to if the {@code dstImage}’s {@code VkFormat} is a multi-planar format
  • *
  • The union of all source regions, and the union of all destination regions, specified by the elements of {@code pRegions}, must not overlap in memory
  • *
  • {@code srcBuffer} must have been created with {@link #VK_BUFFER_USAGE_TRANSFER_SRC_BIT BUFFER_USAGE_TRANSFER_SRC_BIT} usage flag
  • - *
  • {@code dstImage} must use a format that supports {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}, which is indicated by {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • The format features of {@code dstImage} must contain {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}.
  • *
  • If {@code srcBuffer} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
  • *
  • {@code dstImage} must have been created with {@link #VK_IMAGE_USAGE_TRANSFER_DST_BIT IMAGE_USAGE_TRANSFER_DST_BIT} usage flag
  • *
  • If {@code dstImage} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
  • @@ -11949,7 +11952,7 @@ public static void nvkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, long s *
  • The image region specified by each element of {@code pRegions} must be a region that is contained within {@code srcImage} if the {@code srcImage}’s {@code VkFormat} is not a multi-planar format, and must be a region that is contained within the plane being copied if the {@code srcImage}’s {@code VkFormat} is a multi-planar format
  • *
  • {@code dstBuffer} must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of {@code pRegions}
  • *
  • The union of all source regions, and the union of all destination regions, specified by the elements of {@code pRegions}, must not overlap in memory
  • - *
  • {@code srcImage} must use a format that supports {@link VK11#VK_FORMAT_FEATURE_TRANSFER_SRC_BIT FORMAT_FEATURE_TRANSFER_SRC_BIT}, which is indicated by {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
  • + *
  • The format features of {@code srcImage} must contain {@link VK11#VK_FORMAT_FEATURE_TRANSFER_SRC_BIT FORMAT_FEATURE_TRANSFER_SRC_BIT}.
  • *
  • {@code srcImage} must have been created with {@link #VK_IMAGE_USAGE_TRANSFER_SRC_BIT IMAGE_USAGE_TRANSFER_SRC_BIT} usage flag
  • *
  • If {@code srcImage} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
  • *
  • {@code srcImage} must have a sample count equal to {@link #VK_SAMPLE_COUNT_1_BIT SAMPLE_COUNT_1_BIT}
  • @@ -12618,7 +12621,7 @@ public static void nvkCmdClearColorImage(VkCommandBuffer commandBuffer, long ima *
    Valid Usage
    * *
      - *
    • {@code image} must use a format that supports {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}, which is indicated by {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
    • + *
    • The format features of {@code image} must contain {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}.
    • *
    • {@code image} must have been created with {@link #VK_IMAGE_USAGE_TRANSFER_DST_BIT IMAGE_USAGE_TRANSFER_DST_BIT} usage flag
    • *
    • {@code image} must not use a format listed in the “Formats requiring sampler Y'CBCR conversion for {@link #VK_IMAGE_ASPECT_COLOR_BIT IMAGE_ASPECT_COLOR_BIT} image views” table
    • *
    • If {@code image} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
    • @@ -12699,7 +12702,7 @@ public static void vkCmdClearColorImage(VkCommandBuffer commandBuffer, @NativeTy *
      Valid Usage
      * *
        - *
      • {@code image} must use a format that supports {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}, which is indicated by {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
      • + *
      • The format features of {@code image} must contain {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}.
      • *
      • {@code image} must have been created with {@link #VK_IMAGE_USAGE_TRANSFER_DST_BIT IMAGE_USAGE_TRANSFER_DST_BIT} usage flag
      • *
      • {@code image} must not use a format listed in the “Formats requiring sampler Y'CBCR conversion for {@link #VK_IMAGE_ASPECT_COLOR_BIT IMAGE_ASPECT_COLOR_BIT} image views” table
      • *
      • If {@code image} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
      • @@ -12787,7 +12790,7 @@ public static void nvkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, l *
        Valid Usage
        * *
          - *
        • {@code image} must use a format that supports {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}, which is indicated by {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
        • + *
        • The format features of {@code image} must contain {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}.
        • *
        • {@code image} must have been created with {@link #VK_IMAGE_USAGE_TRANSFER_DST_BIT IMAGE_USAGE_TRANSFER_DST_BIT} usage flag
        • *
        • If {@code image} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
        • *
        • {@code imageLayout} must specify the layout of the image subresource ranges of {@code image} specified in {@code pRanges} at the time this command is executed on a {@code VkDevice}
        • @@ -12863,7 +12866,7 @@ public static void vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, @N *
          Valid Usage
          * *
            - *
          • {@code image} must use a format that supports {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}, which is indicated by {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties} for linearly or optimally tiled images, respectively
          • + *
          • The format features of {@code image} must contain {@link VK11#VK_FORMAT_FEATURE_TRANSFER_DST_BIT FORMAT_FEATURE_TRANSFER_DST_BIT}.
          • *
          • {@code image} must have been created with {@link #VK_IMAGE_USAGE_TRANSFER_DST_BIT IMAGE_USAGE_TRANSFER_DST_BIT} usage flag
          • *
          • If {@code image} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
          • *
          • {@code imageLayout} must specify the layout of the image subresource ranges of {@code image} specified in {@code pRanges} at the time this command is executed on a {@code VkDevice}
          • @@ -13051,8 +13054,7 @@ public static void nvkCmdResolveImage(VkCommandBuffer commandBuffer, long srcIma *
          • {@code srcImageLayout} must be {@link KHRSharedPresentableImage#VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR IMAGE_LAYOUT_SHARED_PRESENT_KHR}, {@link #VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL} or {@link #VK_IMAGE_LAYOUT_GENERAL IMAGE_LAYOUT_GENERAL}
          • *
          • {@code dstImageLayout} must specify the layout of the image subresources of {@code dstImage} specified in {@code pRegions} at the time this command is executed on a {@code VkDevice}
          • *
          • {@code dstImageLayout} must be {@link KHRSharedPresentableImage#VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR IMAGE_LAYOUT_SHARED_PRESENT_KHR}, {@link #VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL} or {@link #VK_IMAGE_LAYOUT_GENERAL IMAGE_LAYOUT_GENERAL}
          • - *
          • If {@code dstImage} was created with {@code tiling} equal to {@link #VK_IMAGE_TILING_LINEAR IMAGE_TILING_LINEAR}, {@code dstImage} must have been created with a {@code format} that supports being a color attachment, as specified by the {@link #VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT FORMAT_FEATURE_COLOR_ATTACHMENT_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties}
          • - *
          • If {@code dstImage} was created with {@code tiling} equal to {@link #VK_IMAGE_TILING_OPTIMAL IMAGE_TILING_OPTIMAL}, {@code dstImage} must have been created with a {@code format} that supports being a color attachment, as specified by the {@link #VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT FORMAT_FEATURE_COLOR_ATTACHMENT_BIT} flag in {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties}
          • + *
          • The format features of {@code dstImage} must contain {@link #VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT FORMAT_FEATURE_COLOR_ATTACHMENT_BIT}.
          • *
          • {@code srcImage} and {@code dstImage} must have been created with the same image format
          • *
          • If {@code commandBuffer} is an unprotected command buffer, then {@code srcImage} must not be a protected image
          • *
          • If {@code commandBuffer} is an unprotected command buffer, then {@code dstImage} must not be a protected image
          • @@ -13147,8 +13149,7 @@ public static void vkCmdResolveImage(VkCommandBuffer commandBuffer, @NativeType( *
          • {@code srcImageLayout} must be {@link KHRSharedPresentableImage#VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR IMAGE_LAYOUT_SHARED_PRESENT_KHR}, {@link #VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL} or {@link #VK_IMAGE_LAYOUT_GENERAL IMAGE_LAYOUT_GENERAL}
          • *
          • {@code dstImageLayout} must specify the layout of the image subresources of {@code dstImage} specified in {@code pRegions} at the time this command is executed on a {@code VkDevice}
          • *
          • {@code dstImageLayout} must be {@link KHRSharedPresentableImage#VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR IMAGE_LAYOUT_SHARED_PRESENT_KHR}, {@link #VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL} or {@link #VK_IMAGE_LAYOUT_GENERAL IMAGE_LAYOUT_GENERAL}
          • - *
          • If {@code dstImage} was created with {@code tiling} equal to {@link #VK_IMAGE_TILING_LINEAR IMAGE_TILING_LINEAR}, {@code dstImage} must have been created with a {@code format} that supports being a color attachment, as specified by the {@link #VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT FORMAT_FEATURE_COLOR_ATTACHMENT_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties}
          • - *
          • If {@code dstImage} was created with {@code tiling} equal to {@link #VK_IMAGE_TILING_OPTIMAL IMAGE_TILING_OPTIMAL}, {@code dstImage} must have been created with a {@code format} that supports being a color attachment, as specified by the {@link #VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT FORMAT_FEATURE_COLOR_ATTACHMENT_BIT} flag in {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link #vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties}
          • + *
          • The format features of {@code dstImage} must contain {@link #VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT FORMAT_FEATURE_COLOR_ATTACHMENT_BIT}.
          • *
          • {@code srcImage} and {@code dstImage} must have been created with the same image format
          • *
          • If {@code commandBuffer} is an unprotected command buffer, then {@code srcImage} must not be a protected image
          • *
          • If {@code commandBuffer} is an unprotected command buffer, then {@code dstImage} must not be a protected image
          • @@ -13520,12 +13521,8 @@ public static void nvkCmdPipelineBarrier(VkCommandBuffer commandBuffer, int srcS *
          • If the geometry shaders feature is not enabled, {@code dstStageMask} must not contain {@link #VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT PIPELINE_STAGE_GEOMETRY_SHADER_BIT}
          • *
          • If the tessellation shaders feature is not enabled, {@code srcStageMask} must not contain {@link #VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT} or {@link #VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT}
          • *
          • If the tessellation shaders feature is not enabled, {@code dstStageMask} must not contain {@link #VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT} or {@link #VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT}
          • - *
          • If {@link #vkCmdPipelineBarrier CmdPipelineBarrier} is called within a render pass instance, the render pass must have been created with a {@link VkSubpassDependency} instance in {@code pDependencies} that expresses a dependency from the current subpass to itself.
          • - *
          • If {@link #vkCmdPipelineBarrier CmdPipelineBarrier} is called within a render pass instance, {@code srcStageMask} must contain a subset of the bit values in the {@code srcStageMask} member of that instance of {@link VkSubpassDependency}
          • - *
          • If {@link #vkCmdPipelineBarrier CmdPipelineBarrier} is called within a render pass instance, {@code dstStageMask} must contain a subset of the bit values in the {@code dstStageMask} member of that instance of {@link VkSubpassDependency}
          • - *
          • If {@link #vkCmdPipelineBarrier CmdPipelineBarrier} is called within a render pass instance, the {@code srcAccessMask} of any element of {@code pMemoryBarriers} or {@code pImageMemoryBarriers} must contain a subset of the bit values the {@code srcAccessMask} member of that instance of {@link VkSubpassDependency}
          • - *
          • If {@link #vkCmdPipelineBarrier CmdPipelineBarrier} is called within a render pass instance, the {@code dstAccessMask} of any element of {@code pMemoryBarriers} or {@code pImageMemoryBarriers} must contain a subset of the bit values the {@code dstAccessMask} member of that instance of {@link VkSubpassDependency}
          • - *
          • If {@link #vkCmdPipelineBarrier CmdPipelineBarrier} is called within a render pass instance, {@code dependencyFlags} must be equal to the {@code dependencyFlags} member of that instance of {@link VkSubpassDependency}
          • + *
          • If {@link #vkCmdPipelineBarrier CmdPipelineBarrier} is called within a render pass instance, the render pass must have been created with at least one {@link VkSubpassDependency} instance in {@link VkRenderPassCreateInfo}{@code ::pDependencies} that expresses a dependency from the current subpass to itself, and for which {@code srcStageMask} contains a subset of the bit values in {@link VkSubpassDependency}{@code ::srcStageMask}, {@code dstStageMask} contains a subset of the bit values in {@link VkSubpassDependency}{@code ::dstStageMask}, and {@code dependencyFlags} is equal to {@link VkSubpassDependency}{@code ::dependencyFlags}.
          • + *
          • If {@link #vkCmdPipelineBarrier CmdPipelineBarrier} is called within a render pass instance, for each element of {@code pMemoryBarriers} and {@code pImageMemoryBarriers}, the render pass must have been defined with a {@link VkSubpassDependency} self-dependency for the current subpass with valid {@code srcStageMask}, {@code dstStageMask}, and {@code dependencyFlags} values such that stext:Vk*Barrier{@code ::srcAccessMask} contains a subset of the bit values in {@link VkSubpassDependency}{@code ::srcAccessMask} and stext:Vk*Barrier{@code ::dstAccessMask} contains a subset of the bit values in {@link VkSubpassDependency}{@code ::dstAccessMask}.
          • *
          • If {@link #vkCmdPipelineBarrier CmdPipelineBarrier} is called within a render pass instance, {@code bufferMemoryBarrierCount} must be 0
          • *
          • If {@link #vkCmdPipelineBarrier CmdPipelineBarrier} is called within a render pass instance, the {@code image} member of any element of {@code pImageMemoryBarriers} must be equal to one of the elements of {@code pAttachments} that the current {@code framebuffer} was created with, that is also referred to by one of the elements of the {@code pColorAttachments}, {@code pResolveAttachments} or {@code pDepthStencilAttachment} members of the {@link VkSubpassDescription} instance that the current subpass was created with
          • *
          • If {@link #vkCmdPipelineBarrier CmdPipelineBarrier} is called within a render pass instance, the {@code oldLayout} and {@code newLayout} members of any element of {@code pImageMemoryBarriers} must be equal to the {@code layout} member of an element of the {@code pColorAttachments}, {@code pResolveAttachments} or {@code pDepthStencilAttachment} members of the {@link VkSubpassDescription} instance that the current subpass was created with, that refers to the same {@code image}
          • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesDevice.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesDevice.java index e9ccf142af..f3d98a108f 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesDevice.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VKCapabilitiesDevice.java @@ -332,6 +332,11 @@ public class VKCapabilitiesDevice { public final long vkCmdSetViewportWScalingNV; + // NV_device_diagnostic_checkpoints + public final long + vkCmdSetCheckpointNV, + vkGetQueueCheckpointDataNV; + // NV_external_memory_win32 public final long vkGetMemoryWin32HandleNV; @@ -510,6 +515,8 @@ public class VKCapabilitiesDevice { public final boolean VK_NV_clip_space_w_scaling; /** When true, {@link NVDedicatedAllocation} is supported. */ public final boolean VK_NV_dedicated_allocation; + /** When true, {@link NVDeviceDiagnosticCheckpoints} is supported. */ + public final boolean VK_NV_device_diagnostic_checkpoints; /** When true, {@link NVExternalMemory} is supported. */ public final boolean VK_NV_external_memory; /** When true, {@link NVExternalMemoryWin32} is supported. */ @@ -542,7 +549,7 @@ public class VKCapabilitiesDevice { VKCapabilitiesDevice(FunctionProvider provider, VKCapabilitiesInstance capsInstance, Set ext) { this.apiVersion = capsInstance.apiVersion; - Map caps = new HashMap<>(225); + Map caps = new HashMap<>(227); Vulkan10 = VK10.checkCapsDevice(provider, caps, ext); Vulkan11 = VK11.checkCapsDevice(provider, caps, ext); @@ -625,6 +632,7 @@ public class VKCapabilitiesDevice { VK_KHR_win32_keyed_mutex = ext.contains("VK_KHR_win32_keyed_mutex"); VK_NV_clip_space_w_scaling = NVClipSpaceWScaling.checkCapsDevice(provider, caps, ext); VK_NV_dedicated_allocation = ext.contains("VK_NV_dedicated_allocation"); + VK_NV_device_diagnostic_checkpoints = NVDeviceDiagnosticCheckpoints.checkCapsDevice(provider, caps, ext); VK_NV_external_memory = ext.contains("VK_NV_external_memory"); VK_NV_external_memory_win32 = NVExternalMemoryWin32.checkCapsDevice(provider, caps, ext); VK_NV_fill_rectangle = ext.contains("VK_NV_fill_rectangle"); @@ -856,6 +864,8 @@ public class VKCapabilitiesDevice { vkAcquireNextImageKHR = VK.get(caps, "vkAcquireNextImageKHR"); vkQueuePresentKHR = VK.get(caps, "vkQueuePresentKHR"); vkCmdSetViewportWScalingNV = VK.get(caps, "vkCmdSetViewportWScalingNV"); + vkCmdSetCheckpointNV = VK.get(caps, "vkCmdSetCheckpointNV"); + vkGetQueueCheckpointDataNV = VK.get(caps, "vkGetQueueCheckpointDataNV"); vkGetMemoryWin32HandleNV = VK.get(caps, "vkGetMemoryWin32HandleNV"); vkCmdProcessCommandsNVX = VK.get(caps, "vkCmdProcessCommandsNVX"); vkCmdReserveSpaceForCommandsNVX = VK.get(caps, "vkCmdReserveSpaceForCommandsNVX"); diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCheckpointDataNV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCheckpointDataNV.java new file mode 100644 index 0000000000..7bf693a031 --- /dev/null +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkCheckpointDataNV.java @@ -0,0 +1,364 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package org.lwjgl.vulkan; + +import javax.annotation.*; + +import java.nio.*; + +import org.lwjgl.*; +import org.lwjgl.system.*; + +import static org.lwjgl.system.MemoryUtil.*; +import static org.lwjgl.system.MemoryStack.*; + +/** + * return structure for command buffer checkpoint data. + * + *
            Valid Usage (Implicit)
            + * + *
              + *
            • {@code sType} must be {@link NVDeviceDiagnosticCheckpoints#VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV STRUCTURE_TYPE_CHECKPOINT_DATA_NV}
            • + *
            • {@code pNext} must be {@code NULL}
            • + *
            + * + *

            Note that the stages at which a checkpoint marker can be executed are implementation-defined and can be queried by calling {@code vkGetPhysicalDeviceQueueFamilyProperties2}.

            + * + *
            See Also
            + * + *

            {@link NVDeviceDiagnosticCheckpoints#vkGetQueueCheckpointDataNV GetQueueCheckpointDataNV}

            + * + *

            Member documentation

            + * + *
              + *
            • {@code sType} – the type of this structure
            • + *
            • {@code pNext} – {@code NULL} or a pointer to an extension-specific structure.
            • + *
            • {@code stage} – indicates which pipeline stage the checkpoint marker data refers to.
            • + *
            • {@code pCheckpointMarker} – contains the value of the last checkpoint marker executed in the stage that {@code stage} refers to.
            • + *
            + * + *

            Layout

            + * + *
            
            + * struct VkCheckpointDataNV {
            + *     VkStructureType sType;
            + *     void * pNext;
            + *     VkPipelineStageFlagBits stage;
            + *     void * pCheckpointMarker;
            + * }
            + */ +public class VkCheckpointDataNV extends Struct implements NativeResource { + + /** The struct size in bytes. */ + public static final int SIZEOF; + + /** The struct alignment in bytes. */ + public static final int ALIGNOF; + + /** The struct member offsets. */ + public static final int + STYPE, + PNEXT, + STAGE, + PCHECKPOINTMARKER; + + static { + Layout layout = __struct( + __member(4), + __member(POINTER_SIZE), + __member(4), + __member(POINTER_SIZE) + ); + + SIZEOF = layout.getSize(); + ALIGNOF = layout.getAlignment(); + + STYPE = layout.offsetof(0); + PNEXT = layout.offsetof(1); + STAGE = layout.offsetof(2); + PCHECKPOINTMARKER = layout.offsetof(3); + } + + VkCheckpointDataNV(long address, @Nullable ByteBuffer container) { + super(address, container); + } + + /** + * Creates a {@link VkCheckpointDataNV} instance at the current position of the specified {@link ByteBuffer} container. Changes to the buffer's content will be + * visible to the struct instance and vice versa. + * + *

            The created instance holds a strong reference to the container object.

            + */ + public VkCheckpointDataNV(ByteBuffer container) { + this(memAddress(container), __checkContainer(container, SIZEOF)); + } + + @Override + public int sizeof() { return SIZEOF; } + + /** Returns the value of the {@code sType} field. */ + @NativeType("VkStructureType") + public int sType() { return nsType(address()); } + /** Returns the value of the {@code pNext} field. */ + @NativeType("void *") + public long pNext() { return npNext(address()); } + /** Returns the value of the {@code stage} field. */ + @NativeType("VkPipelineStageFlagBits") + public int stage() { return nstage(address()); } + /** Returns the value of the {@code pCheckpointMarker} field. */ + @NativeType("void *") + public long pCheckpointMarker() { return npCheckpointMarker(address()); } + + /** Sets the specified value to the {@code sType} field. */ + public VkCheckpointDataNV sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } + /** Sets the specified value to the {@code pNext} field. */ + public VkCheckpointDataNV pNext(@NativeType("void *") long value) { npNext(address(), value); return this; } + + /** Initializes this struct with the specified values. */ + public VkCheckpointDataNV set( + int sType, + long pNext + ) { + sType(sType); + pNext(pNext); + + return this; + } + + /** + * Copies the specified struct data to this struct. + * + * @param src the source struct + * + * @return this struct + */ + public VkCheckpointDataNV set(VkCheckpointDataNV src) { + memCopy(src.address(), address(), SIZEOF); + return this; + } + + // ----------------------------------- + + /** Returns a new {@link VkCheckpointDataNV} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. */ + public static VkCheckpointDataNV malloc() { + return create(nmemAllocChecked(SIZEOF)); + } + + /** Returns a new {@link VkCheckpointDataNV} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. */ + public static VkCheckpointDataNV calloc() { + return create(nmemCallocChecked(1, SIZEOF)); + } + + /** Returns a new {@link VkCheckpointDataNV} instance allocated with {@link BufferUtils}. */ + public static VkCheckpointDataNV create() { + return new VkCheckpointDataNV(BufferUtils.createByteBuffer(SIZEOF)); + } + + /** Returns a new {@link VkCheckpointDataNV} instance for the specified memory address. */ + public static VkCheckpointDataNV create(long address) { + return new VkCheckpointDataNV(address, null); + } + + /** Like {@link #create(long) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + @Nullable + public static VkCheckpointDataNV createSafe(long address) { + return address == NULL ? null : create(address); + } + + /** + * Returns a new {@link VkCheckpointDataNV.Buffer} instance allocated with {@link MemoryUtil#memAlloc memAlloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkCheckpointDataNV.Buffer malloc(int capacity) { + return create(__malloc(capacity, SIZEOF), capacity); + } + + /** + * Returns a new {@link VkCheckpointDataNV.Buffer} instance allocated with {@link MemoryUtil#memCalloc memCalloc}. The instance must be explicitly freed. + * + * @param capacity the buffer capacity + */ + public static VkCheckpointDataNV.Buffer calloc(int capacity) { + return create(nmemCallocChecked(capacity, SIZEOF), capacity); + } + + /** + * Returns a new {@link VkCheckpointDataNV.Buffer} instance allocated with {@link BufferUtils}. + * + * @param capacity the buffer capacity + */ + public static VkCheckpointDataNV.Buffer create(int capacity) { + return new Buffer(__create(capacity, SIZEOF)); + } + + /** + * Create a {@link VkCheckpointDataNV.Buffer} instance at the specified memory. + * + * @param address the memory address + * @param capacity the buffer capacity + */ + public static VkCheckpointDataNV.Buffer create(long address, int capacity) { + return new Buffer(address, capacity); + } + + /** Like {@link #create(long, int) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + @Nullable + public static VkCheckpointDataNV.Buffer createSafe(long address, int capacity) { + return address == NULL ? null : create(address, capacity); + } + + // ----------------------------------- + + /** Returns a new {@link VkCheckpointDataNV} instance allocated on the thread-local {@link MemoryStack}. */ + public static VkCheckpointDataNV mallocStack() { + return mallocStack(stackGet()); + } + + /** Returns a new {@link VkCheckpointDataNV} instance allocated on the thread-local {@link MemoryStack} and initializes all its bits to zero. */ + public static VkCheckpointDataNV callocStack() { + return callocStack(stackGet()); + } + + /** + * Returns a new {@link VkCheckpointDataNV} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + */ + public static VkCheckpointDataNV mallocStack(MemoryStack stack) { + return create(stack.nmalloc(ALIGNOF, SIZEOF)); + } + + /** + * Returns a new {@link VkCheckpointDataNV} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + */ + public static VkCheckpointDataNV callocStack(MemoryStack stack) { + return create(stack.ncalloc(ALIGNOF, 1, SIZEOF)); + } + + /** + * Returns a new {@link VkCheckpointDataNV.Buffer} instance allocated on the thread-local {@link MemoryStack}. + * + * @param capacity the buffer capacity + */ + public static VkCheckpointDataNV.Buffer mallocStack(int capacity) { + return mallocStack(capacity, stackGet()); + } + + /** + * Returns a new {@link VkCheckpointDataNV.Buffer} instance allocated on the thread-local {@link MemoryStack} and initializes all its bits to zero. + * + * @param capacity the buffer capacity + */ + public static VkCheckpointDataNV.Buffer callocStack(int capacity) { + return callocStack(capacity, stackGet()); + } + + /** + * Returns a new {@link VkCheckpointDataNV.Buffer} instance allocated on the specified {@link MemoryStack}. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkCheckpointDataNV.Buffer mallocStack(int capacity, MemoryStack stack) { + return create(stack.nmalloc(ALIGNOF, capacity * SIZEOF), capacity); + } + + /** + * Returns a new {@link VkCheckpointDataNV.Buffer} instance allocated on the specified {@link MemoryStack} and initializes all its bits to zero. + * + * @param stack the stack from which to allocate + * @param capacity the buffer capacity + */ + public static VkCheckpointDataNV.Buffer callocStack(int capacity, MemoryStack stack) { + return create(stack.ncalloc(ALIGNOF, capacity, SIZEOF), capacity); + } + + // ----------------------------------- + + /** Unsafe version of {@link #sType}. */ + public static int nsType(long struct) { return memGetInt(struct + VkCheckpointDataNV.STYPE); } + /** Unsafe version of {@link #pNext}. */ + public static long npNext(long struct) { return memGetAddress(struct + VkCheckpointDataNV.PNEXT); } + /** Unsafe version of {@link #stage}. */ + public static int nstage(long struct) { return memGetInt(struct + VkCheckpointDataNV.STAGE); } + /** Unsafe version of {@link #pCheckpointMarker}. */ + public static long npCheckpointMarker(long struct) { return memGetAddress(struct + VkCheckpointDataNV.PCHECKPOINTMARKER); } + + /** Unsafe version of {@link #sType(int) sType}. */ + public static void nsType(long struct, int value) { memPutInt(struct + VkCheckpointDataNV.STYPE, value); } + /** Unsafe version of {@link #pNext(long) pNext}. */ + public static void npNext(long struct, long value) { memPutAddress(struct + VkCheckpointDataNV.PNEXT, value); } + + // ----------------------------------- + + /** An array of {@link VkCheckpointDataNV} structs. */ + public static class Buffer extends StructBuffer implements NativeResource { + + /** + * Creates a new {@link VkCheckpointDataNV.Buffer} instance backed by the specified container. + * + * Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values + * will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided + * by {@link VkCheckpointDataNV#SIZEOF}, and its mark will be undefined. + * + *

            The created buffer instance holds a strong reference to the container object.

            + */ + public Buffer(ByteBuffer container) { + super(container, container.remaining() / SIZEOF); + } + + public Buffer(long address, int cap) { + super(address, null, -1, 0, cap, cap); + } + + Buffer(long address, @Nullable ByteBuffer container, int mark, int pos, int lim, int cap) { + super(address, container, mark, pos, lim, cap); + } + + @Override + protected Buffer self() { + return this; + } + + @Override + protected Buffer newBufferInstance(long address, @Nullable ByteBuffer container, int mark, int pos, int lim, int cap) { + return new Buffer(address, container, mark, pos, lim, cap); + } + + @Override + protected VkCheckpointDataNV newInstance(long address) { + return new VkCheckpointDataNV(address, container); + } + + @Override + public int sizeof() { + return SIZEOF; + } + + /** Returns the value of the {@code sType} field. */ + @NativeType("VkStructureType") + public int sType() { return VkCheckpointDataNV.nsType(address()); } + /** Returns the value of the {@code pNext} field. */ + @NativeType("void *") + public long pNext() { return VkCheckpointDataNV.npNext(address()); } + /** Returns the value of the {@code stage} field. */ + @NativeType("VkPipelineStageFlagBits") + public int stage() { return VkCheckpointDataNV.nstage(address()); } + /** Returns the value of the {@code pCheckpointMarker} field. */ + @NativeType("void *") + public long pCheckpointMarker() { return VkCheckpointDataNV.npCheckpointMarker(address()); } + + /** Sets the specified value to the {@code sType} field. */ + public VkCheckpointDataNV.Buffer sType(@NativeType("VkStructureType") int value) { VkCheckpointDataNV.nsType(address(), value); return this; } + /** Sets the specified value to the {@code pNext} field. */ + public VkCheckpointDataNV.Buffer pNext(@NativeType("void *") long value) { VkCheckpointDataNV.npNext(address(), value); return this; } + + } + +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineCreateInfo.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineCreateInfo.java index 51a542b487..538a8d887d 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineCreateInfo.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkGraphicsPipelineCreateInfo.java @@ -55,7 +55,7 @@ *
          • The shader code for the entry points identified by {@code pStages}, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
          • *
          • If rasterization is not disabled and {@code subpass} uses a depth/stencil attachment in {@code renderPass} that has a layout of {@link VK10#VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL} or {@link VK11#VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL} in the {@link VkAttachmentReference} defined by {@code subpass}, the {@code depthWriteEnable} member of {@code pDepthStencilState} must be {@link VK10#VK_FALSE FALSE}
          • *
          • If rasterization is not disabled and {@code subpass} uses a depth/stencil attachment in {@code renderPass} that has a layout of {@link VK10#VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL} or {@link VK11#VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL} in the {@link VkAttachmentReference} defined by {@code subpass}, the {@code failOp}, {@code passOp} and {@code depthFailOp} members of each of the {@code front} and {@code back} members of {@code pDepthStencilState} must be {@link VK10#VK_STENCIL_OP_KEEP STENCIL_OP_KEEP}
          • - *
          • If rasterization is not disabled and the subpass uses color attachments, then for each color attachment in the subpass the {@code blendEnable} member of the corresponding element of the {@code pAttachment} member of {@code pColorBlendState} must be {@link VK10#VK_FALSE FALSE} if the {@code format} of the attachment does not support color blend operations, as specified by the {@link VK10#VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT} flag in {@link VkFormatProperties}{@code ::linearTilingFeatures} or {@link VkFormatProperties}{@code ::optimalTilingFeatures} returned by {@link VK10#vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties}
          • + *
          • If rasterization is not disabled and the subpass uses color attachments, then for each color attachment in the subpass the {@code blendEnable} member of the corresponding element of the {@code pAttachment} member of {@code pColorBlendState} must be {@link VK10#VK_FALSE FALSE} if the attached image’s format features does not contain the {@link VK10#VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT}.
          • *
          • If rasterization is not disabled and the subpass uses color attachments, the {@code attachmentCount} member of {@code pColorBlendState} must be equal to the {@code colorAttachmentCount} used to create {@code subpass}
          • *
          • If no element of the {@code pDynamicStates} member of {@code pDynamicState} is {@link VK10#VK_DYNAMIC_STATE_VIEWPORT DYNAMIC_STATE_VIEWPORT}, the {@code pViewports} member of {@code pViewportState} must be a valid pointer to an array of {@code pViewportState}{@code ::viewportCount} valid {@link VkViewport} structures
          • *
          • If no element of the {@code pDynamicStates} member of {@code pDynamicState} is {@link VK10#VK_DYNAMIC_STATE_SCISSOR DYNAMIC_STATE_SCISSOR}, the {@code pScissors} member of {@code pViewportState} must be a valid pointer to an array of {@code pViewportState}{@code ::scissorCount} {@link VkRect2D} structures
          • diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyCheckpointPropertiesNV.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyCheckpointPropertiesNV.java new file mode 100644 index 0000000000..4c1e1852eb --- /dev/null +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyCheckpointPropertiesNV.java @@ -0,0 +1,216 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package org.lwjgl.vulkan; + +import javax.annotation.*; + +import java.nio.*; + +import org.lwjgl.system.*; + +import static org.lwjgl.system.MemoryUtil.*; + +/** + *

            Layout

            + * + *
            
            + * struct VkQueueFamilyCheckpointPropertiesNV {
            + *     VkStructureType sType;
            + *     void * pNext;
            + *     VkPipelineStageFlags checkpointExecutionStageMask;
            + * }
            + */ +public class VkQueueFamilyCheckpointPropertiesNV extends Struct { + + /** The struct size in bytes. */ + public static final int SIZEOF; + + /** The struct alignment in bytes. */ + public static final int ALIGNOF; + + /** The struct member offsets. */ + public static final int + STYPE, + PNEXT, + CHECKPOINTEXECUTIONSTAGEMASK; + + static { + Layout layout = __struct( + __member(4), + __member(POINTER_SIZE), + __member(4) + ); + + SIZEOF = layout.getSize(); + ALIGNOF = layout.getAlignment(); + + STYPE = layout.offsetof(0); + PNEXT = layout.offsetof(1); + CHECKPOINTEXECUTIONSTAGEMASK = layout.offsetof(2); + } + + VkQueueFamilyCheckpointPropertiesNV(long address, @Nullable ByteBuffer container) { + super(address, container); + } + + /** + * Creates a {@link VkQueueFamilyCheckpointPropertiesNV} instance at the current position of the specified {@link ByteBuffer} container. Changes to the buffer's content will be + * visible to the struct instance and vice versa. + * + *

            The created instance holds a strong reference to the container object.

            + */ + public VkQueueFamilyCheckpointPropertiesNV(ByteBuffer container) { + this(memAddress(container), __checkContainer(container, SIZEOF)); + } + + @Override + public int sizeof() { return SIZEOF; } + + /** Returns the value of the {@code sType} field. */ + @NativeType("VkStructureType") + public int sType() { return nsType(address()); } + /** Returns the value of the {@code pNext} field. */ + @NativeType("void *") + public long pNext() { return npNext(address()); } + /** Returns the value of the {@code checkpointExecutionStageMask} field. */ + @NativeType("VkPipelineStageFlags") + public int checkpointExecutionStageMask() { return ncheckpointExecutionStageMask(address()); } + + /** Sets the specified value to the {@code sType} field. */ + public VkQueueFamilyCheckpointPropertiesNV sType(@NativeType("VkStructureType") int value) { nsType(address(), value); return this; } + /** Sets the specified value to the {@code pNext} field. */ + public VkQueueFamilyCheckpointPropertiesNV pNext(@NativeType("void *") long value) { npNext(address(), value); return this; } + + /** Initializes this struct with the specified values. */ + public VkQueueFamilyCheckpointPropertiesNV set( + int sType, + long pNext + ) { + sType(sType); + pNext(pNext); + + return this; + } + + /** + * Copies the specified struct data to this struct. + * + * @param src the source struct + * + * @return this struct + */ + public VkQueueFamilyCheckpointPropertiesNV set(VkQueueFamilyCheckpointPropertiesNV src) { + memCopy(src.address(), address(), SIZEOF); + return this; + } + + // ----------------------------------- + + /** Returns a new {@link VkQueueFamilyCheckpointPropertiesNV} instance for the specified memory address. */ + public static VkQueueFamilyCheckpointPropertiesNV create(long address) { + return new VkQueueFamilyCheckpointPropertiesNV(address, null); + } + + /** Like {@link #create(long) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + @Nullable + public static VkQueueFamilyCheckpointPropertiesNV createSafe(long address) { + return address == NULL ? null : create(address); + } + + /** + * Create a {@link VkQueueFamilyCheckpointPropertiesNV.Buffer} instance at the specified memory. + * + * @param address the memory address + * @param capacity the buffer capacity + */ + public static VkQueueFamilyCheckpointPropertiesNV.Buffer create(long address, int capacity) { + return new Buffer(address, capacity); + } + + /** Like {@link #create(long, int) create}, but returns {@code null} if {@code address} is {@code NULL}. */ + @Nullable + public static VkQueueFamilyCheckpointPropertiesNV.Buffer createSafe(long address, int capacity) { + return address == NULL ? null : create(address, capacity); + } + + // ----------------------------------- + + /** Unsafe version of {@link #sType}. */ + public static int nsType(long struct) { return memGetInt(struct + VkQueueFamilyCheckpointPropertiesNV.STYPE); } + /** Unsafe version of {@link #pNext}. */ + public static long npNext(long struct) { return memGetAddress(struct + VkQueueFamilyCheckpointPropertiesNV.PNEXT); } + /** Unsafe version of {@link #checkpointExecutionStageMask}. */ + public static int ncheckpointExecutionStageMask(long struct) { return memGetInt(struct + VkQueueFamilyCheckpointPropertiesNV.CHECKPOINTEXECUTIONSTAGEMASK); } + + /** Unsafe version of {@link #sType(int) sType}. */ + public static void nsType(long struct, int value) { memPutInt(struct + VkQueueFamilyCheckpointPropertiesNV.STYPE, value); } + /** Unsafe version of {@link #pNext(long) pNext}. */ + public static void npNext(long struct, long value) { memPutAddress(struct + VkQueueFamilyCheckpointPropertiesNV.PNEXT, value); } + + // ----------------------------------- + + /** An array of {@link VkQueueFamilyCheckpointPropertiesNV} structs. */ + public static class Buffer extends StructBuffer { + + /** + * Creates a new {@link VkQueueFamilyCheckpointPropertiesNV.Buffer} instance backed by the specified container. + * + * Changes to the container's content will be visible to the struct buffer instance and vice versa. The two buffers' position, limit, and mark values + * will be independent. The new buffer's position will be zero, its capacity and its limit will be the number of bytes remaining in this buffer divided + * by {@link VkQueueFamilyCheckpointPropertiesNV#SIZEOF}, and its mark will be undefined. + * + *

            The created buffer instance holds a strong reference to the container object.

            + */ + public Buffer(ByteBuffer container) { + super(container, container.remaining() / SIZEOF); + } + + public Buffer(long address, int cap) { + super(address, null, -1, 0, cap, cap); + } + + Buffer(long address, @Nullable ByteBuffer container, int mark, int pos, int lim, int cap) { + super(address, container, mark, pos, lim, cap); + } + + @Override + protected Buffer self() { + return this; + } + + @Override + protected Buffer newBufferInstance(long address, @Nullable ByteBuffer container, int mark, int pos, int lim, int cap) { + return new Buffer(address, container, mark, pos, lim, cap); + } + + @Override + protected VkQueueFamilyCheckpointPropertiesNV newInstance(long address) { + return new VkQueueFamilyCheckpointPropertiesNV(address, container); + } + + @Override + public int sizeof() { + return SIZEOF; + } + + /** Returns the value of the {@code sType} field. */ + @NativeType("VkStructureType") + public int sType() { return VkQueueFamilyCheckpointPropertiesNV.nsType(address()); } + /** Returns the value of the {@code pNext} field. */ + @NativeType("void *") + public long pNext() { return VkQueueFamilyCheckpointPropertiesNV.npNext(address()); } + /** Returns the value of the {@code checkpointExecutionStageMask} field. */ + @NativeType("VkPipelineStageFlags") + public int checkpointExecutionStageMask() { return VkQueueFamilyCheckpointPropertiesNV.ncheckpointExecutionStageMask(address()); } + + /** Sets the specified value to the {@code sType} field. */ + public VkQueueFamilyCheckpointPropertiesNV.Buffer sType(@NativeType("VkStructureType") int value) { VkQueueFamilyCheckpointPropertiesNV.nsType(address(), value); return this; } + /** Sets the specified value to the {@code pNext} field. */ + public VkQueueFamilyCheckpointPropertiesNV.Buffer pNext(@NativeType("void *") long value) { VkQueueFamilyCheckpointPropertiesNV.npNext(address(), value); return this; } + + } + +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyProperties2.java b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyProperties2.java index ac20d77ac8..b06cda0ace 100644 --- a/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyProperties2.java +++ b/modules/lwjgl/vulkan/src/generated/java/org/lwjgl/vulkan/VkQueueFamilyProperties2.java @@ -22,7 +22,7 @@ * *
              *
            • {@code sType} must be {@link VK11#VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2}
            • - *
            • {@code pNext} must be {@code NULL}
            • + *
            • {@code pNext} must be {@code NULL} or a pointer to a valid instance of {@link VkQueueFamilyCheckpointPropertiesNV}
            • *
            * *
            See Also
            diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/Custom.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/Custom.kt index 2bde3dd852..596be4c12d 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/Custom.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/Custom.kt @@ -45,7 +45,7 @@ fun templateCustomization() { IntConstant( "The Vulkan registry version used to generate the LWJGL bindings.", - "HEADER_VERSION".."81" + "HEADER_VERSION".."82" ) LongConstant( diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/ExtensionTypes.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/ExtensionTypes.kt index 8e43e28322..e68dcea2c9 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/ExtensionTypes.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/ExtensionTypes.kt @@ -5077,4 +5077,33 @@ val VkPipelineVertexInputDivisorStateCreateInfoEXT = struct(Module.VULKAN, "VkPi nullable..opaque_const_p.member("pNext", "{@code NULL} or a pointer to an extension-specific structure") AutoSize("pVertexBindingDivisors")..uint32_t.member("vertexBindingDivisorCount", "the number of elements in the {@code pVertexBindingDivisors} array.") VkVertexInputBindingDivisorDescriptionEXT.const.p.buffer("pVertexBindingDivisors", "a pointer to an array of ##VkVertexInputBindingDivisorDescriptionEXT structures, which specifies the divisor value for each binding.") +} + +val VkQueueFamilyCheckpointPropertiesNV = struct(Module.VULKAN, "VkQueueFamilyCheckpointPropertiesNV", mutable = false) { + VkStructureType.member("sType", "").mutable() + nullable..opaque_p.member("pNext", "").mutable() + VkPipelineStageFlags.member("checkpointExecutionStageMask", "") +} + +val VkCheckpointDataNV = struct(Module.VULKAN, "VkCheckpointDataNV", mutable = false) { + documentation = + """ + return structure for command buffer checkpoint data. + +
            Valid Usage (Implicit)
            +
              +
            • {@code sType} must be #STRUCTURE_TYPE_CHECKPOINT_DATA_NV
            • +
            • {@code pNext} must be {@code NULL}
            • +
            + + Note that the stages at which a checkpoint marker can be executed are implementation-defined and can be queried by calling {@code vkGetPhysicalDeviceQueueFamilyProperties2}. + +
            See Also
            + #GetQueueCheckpointDataNV() + """ + + VkStructureType.member("sType", "the type of this structure").mutable() + nullable..opaque_p.member("pNext", "{@code NULL} or a pointer to an extension-specific structure.").mutable() + VkPipelineStageFlagBits.member("stage", "indicates which pipeline stage the checkpoint marker data refers to.") + opaque_p.member("pCheckpointMarker", "contains the value of the last checkpoint marker executed in the stage that {@code stage} refers to.") } \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/VKTypes.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/VKTypes.kt index 5d0891ad5e..9900aa517a 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/VKTypes.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/VKTypes.kt @@ -21,6 +21,7 @@ val VSI = "VSI" val KDAB = "KDAB" val ANDROID = "ANDROID" val CHROMIUM = "CHROMIUM" +val FUCHSIA = "FUCHSIA" val GOOGLE = "GOOGLE" val QCOM = "QCOM" val LUNARG = "LUNARG" @@ -2851,7 +2852,7 @@ val VkGraphicsPipelineCreateInfo = struct(Module.VULKAN, "VkGraphicsPipelineCrea
          • The shader code for the entry points identified by {@code pStages}, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter
          • If rasterization is not disabled and {@code subpass} uses a depth/stencil attachment in {@code renderPass} that has a layout of #IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL or #IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL in the ##VkAttachmentReference defined by {@code subpass}, the {@code depthWriteEnable} member of {@code pDepthStencilState} must be #FALSE
          • If rasterization is not disabled and {@code subpass} uses a depth/stencil attachment in {@code renderPass} that has a layout of #IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL or #IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL in the ##VkAttachmentReference defined by {@code subpass}, the {@code failOp}, {@code passOp} and {@code depthFailOp} members of each of the {@code front} and {@code back} members of {@code pDepthStencilState} must be #STENCIL_OP_KEEP
          • -
          • If rasterization is not disabled and the subpass uses color attachments, then for each color attachment in the subpass the {@code blendEnable} member of the corresponding element of the {@code pAttachment} member of {@code pColorBlendState} must be #FALSE if the {@code format} of the attachment does not support color blend operations, as specified by the #FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties()
          • +
          • If rasterization is not disabled and the subpass uses color attachments, then for each color attachment in the subpass the {@code blendEnable} member of the corresponding element of the {@code pAttachment} member of {@code pColorBlendState} must be #FALSE if the attached image’s format features does not contain the #FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT.
          • If rasterization is not disabled and the subpass uses color attachments, the {@code attachmentCount} member of {@code pColorBlendState} must be equal to the {@code colorAttachmentCount} used to create {@code subpass}
          • If no element of the {@code pDynamicStates} member of {@code pDynamicState} is #DYNAMIC_STATE_VIEWPORT, the {@code pViewports} member of {@code pViewportState} must be a valid pointer to an array of {@code pViewportState}{@code ::viewportCount} valid ##VkViewport structures
          • If no element of the {@code pDynamicStates} member of {@code pDynamicState} is #DYNAMIC_STATE_SCISSOR, the {@code pScissors} member of {@code pViewportState} must be a valid pointer to an array of {@code pViewportState}{@code ::scissorCount} ##VkRect2D structures
          • @@ -5356,7 +5357,7 @@ val VkQueueFamilyProperties2 = struct(Module.VULKAN, "VkQueueFamilyProperties2",
            Valid Usage (Implicit)
            • {@code sType} must be #STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2
            • -
            • {@code pNext} must be {@code NULL}
            • +
            • {@code pNext} must be {@code NULL} or a pointer to a valid instance of ##VkQueueFamilyCheckpointPropertiesNV
            See Also
            diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_draw_indirect_count.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_draw_indirect_count.kt index 123d19c0ba..8d7c944358 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_draw_indirect_count.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/AMD_draw_indirect_count.kt @@ -119,7 +119,7 @@ val AMD_draw_indirect_count = "AMDDrawIndirectCount".nativeClassVK("AMD_draw_ind
          • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to #PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
          • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
          • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
          • -
          • Any {@code VkImageView} being sampled with #FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
          • +
          • If a {@code VkImageView} is sampled with with #FILTER_LINEAR as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
          • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
          • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}.
          • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
          • @@ -210,7 +210,7 @@ val AMD_draw_indirect_count = "AMDDrawIndirectCount".nativeClassVK("AMD_draw_ind
          • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to #PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
          • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
          • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
          • -
          • Any {@code VkImageView} being sampled with #FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
          • +
          • If a {@code VkImageView} is sampled with with #FILTER_LINEAR as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
          • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
          • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}.
          • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
          • diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_draw_indirect_count.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_draw_indirect_count.kt index 0bbab66812..1b2c88e7e8 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_draw_indirect_count.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/KHR_draw_indirect_count.kt @@ -118,9 +118,9 @@ val KHR_draw_indirect_count = "KHRDrawIndirectCount".nativeClassVK("KHR_draw_ind
          • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to #PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
          • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
          • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
          • -
          • Any {@code VkImageView} being sampled with #FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} (for a linear image) or ##VkFormatProperties{@code ::optimalTilingFeatures}(for an optimally tiled image) returned by #GetPhysicalDeviceFormatProperties()
          • +
          • If a {@code VkImageView} is sampled with with #FILTER_LINEAR as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
          • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
          • -
          • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must be of a format which supports cubic filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ##VkFormatProperties{@code ::linearTilingFeatures} (for a linear image) or ##VkFormatProperties{@code ::optimalTilingFeatures}(for an optimally tiled image) returned by #GetPhysicalDeviceFormatProperties()
          • +
          • If a {@code VkImageView} is sampled with with #FILTER_CUBIC_IMG as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
          • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must not have a {@code VkImageViewType} of #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, or #IMAGE_VIEW_TYPE_CUBE_ARRAY
          • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}.
          • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
          • @@ -211,9 +211,9 @@ val KHR_draw_indirect_count = "KHRDrawIndirectCount".nativeClassVK("KHR_draw_ind
          • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to #PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
          • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
          • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
          • -
          • Any {@code VkImageView} being sampled with #FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} (for a linear image) or ##VkFormatProperties{@code ::optimalTilingFeatures}(for an optimally tiled image) returned by #GetPhysicalDeviceFormatProperties()
          • +
          • If a {@code VkImageView} is sampled with with #FILTER_LINEAR as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
          • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
          • -
          • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must be of a format which supports cubic filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ##VkFormatProperties{@code ::linearTilingFeatures} (for a linear image) or ##VkFormatProperties{@code ::optimalTilingFeatures}(for an optimally tiled image) returned by #GetPhysicalDeviceFormatProperties()
          • +
          • If a {@code VkImageView} is sampled with with #FILTER_CUBIC_IMG as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
          • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must not have a {@code VkImageViewType} of #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, or #IMAGE_VIEW_TYPE_CUBE_ARRAY
          • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}.
          • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
          • diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_diagnostic_checkpoints.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_diagnostic_checkpoints.kt new file mode 100644 index 0000000000..08b3987b05 --- /dev/null +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/NV_device_diagnostic_checkpoints.kt @@ -0,0 +1,152 @@ +/* + * Copyright LWJGL. All rights reserved. + * License terms: https://www.lwjgl.org/license + * MACHINE GENERATED FILE, DO NOT EDIT + */ +package vulkan.templates + +import org.lwjgl.generator.* +import vulkan.* + +val NV_device_diagnostic_checkpoints = "NVDeviceDiagnosticCheckpoints".nativeClassVK("NV_device_diagnostic_checkpoints", type = "device", postfix = NV) { + documentation = + """ + This extension allows applications to insert markers in the command stream and associate them with custom data. + + If a device lost error occurs, the application may then query the implementation for the last markers to cross specific implementation-defined pipeline stages, in order to narrow down which commands were executing at the time and might have caused the failure. + +
            +
            Name String
            +
            {@code VK_NV_device_diagnostic_checkpoints}
            + +
            Extension Type
            +
            Device extension
            + +
            Registered Extension Number
            +
            207
            + +
            Revision
            +
            2
            + +
            Extension and Version Dependencies
            +
              +
            • Requires Vulkan 1.0
            • +
            • Requires {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2}
            • +
            + +
            Contact
            +
              +
            • Nuno Subtil @nsubtil
            • +
            + +
            Last Modified Date
            +
            2018-07-16
            + +
            Contributors
            +
              +
            • Oleg Kuznetsov, NVIDIA
            • +
            • Alex Dunn, NVIDIA
            • +
            • Jeff Bolz, NVIDIA
            • +
            • Eric Werness, NVIDIA
            • +
            • Daniel Koch, NVIDIA
            • +
            +
            + """ + + IntConstant( + "The extension specification version.", + + "NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION".."2" + ) + + StringConstant( + "The extension name.", + + "NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME".."VK_NV_device_diagnostic_checkpoints" + ) + + EnumConstant( + "Extends {@code VkStructureType}.", + + "STRUCTURE_TYPE_CHECKPOINT_DATA_NV".."1000206000", + "STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV".."1000206001" + ) + + void( + "CmdSetCheckpointNV", + """ + insert diagnostic checkpoint in command stream. + +
            C Specification
            + Device diagnostic checkpoints are inserted into the command stream by calling {@code vkCmdSetCheckpointNV}. + +
            
            +￿void vkCmdSetCheckpointNV(
            +￿    VkCommandBuffer                             commandBuffer,
            +￿    const void*                                 pCheckpointMarker);
            + +
            Valid Usage (Implicit)
            +
              +
            • {@code commandBuffer} must be a valid {@code VkCommandBuffer} handle
            • +
            • {@code commandBuffer} must be in the recording state
            • +
            • The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support graphics, compute, or transfer operations
            • +
            + +
            Host Synchronization
            +
              +
            • Host access to the {@code VkCommandPool} that {@code commandBuffer} was allocated from must be externally synchronized
            • +
            + +
            Command Properties
            + + + +
            Command Buffer LevelsRender Pass ScopeSupported Queue TypesPipeline Type
            Primary SecondaryBothGraphics Compute Transfer
            + """, + + VkCommandBuffer.IN("commandBuffer", "the command buffer that will receive the marker"), + opaque_const_p.IN("pCheckpointMarker", "an opaque application-provided value that will be associated with the checkpoint.") + ) + + void( + "GetQueueCheckpointDataNV", + """ + retrieve diagnostic checkpoint data. + +
            C Specification
            + If the device encounters an error during execution, the implementation will return a #ERROR_DEVICE_LOST error to the application at a certain point during host execution. When this happens, the application can call {@code vkGetQueueCheckpointDataNV} to retrieve information on the most recent diagnostic checkpoints that were executed by the device. + +
            
            +￿void vkGetQueueCheckpointDataNV(
            +￿    VkQueue                                     queue,
            +￿    uint32_t*                                   pCheckpointDataCount,
            +￿    VkCheckpointDataNV*                         pCheckpointData);
            + +
            Description
            + If {@code pCheckpointData} is {@code NULL}, then the number of checkpoint markers available is returned in {@code pCheckpointDataCount}. + + Otherwise, {@code pCheckpointDataCount} must point to a variable set by the user to the number of elements in the {@code pCheckpointData} array, and on return the variable is overwritten with the number of structures actually written to {@code pCheckpointData}. + + If {@code pCheckpointDataCount} is less than the number of checkpoint markers available, at most {@code pCheckpointDataCount} structures will be written. + +
            Valid Usage
            +
              +
            • The device that {@code queue} belongs to must be in the lost state
            • +
            + +
            Valid Usage (Implicit)
            +
              +
            • {@code queue} must be a valid {@code VkQueue} handle
            • +
            • {@code pCheckpointDataCount} must be a valid pointer to a {@code uint32_t} value
            • +
            • If the value referenced by {@code pCheckpointDataCount} is not 0, and {@code pCheckpointData} is not {@code NULL}, {@code pCheckpointData} must be a valid pointer to an array of {@code pCheckpointDataCount} ##VkCheckpointDataNV structures
            • +
            + +
            See Also
            + ##VkCheckpointDataNV + """, + + VkQueue.IN("queue", "the {@code VkQueue} object the caller would like to retrieve checkpoint data for"), + AutoSize("pCheckpointData")..Check(1)..uint32_t.p.INOUT("pCheckpointDataCount", "a pointer to an integer related to the number of checkpoint markers available or queried, as described below."), + nullable..VkCheckpointDataNV.p.OUT("pCheckpointData", "either {@code NULL} or a pointer to an array of ##VkCheckpointDataNV structures.") + ) +} \ No newline at end of file diff --git a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK10.kt b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK10.kt index 0346eea6c7..c5f0b9a576 100644 --- a/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK10.kt +++ b/modules/lwjgl/vulkan/src/templates/kotlin/vulkan/templates/VK10.kt @@ -108,7 +108,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK The values #STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO and #STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO are reserved for internal use by the loader, and do not have corresponding Vulkan structures in this Specification.
            See Also
            - ##VkAcquireNextImageInfoKHR, ##VkApplicationInfo, ##VkAttachmentDescription2KHR, ##VkAttachmentReference2KHR, ##VkBaseInStructure, ##VkBaseOutStructure, ##VkBindBufferMemoryDeviceGroupInfo, ##VkBindBufferMemoryInfo, ##VkBindImageMemoryDeviceGroupInfo, ##VkBindImageMemoryInfo, ##VkBindImageMemorySwapchainInfoKHR, ##VkBindImagePlaneMemoryInfo, ##VkBindSparseInfo, ##VkBufferCreateInfo, ##VkBufferMemoryBarrier, ##VkBufferMemoryRequirementsInfo2, ##VkBufferViewCreateInfo, ##VkCmdProcessCommandsInfoNVX, ##VkCmdReserveSpaceForCommandsInfoNVX, ##VkCommandBufferAllocateInfo, ##VkCommandBufferBeginInfo, ##VkCommandBufferInheritanceConditionalRenderingInfoEXT, ##VkCommandBufferInheritanceInfo, ##VkCommandPoolCreateInfo, ##VkComputePipelineCreateInfo, ##VkConditionalRenderingBeginInfoEXT, ##VkCopyDescriptorSet, ##VkD3D12FenceSubmitInfoKHR, ##VkDebugMarkerMarkerInfoEXT, ##VkDebugMarkerObjectNameInfoEXT, ##VkDebugMarkerObjectTagInfoEXT, ##VkDebugReportCallbackCreateInfoEXT, ##VkDebugUtilsLabelEXT, ##VkDebugUtilsMessengerCallbackDataEXT, ##VkDebugUtilsMessengerCreateInfoEXT, ##VkDebugUtilsObjectNameInfoEXT, ##VkDebugUtilsObjectTagInfoEXT, ##VkDedicatedAllocationBufferCreateInfoNV, ##VkDedicatedAllocationImageCreateInfoNV, ##VkDedicatedAllocationMemoryAllocateInfoNV, ##VkDescriptorPoolCreateInfo, ##VkDescriptorSetAllocateInfo, ##VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, ##VkDescriptorSetLayoutCreateInfo, ##VkDescriptorSetLayoutSupport, ##VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, ##VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, ##VkDescriptorUpdateTemplateCreateInfo, ##VkDeviceCreateInfo, ##VkDeviceEventInfoEXT, ##VkDeviceGeneratedCommandsFeaturesNVX, ##VkDeviceGeneratedCommandsLimitsNVX, ##VkDeviceGroupBindSparseInfo, ##VkDeviceGroupCommandBufferBeginInfo, ##VkDeviceGroupDeviceCreateInfo, ##VkDeviceGroupPresentCapabilitiesKHR, ##VkDeviceGroupPresentInfoKHR, ##VkDeviceGroupRenderPassBeginInfo, ##VkDeviceGroupSubmitInfo, ##VkDeviceGroupSwapchainCreateInfoKHR, ##VkDeviceQueueCreateInfo, ##VkDeviceQueueGlobalPriorityCreateInfoEXT, ##VkDeviceQueueInfo2, ##VkDisplayEventInfoEXT, ##VkDisplayModeCreateInfoKHR, ##VkDisplayModeProperties2KHR, ##VkDisplayPlaneCapabilities2KHR, ##VkDisplayPlaneInfo2KHR, ##VkDisplayPlaneProperties2KHR, ##VkDisplayPowerInfoEXT, ##VkDisplayPresentInfoKHR, ##VkDisplayProperties2KHR, ##VkDisplaySurfaceCreateInfoKHR, ##VkEventCreateInfo, ##VkExportFenceCreateInfo, ##VkExportFenceWin32HandleInfoKHR, ##VkExportMemoryAllocateInfo, ##VkExportMemoryAllocateInfoNV, ##VkExportMemoryWin32HandleInfoKHR, ##VkExportMemoryWin32HandleInfoNV, ##VkExportSemaphoreCreateInfo, ##VkExportSemaphoreWin32HandleInfoKHR, ##VkExternalBufferProperties, ##VkExternalFenceProperties, ##VkExternalImageFormatProperties, ##VkExternalMemoryBufferCreateInfo, ##VkExternalMemoryImageCreateInfo, ##VkExternalMemoryImageCreateInfoNV, ##VkExternalSemaphoreProperties, ##VkFenceCreateInfo, ##VkFenceGetFdInfoKHR, ##VkFenceGetWin32HandleInfoKHR, ##VkFormatProperties2, ##VkFramebufferCreateInfo, ##VkGraphicsPipelineCreateInfo, ##VkHdrMetadataEXT, ##VkImageCreateInfo, ##VkImageFormatListCreateInfoKHR, ##VkImageFormatProperties2, ##VkImageMemoryBarrier, ##VkImageMemoryRequirementsInfo2, ##VkImagePlaneMemoryRequirementsInfo, ##VkImageSparseMemoryRequirementsInfo2, ##VkImageSwapchainCreateInfoKHR, ##VkImageViewCreateInfo, ##VkImageViewUsageCreateInfo, ##VkImportFenceFdInfoKHR, ##VkImportFenceWin32HandleInfoKHR, ##VkImportMemoryFdInfoKHR, ##VkImportMemoryHostPointerInfoEXT, ##VkImportMemoryWin32HandleInfoKHR, ##VkImportMemoryWin32HandleInfoNV, ##VkImportSemaphoreFdInfoKHR, ##VkImportSemaphoreWin32HandleInfoKHR, ##VkIndirectCommandsLayoutCreateInfoNVX, ##VkInstanceCreateInfo, ##VkMacOSSurfaceCreateInfoMVK, ##VkMappedMemoryRange, ##VkMemoryAllocateFlagsInfo, ##VkMemoryAllocateInfo, ##VkMemoryBarrier, ##VkMemoryDedicatedAllocateInfo, ##VkMemoryDedicatedRequirements, ##VkMemoryFdPropertiesKHR, ##VkMemoryGetFdInfoKHR, ##VkMemoryGetWin32HandleInfoKHR, ##VkMemoryHostPointerPropertiesEXT, ##VkMemoryRequirements2, ##VkMemoryWin32HandlePropertiesKHR, ##VkMultisamplePropertiesEXT, ##VkObjectTableCreateInfoNVX, ##VkPhysicalDevice16BitStorageFeatures, ##VkPhysicalDevice8BitStorageFeaturesKHR, ##VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, ##VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, ##VkPhysicalDeviceConditionalRenderingFeaturesEXT, ##VkPhysicalDeviceConservativeRasterizationPropertiesEXT, ##VkPhysicalDeviceDescriptorIndexingFeaturesEXT, ##VkPhysicalDeviceDescriptorIndexingPropertiesEXT, ##VkPhysicalDeviceDiscardRectanglePropertiesEXT, ##VkPhysicalDeviceExternalBufferInfo, ##VkPhysicalDeviceExternalFenceInfo, ##VkPhysicalDeviceExternalImageFormatInfo, ##VkPhysicalDeviceExternalMemoryHostPropertiesEXT, ##VkPhysicalDeviceExternalSemaphoreInfo, ##VkPhysicalDeviceFeatures2, ##VkPhysicalDeviceGroupProperties, ##VkPhysicalDeviceIDProperties, ##VkPhysicalDeviceImageFormatInfo2, ##VkPhysicalDeviceMaintenance3Properties, ##VkPhysicalDeviceMemoryProperties2, ##VkPhysicalDeviceMultiviewFeatures, ##VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, ##VkPhysicalDeviceMultiviewProperties, ##VkPhysicalDevicePointClippingProperties, ##VkPhysicalDeviceProperties2, ##VkPhysicalDeviceProtectedMemoryFeatures, ##VkPhysicalDeviceProtectedMemoryProperties, ##VkPhysicalDevicePushDescriptorPropertiesKHR, ##VkPhysicalDeviceSampleLocationsPropertiesEXT, ##VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, ##VkPhysicalDeviceSamplerYcbcrConversionFeatures, ##VkPhysicalDeviceShaderCorePropertiesAMD, ##VkPhysicalDeviceShaderDrawParameterFeatures, ##VkPhysicalDeviceSparseImageFormatInfo2, ##VkPhysicalDeviceSubgroupProperties, ##VkPhysicalDeviceSurfaceInfo2KHR, ##VkPhysicalDeviceVariablePointerFeatures, ##VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, ##VkPipelineCacheCreateInfo, ##VkPipelineColorBlendAdvancedStateCreateInfoEXT, ##VkPipelineColorBlendStateCreateInfo, ##VkPipelineCoverageModulationStateCreateInfoNV, ##VkPipelineCoverageToColorStateCreateInfoNV, ##VkPipelineDepthStencilStateCreateInfo, ##VkPipelineDiscardRectangleStateCreateInfoEXT, ##VkPipelineDynamicStateCreateInfo, ##VkPipelineInputAssemblyStateCreateInfo, ##VkPipelineLayoutCreateInfo, ##VkPipelineMultisampleStateCreateInfo, ##VkPipelineRasterizationConservativeStateCreateInfoEXT, ##VkPipelineRasterizationStateCreateInfo, ##VkPipelineRasterizationStateRasterizationOrderAMD, ##VkPipelineSampleLocationsStateCreateInfoEXT, ##VkPipelineShaderStageCreateInfo, ##VkPipelineTessellationDomainOriginStateCreateInfo, ##VkPipelineTessellationStateCreateInfo, ##VkPipelineVertexInputDivisorStateCreateInfoEXT, ##VkPipelineVertexInputStateCreateInfo, ##VkPipelineViewportStateCreateInfo, ##VkPipelineViewportSwizzleStateCreateInfoNV, ##VkPipelineViewportWScalingStateCreateInfoNV, ##VkPresentInfoKHR, ##VkPresentRegionsKHR, ##VkPresentTimesInfoGOOGLE, ##VkProtectedSubmitInfo, ##VkQueryPoolCreateInfo, ##VkQueueFamilyProperties2, ##VkRenderPassBeginInfo, ##VkRenderPassCreateInfo, ##VkRenderPassCreateInfo2KHR, ##VkRenderPassInputAttachmentAspectCreateInfo, ##VkRenderPassMultiviewCreateInfo, ##VkRenderPassSampleLocationsBeginInfoEXT, ##VkSampleLocationsInfoEXT, ##VkSamplerCreateInfo, ##VkSamplerReductionModeCreateInfoEXT, ##VkSamplerYcbcrConversionCreateInfo, ##VkSamplerYcbcrConversionImageFormatProperties, ##VkSamplerYcbcrConversionInfo, ##VkSemaphoreCreateInfo, ##VkSemaphoreGetFdInfoKHR, ##VkSemaphoreGetWin32HandleInfoKHR, ##VkShaderModuleCreateInfo, ##VkShaderModuleValidationCacheCreateInfoEXT, ##VkSharedPresentSurfaceCapabilitiesKHR, ##VkSparseImageFormatProperties2, ##VkSparseImageMemoryRequirements2, ##VkSubmitInfo, ##VkSubpassBeginInfoKHR, ##VkSubpassDependency2KHR, ##VkSubpassDescription2KHR, ##VkSubpassEndInfoKHR, ##VkSurfaceCapabilities2EXT, ##VkSurfaceCapabilities2KHR, ##VkSurfaceFormat2KHR, ##VkSwapchainCounterCreateInfoEXT, ##VkSwapchainCreateInfoKHR, ##VkTextureLODGatherFormatPropertiesAMD, ##VkValidationCacheCreateInfoEXT, ##VkValidationFlagsEXT, ##VkWaylandSurfaceCreateInfoKHR, ##VkWin32KeyedMutexAcquireReleaseInfoKHR, ##VkWin32KeyedMutexAcquireReleaseInfoNV, ##VkWin32SurfaceCreateInfoKHR, ##VkWriteDescriptorSet, ##VkXlibSurfaceCreateInfoKHR + ##VkAcquireNextImageInfoKHR, ##VkApplicationInfo, ##VkAttachmentDescription2KHR, ##VkAttachmentReference2KHR, ##VkBaseInStructure, ##VkBaseOutStructure, ##VkBindBufferMemoryDeviceGroupInfo, ##VkBindBufferMemoryInfo, ##VkBindImageMemoryDeviceGroupInfo, ##VkBindImageMemoryInfo, ##VkBindImageMemorySwapchainInfoKHR, ##VkBindImagePlaneMemoryInfo, ##VkBindSparseInfo, ##VkBufferCreateInfo, ##VkBufferMemoryBarrier, ##VkBufferMemoryRequirementsInfo2, ##VkBufferViewCreateInfo, ##VkCheckpointDataNV, ##VkCmdProcessCommandsInfoNVX, ##VkCmdReserveSpaceForCommandsInfoNVX, ##VkCommandBufferAllocateInfo, ##VkCommandBufferBeginInfo, ##VkCommandBufferInheritanceConditionalRenderingInfoEXT, ##VkCommandBufferInheritanceInfo, ##VkCommandPoolCreateInfo, ##VkComputePipelineCreateInfo, ##VkConditionalRenderingBeginInfoEXT, ##VkCopyDescriptorSet, ##VkD3D12FenceSubmitInfoKHR, ##VkDebugMarkerMarkerInfoEXT, ##VkDebugMarkerObjectNameInfoEXT, ##VkDebugMarkerObjectTagInfoEXT, ##VkDebugReportCallbackCreateInfoEXT, ##VkDebugUtilsLabelEXT, ##VkDebugUtilsMessengerCallbackDataEXT, ##VkDebugUtilsMessengerCreateInfoEXT, ##VkDebugUtilsObjectNameInfoEXT, ##VkDebugUtilsObjectTagInfoEXT, ##VkDedicatedAllocationBufferCreateInfoNV, ##VkDedicatedAllocationImageCreateInfoNV, ##VkDedicatedAllocationMemoryAllocateInfoNV, ##VkDescriptorPoolCreateInfo, ##VkDescriptorSetAllocateInfo, ##VkDescriptorSetLayoutBindingFlagsCreateInfoEXT, ##VkDescriptorSetLayoutCreateInfo, ##VkDescriptorSetLayoutSupport, ##VkDescriptorSetVariableDescriptorCountAllocateInfoEXT, ##VkDescriptorSetVariableDescriptorCountLayoutSupportEXT, ##VkDescriptorUpdateTemplateCreateInfo, ##VkDeviceCreateInfo, ##VkDeviceEventInfoEXT, ##VkDeviceGeneratedCommandsFeaturesNVX, ##VkDeviceGeneratedCommandsLimitsNVX, ##VkDeviceGroupBindSparseInfo, ##VkDeviceGroupCommandBufferBeginInfo, ##VkDeviceGroupDeviceCreateInfo, ##VkDeviceGroupPresentCapabilitiesKHR, ##VkDeviceGroupPresentInfoKHR, ##VkDeviceGroupRenderPassBeginInfo, ##VkDeviceGroupSubmitInfo, ##VkDeviceGroupSwapchainCreateInfoKHR, ##VkDeviceQueueCreateInfo, ##VkDeviceQueueGlobalPriorityCreateInfoEXT, ##VkDeviceQueueInfo2, ##VkDisplayEventInfoEXT, ##VkDisplayModeCreateInfoKHR, ##VkDisplayModeProperties2KHR, ##VkDisplayPlaneCapabilities2KHR, ##VkDisplayPlaneInfo2KHR, ##VkDisplayPlaneProperties2KHR, ##VkDisplayPowerInfoEXT, ##VkDisplayPresentInfoKHR, ##VkDisplayProperties2KHR, ##VkDisplaySurfaceCreateInfoKHR, ##VkEventCreateInfo, ##VkExportFenceCreateInfo, ##VkExportFenceWin32HandleInfoKHR, ##VkExportMemoryAllocateInfo, ##VkExportMemoryAllocateInfoNV, ##VkExportMemoryWin32HandleInfoKHR, ##VkExportMemoryWin32HandleInfoNV, ##VkExportSemaphoreCreateInfo, ##VkExportSemaphoreWin32HandleInfoKHR, ##VkExternalBufferProperties, ##VkExternalFenceProperties, ##VkExternalImageFormatProperties, ##VkExternalMemoryBufferCreateInfo, ##VkExternalMemoryImageCreateInfo, ##VkExternalMemoryImageCreateInfoNV, ##VkExternalSemaphoreProperties, ##VkFenceCreateInfo, ##VkFenceGetFdInfoKHR, ##VkFenceGetWin32HandleInfoKHR, ##VkFormatProperties2, ##VkFramebufferCreateInfo, ##VkGraphicsPipelineCreateInfo, ##VkHdrMetadataEXT, ##VkImageCreateInfo, ##VkImageFormatListCreateInfoKHR, ##VkImageFormatProperties2, ##VkImageMemoryBarrier, ##VkImageMemoryRequirementsInfo2, ##VkImagePlaneMemoryRequirementsInfo, ##VkImageSparseMemoryRequirementsInfo2, ##VkImageSwapchainCreateInfoKHR, ##VkImageViewCreateInfo, ##VkImageViewUsageCreateInfo, ##VkImportFenceFdInfoKHR, ##VkImportFenceWin32HandleInfoKHR, ##VkImportMemoryFdInfoKHR, ##VkImportMemoryHostPointerInfoEXT, ##VkImportMemoryWin32HandleInfoKHR, ##VkImportMemoryWin32HandleInfoNV, ##VkImportSemaphoreFdInfoKHR, ##VkImportSemaphoreWin32HandleInfoKHR, ##VkIndirectCommandsLayoutCreateInfoNVX, ##VkInstanceCreateInfo, ##VkMacOSSurfaceCreateInfoMVK, ##VkMappedMemoryRange, ##VkMemoryAllocateFlagsInfo, ##VkMemoryAllocateInfo, ##VkMemoryBarrier, ##VkMemoryDedicatedAllocateInfo, ##VkMemoryDedicatedRequirements, ##VkMemoryFdPropertiesKHR, ##VkMemoryGetFdInfoKHR, ##VkMemoryGetWin32HandleInfoKHR, ##VkMemoryHostPointerPropertiesEXT, ##VkMemoryRequirements2, ##VkMemoryWin32HandlePropertiesKHR, ##VkMultisamplePropertiesEXT, ##VkObjectTableCreateInfoNVX, ##VkPhysicalDevice16BitStorageFeatures, ##VkPhysicalDevice8BitStorageFeaturesKHR, ##VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, ##VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, ##VkPhysicalDeviceConditionalRenderingFeaturesEXT, ##VkPhysicalDeviceConservativeRasterizationPropertiesEXT, ##VkPhysicalDeviceDescriptorIndexingFeaturesEXT, ##VkPhysicalDeviceDescriptorIndexingPropertiesEXT, ##VkPhysicalDeviceDiscardRectanglePropertiesEXT, ##VkPhysicalDeviceExternalBufferInfo, ##VkPhysicalDeviceExternalFenceInfo, ##VkPhysicalDeviceExternalImageFormatInfo, ##VkPhysicalDeviceExternalMemoryHostPropertiesEXT, ##VkPhysicalDeviceExternalSemaphoreInfo, ##VkPhysicalDeviceFeatures2, ##VkPhysicalDeviceGroupProperties, ##VkPhysicalDeviceIDProperties, ##VkPhysicalDeviceImageFormatInfo2, ##VkPhysicalDeviceMaintenance3Properties, ##VkPhysicalDeviceMemoryProperties2, ##VkPhysicalDeviceMultiviewFeatures, ##VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, ##VkPhysicalDeviceMultiviewProperties, ##VkPhysicalDevicePointClippingProperties, ##VkPhysicalDeviceProperties2, ##VkPhysicalDeviceProtectedMemoryFeatures, ##VkPhysicalDeviceProtectedMemoryProperties, ##VkPhysicalDevicePushDescriptorPropertiesKHR, ##VkPhysicalDeviceSampleLocationsPropertiesEXT, ##VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT, ##VkPhysicalDeviceSamplerYcbcrConversionFeatures, ##VkPhysicalDeviceShaderCorePropertiesAMD, ##VkPhysicalDeviceShaderDrawParameterFeatures, ##VkPhysicalDeviceSparseImageFormatInfo2, ##VkPhysicalDeviceSubgroupProperties, ##VkPhysicalDeviceSurfaceInfo2KHR, ##VkPhysicalDeviceVariablePointerFeatures, ##VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, ##VkPipelineCacheCreateInfo, ##VkPipelineColorBlendAdvancedStateCreateInfoEXT, ##VkPipelineColorBlendStateCreateInfo, ##VkPipelineCoverageModulationStateCreateInfoNV, ##VkPipelineCoverageToColorStateCreateInfoNV, ##VkPipelineDepthStencilStateCreateInfo, ##VkPipelineDiscardRectangleStateCreateInfoEXT, ##VkPipelineDynamicStateCreateInfo, ##VkPipelineInputAssemblyStateCreateInfo, ##VkPipelineLayoutCreateInfo, ##VkPipelineMultisampleStateCreateInfo, ##VkPipelineRasterizationConservativeStateCreateInfoEXT, ##VkPipelineRasterizationStateCreateInfo, ##VkPipelineRasterizationStateRasterizationOrderAMD, ##VkPipelineSampleLocationsStateCreateInfoEXT, ##VkPipelineShaderStageCreateInfo, ##VkPipelineTessellationDomainOriginStateCreateInfo, ##VkPipelineTessellationStateCreateInfo, ##VkPipelineVertexInputDivisorStateCreateInfoEXT, ##VkPipelineVertexInputStateCreateInfo, ##VkPipelineViewportStateCreateInfo, ##VkPipelineViewportSwizzleStateCreateInfoNV, ##VkPipelineViewportWScalingStateCreateInfoNV, ##VkPresentInfoKHR, ##VkPresentRegionsKHR, ##VkPresentTimesInfoGOOGLE, ##VkProtectedSubmitInfo, ##VkQueryPoolCreateInfo, ##VkQueueFamilyCheckpointPropertiesNV, ##VkQueueFamilyProperties2, ##VkRenderPassBeginInfo, ##VkRenderPassCreateInfo, ##VkRenderPassCreateInfo2KHR, ##VkRenderPassInputAttachmentAspectCreateInfo, ##VkRenderPassMultiviewCreateInfo, ##VkRenderPassSampleLocationsBeginInfoEXT, ##VkSampleLocationsInfoEXT, ##VkSamplerCreateInfo, ##VkSamplerReductionModeCreateInfoEXT, ##VkSamplerYcbcrConversionCreateInfo, ##VkSamplerYcbcrConversionImageFormatProperties, ##VkSamplerYcbcrConversionInfo, ##VkSemaphoreCreateInfo, ##VkSemaphoreGetFdInfoKHR, ##VkSemaphoreGetWin32HandleInfoKHR, ##VkShaderModuleCreateInfo, ##VkShaderModuleValidationCacheCreateInfoEXT, ##VkSharedPresentSurfaceCapabilitiesKHR, ##VkSparseImageFormatProperties2, ##VkSparseImageMemoryRequirements2, ##VkSubmitInfo, ##VkSubpassBeginInfoKHR, ##VkSubpassDependency2KHR, ##VkSubpassDescription2KHR, ##VkSubpassEndInfoKHR, ##VkSurfaceCapabilities2EXT, ##VkSurfaceCapabilities2KHR, ##VkSurfaceFormat2KHR, ##VkSwapchainCounterCreateInfoEXT, ##VkSwapchainCreateInfoKHR, ##VkTextureLODGatherFormatPropertiesAMD, ##VkValidationCacheCreateInfoEXT, ##VkValidationFlagsEXT, ##VkWaylandSurfaceCreateInfoKHR, ##VkWin32KeyedMutexAcquireReleaseInfoKHR, ##VkWin32KeyedMutexAcquireReleaseInfoNV, ##VkWin32SurfaceCreateInfoKHR, ##VkWriteDescriptorSet, ##VkXlibSurfaceCreateInfoKHR """, "STRUCTURE_TYPE_APPLICATION_INFO".."0", @@ -978,7 +978,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
            See Also
            - {@code VkPipelineStageFlags}, #CmdWriteBufferMarkerAMD(), #CmdWriteTimestamp() + ##VkCheckpointDataNV, {@code VkPipelineStageFlags}, #CmdWriteBufferMarkerAMD(), #CmdWriteTimestamp() """, "PIPELINE_STAGE_TOP_OF_PIPE_BIT".enum(0x00000001), @@ -3288,6 +3288,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
          • Any secondary command buffers recorded into any element of the {@code pCommandBuffers} member of any element of {@code pSubmits} must be in the pending or executable state.
          • If any secondary command buffers recorded into any element of the {@code pCommandBuffers} member of any element of {@code pSubmits} was not recorded with the #COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state.
          • Each element of the {@code pCommandBuffers} member of each element of {@code pSubmits} must have been allocated from a {@code VkCommandPool} that was created for the same queue family {@code queue} belongs to.
          • +
          • If any element of {@code pSubmits}→{@code pCommandBuffers} includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens before the acquire operation.
          Valid Usage (Implicit)
          @@ -6022,6 +6023,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
          • If ##VkAllocationCallbacks were provided when {@code pipelineLayout} was created, a compatible set of callbacks must be provided here
          • If no ##VkAllocationCallbacks were provided when {@code pipelineLayout} was created, {@code pAllocator} must be {@code NULL}
          • +
          • {@code pipelineLayout} must not have been passed to any vkCmd* command for any command buffers that are still in the recording state when #DestroyPipelineLayout() is called
          Valid Usage (Implicit)
          @@ -7979,9 +7981,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to #PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • -
        • Any {@code VkImageView} being sampled with #FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
        • -
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must be of a format which supports cubic filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_LINEAR as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_CUBIC_IMG as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must not have a {@code VkImageViewType} of #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, or #IMAGE_VIEW_TYPE_CUBE_ARRAY
        • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}.
        • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
        • @@ -8060,9 +8062,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to #PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • -
        • Any {@code VkImageView} being sampled with #FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_LINEAR as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
        • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
        • -
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must be of a format which supports cubic filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_CUBIC_IMG as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must not have a {@code VkImageViewType} of #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, or #IMAGE_VIEW_TYPE_CUBE_ARRAY
        • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}.
        • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
        • @@ -8144,9 +8146,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to #PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • -
        • Any {@code VkImageView} being sampled with #FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_LINEAR as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
        • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
        • -
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must be of a format which supports cubic filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_CUBIC_IMG as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must not have a {@code VkImageViewType} of #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, or #IMAGE_VIEW_TYPE_CUBE_ARRAY
        • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}.
        • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
        • @@ -8229,9 +8231,9 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to #PIPELINE_BIND_POINT_GRAPHICS uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • -
        • Any {@code VkImageView} being sampled with #FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_LINEAR as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
        • Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command.
        • -
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must be of a format which supports cubic filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_CUBIC_IMG as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must not have a {@code VkImageViewType} of #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, or #IMAGE_VIEW_TYPE_CUBE_ARRAY
        • If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to ##VkPhysicalDeviceMultiviewProperties{@code ::maxMultiviewInstanceIndex}.
        • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_GRAPHICS reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
        • @@ -8302,8 +8304,8 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to #PIPELINE_BIND_POINT_COMPUTE uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_COMPUTE accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_COMPUTE accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • -
        • Any {@code VkImageView} being sampled with #FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • -
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must be of a format which supports cubic filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_LINEAR as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_CUBIC_IMG as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must not have a {@code VkImageViewType} of #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, or #IMAGE_VIEW_TYPE_CUBE_ARRAY
        • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_COMPUTE reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
        • If {@code commandBuffer} is a protected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_COMPUTE writes to any image or buffer, that image or buffer must not be an unprotected image or unprotected buffer.
        • @@ -8369,8 +8371,8 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If any {@code VkSampler} object that is accessed from a shader by the {@code VkPipeline} bound to #PIPELINE_BIND_POINT_COMPUTE uses unnormalized coordinates, it must not be used with any of the SPIR-V {@code OpImageSample*} or {@code OpImageSparseSample*} instructions that includes a LOD bias or any offset values, in any shader stage
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_COMPUTE accesses a uniform buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • If the robust buffer access feature is not enabled, and any shader stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_COMPUTE accesses a storage buffer, it must not access values outside of the range of that buffer specified in the bound descriptor set
        • -
        • Any {@code VkImageView} being sampled with #FILTER_LINEAR as a result of this command must be of a format which supports linear filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • -
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must be of a format which supports cubic filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_LINEAR as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
        • +
        • If a {@code VkImageView} is sampled with with #FILTER_CUBIC_IMG as a result of this command, then the image view’s format features must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
        • Any {@code VkImageView} being sampled with #FILTER_CUBIC_IMG as a result of this command must not have a {@code VkImageViewType} of #IMAGE_VIEW_TYPE_3D, #IMAGE_VIEW_TYPE_CUBE, or #IMAGE_VIEW_TYPE_CUBE_ARRAY
        • If {@code commandBuffer} is an unprotected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_COMPUTE reads from or writes to any image or buffer, that image or buffer must not be a protected image or protected buffer.
        • If {@code commandBuffer} is a protected command buffer, and any pipeline stage in the {@code VkPipeline} object bound to #PIPELINE_BIND_POINT_COMPUTE writes to any image or buffer, that image or buffer must not be an unprotected image or unprotected buffer.
        • @@ -8536,12 +8538,12 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • The source region specified by each element of {@code pRegions} must be a region that is contained within {@code srcImage} if the {@code srcImage}’s {@code VkFormat} is not a multi-planar format, and must be a region that is contained within the plane being copied if the {@code srcImage}’s {@code VkFormat} is a multi-planar format
        • The destination region specified by each element of {@code pRegions} must be a region that is contained within {@code dstImage} if the {@code dstImage}’s {@code VkFormat} is not a multi-planar format, and must be a region that is contained within the plane being copied to if the {@code dstImage}’s {@code VkFormat} is a multi-planar format
        • The union of all source regions, and the union of all destination regions, specified by the elements of {@code pRegions}, must not overlap in memory
        • -
        • {@code srcImage} must use a format that supports #FORMAT_FEATURE_TRANSFER_SRC_BIT, which is indicated by ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • The format features of {@code srcImage} must contain #FORMAT_FEATURE_TRANSFER_SRC_BIT.
        • {@code srcImage} must have been created with #IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
        • If {@code srcImage} is non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a single {@code VkDeviceMemory} object
        • {@code srcImageLayout} must specify the layout of the image subresources of {@code srcImage} specified in {@code pRegions} at the time this command is executed on a {@code VkDevice}
        • {@code srcImageLayout} must be #IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, #IMAGE_LAYOUT_GENERAL, or #IMAGE_LAYOUT_SHARED_PRESENT_KHR
        • -
        • {@code dstImage} must use a format that supports #FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • The format features of {@code dstImage} must contain #FORMAT_FEATURE_TRANSFER_DST_BIT.
        • {@code dstImage} must have been created with #IMAGE_USAGE_TRANSFER_DST_BIT usage flag
        • If {@code dstImage} is non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a single {@code VkDeviceMemory} object
        • {@code dstImageLayout} must specify the layout of the image subresources of {@code dstImage} specified in {@code pRegions} at the time this command is executed on a {@code VkDevice}
        • @@ -8707,13 +8709,13 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • The source region specified by each element of {@code pRegions} must be a region that is contained within {@code srcImage}
        • The destination region specified by each element of {@code pRegions} must be a region that is contained within {@code dstImage}
        • The union of all destination regions, specified by the elements of {@code pRegions}, must not overlap in memory with any texel that may be sampled during the blit operation
        • -
        • {@code srcImage} must use a format that supports #FORMAT_FEATURE_BLIT_SRC_BIT, which is indicated by ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • The format features of {@code srcImage} must contain #FORMAT_FEATURE_BLIT_SRC_BIT.
        • {@code srcImage} must not use a format listed in the “Formats requiring sampler Y'CBCR conversion for #IMAGE_ASPECT_COLOR_BIT image views” table
        • {@code srcImage} must have been created with #IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
        • If {@code srcImage} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
        • {@code srcImageLayout} must specify the layout of the image subresources of {@code srcImage} specified in {@code pRegions} at the time this command is executed on a {@code VkDevice}
        • {@code srcImageLayout} must be #IMAGE_LAYOUT_SHARED_PRESENT_KHR, #IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or #IMAGE_LAYOUT_GENERAL
        • -
        • {@code dstImage} must use a format that supports #FORMAT_FEATURE_BLIT_DST_BIT, which is indicated by ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • The format features of {@code dstImage} must contain #FORMAT_FEATURE_BLIT_DST_BIT.
        • {@code dstImage} must not use a format listed in the “Formats requiring sampler Y'CBCR conversion for #IMAGE_ASPECT_COLOR_BIT image views” table
        • {@code dstImage} must have been created with #IMAGE_USAGE_TRANSFER_DST_BIT usage flag
        • If {@code dstImage} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
        • @@ -8726,8 +8728,8 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • If {@code srcImage} was created with a depth/stencil format, {@code filter} must be #FILTER_NEAREST
        • {@code srcImage} must have been created with a {@code samples} value of #SAMPLE_COUNT_1_BIT
        • {@code dstImage} must have been created with a {@code samples} value of #SAMPLE_COUNT_1_BIT
        • -
        • If {@code filter} is #FILTER_LINEAR, {@code srcImage} must be of a format which supports linear filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • -
        • If {@code filter} is #FILTER_CUBIC_IMG, {@code srcImage} must be of a format which supports cubic filtering, as specified by the #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG flag in ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • If {@code filter} is #FILTER_LINEAR, then the format features of {@code srcImage} must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT.
        • +
        • If {@code filter} is #FILTER_CUBIC_IMG, then the format features of {@code srcImage} must contain #FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG.
        • If {@code filter} is #FILTER_CUBIC_IMG, {@code srcImage} must have a {@code VkImageType} of #IMAGE_TYPE_2D
        • If {@code commandBuffer} is an unprotected command buffer, then {@code srcImage} must not be a protected image
        • If {@code commandBuffer} is an unprotected command buffer, then {@code dstImage} must not be a protected image
        • @@ -8808,7 +8810,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • The image region specified by each element of {@code pRegions} must be a region that is contained within {@code dstImage} if the {@code dstImage}’s {@code VkFormat} is not a multi-planar format, and must be a region that is contained within the plane being copied to if the {@code dstImage}’s {@code VkFormat} is a multi-planar format
        • The union of all source regions, and the union of all destination regions, specified by the elements of {@code pRegions}, must not overlap in memory
        • {@code srcBuffer} must have been created with #BUFFER_USAGE_TRANSFER_SRC_BIT usage flag
        • -
        • {@code dstImage} must use a format that supports #FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • The format features of {@code dstImage} must contain #FORMAT_FEATURE_TRANSFER_DST_BIT.
        • If {@code srcBuffer} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
        • {@code dstImage} must have been created with #IMAGE_USAGE_TRANSFER_DST_BIT usage flag
        • If {@code dstImage} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
        • @@ -8888,7 +8890,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
        • The image region specified by each element of {@code pRegions} must be a region that is contained within {@code srcImage} if the {@code srcImage}’s {@code VkFormat} is not a multi-planar format, and must be a region that is contained within the plane being copied if the {@code srcImage}’s {@code VkFormat} is a multi-planar format
        • {@code dstBuffer} must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of {@code pRegions}
        • The union of all source regions, and the union of all destination regions, specified by the elements of {@code pRegions}, must not overlap in memory
        • -
        • {@code srcImage} must use a format that supports #FORMAT_FEATURE_TRANSFER_SRC_BIT, which is indicated by ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
        • +
        • The format features of {@code srcImage} must contain #FORMAT_FEATURE_TRANSFER_SRC_BIT.
        • {@code srcImage} must have been created with #IMAGE_USAGE_TRANSFER_SRC_BIT usage flag
        • If {@code srcImage} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
        • {@code srcImage} must have a sample count equal to #SAMPLE_COUNT_1_BIT
        • @@ -9102,7 +9104,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
          Valid Usage
            -
          • {@code image} must use a format that supports #FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
          • +
          • The format features of {@code image} must contain #FORMAT_FEATURE_TRANSFER_DST_BIT.
          • {@code image} must have been created with #IMAGE_USAGE_TRANSFER_DST_BIT usage flag
          • {@code image} must not use a format listed in the “Formats requiring sampler Y'CBCR conversion for #IMAGE_ASPECT_COLOR_BIT image views” table
          • If {@code image} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
          • @@ -9174,7 +9176,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
            Valid Usage
              -
            • {@code image} must use a format that supports #FORMAT_FEATURE_TRANSFER_DST_BIT, which is indicated by ##VkFormatProperties{@code ::linearTilingFeatures} or ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties() for linearly or optimally tiled images, respectively
            • +
            • The format features of {@code image} must contain #FORMAT_FEATURE_TRANSFER_DST_BIT.
            • {@code image} must have been created with #IMAGE_USAGE_TRANSFER_DST_BIT usage flag
            • If {@code image} is non-sparse then it must be bound completely and contiguously to a single {@code VkDeviceMemory} object
            • {@code imageLayout} must specify the layout of the image subresource ranges of {@code image} specified in {@code pRanges} at the time this command is executed on a {@code VkDevice}
            • @@ -9327,8 +9329,7 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
            • {@code srcImageLayout} must be #IMAGE_LAYOUT_SHARED_PRESENT_KHR, #IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or #IMAGE_LAYOUT_GENERAL
            • {@code dstImageLayout} must specify the layout of the image subresources of {@code dstImage} specified in {@code pRegions} at the time this command is executed on a {@code VkDevice}
            • {@code dstImageLayout} must be #IMAGE_LAYOUT_SHARED_PRESENT_KHR, #IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or #IMAGE_LAYOUT_GENERAL
            • -
            • If {@code dstImage} was created with {@code tiling} equal to #IMAGE_TILING_LINEAR, {@code dstImage} must have been created with a {@code format} that supports being a color attachment, as specified by the #FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in ##VkFormatProperties{@code ::linearTilingFeatures} returned by #GetPhysicalDeviceFormatProperties()
            • -
            • If {@code dstImage} was created with {@code tiling} equal to #IMAGE_TILING_OPTIMAL, {@code dstImage} must have been created with a {@code format} that supports being a color attachment, as specified by the #FORMAT_FEATURE_COLOR_ATTACHMENT_BIT flag in ##VkFormatProperties{@code ::optimalTilingFeatures} returned by #GetPhysicalDeviceFormatProperties()
            • +
            • The format features of {@code dstImage} must contain #FORMAT_FEATURE_COLOR_ATTACHMENT_BIT.
            • {@code srcImage} and {@code dstImage} must have been created with the same image format
            • If {@code commandBuffer} is an unprotected command buffer, then {@code srcImage} must not be a protected image
            • If {@code commandBuffer} is an unprotected command buffer, then {@code dstImage} must not be a protected image
            • @@ -9643,12 +9644,8 @@ val VK10 = "VK10".nativeClass(Module.VULKAN, "VK10", prefix = "VK", binding = VK
            • If the geometry shaders feature is not enabled, {@code dstStageMask} must not contain #PIPELINE_STAGE_GEOMETRY_SHADER_BIT
            • If the tessellation shaders feature is not enabled, {@code srcStageMask} must not contain #PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or #PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
            • If the tessellation shaders feature is not enabled, {@code dstStageMask} must not contain #PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or #PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT
            • -
            • If #CmdPipelineBarrier() is called within a render pass instance, the render pass must have been created with a ##VkSubpassDependency instance in {@code pDependencies} that expresses a dependency from the current subpass to itself.
            • -
            • If #CmdPipelineBarrier() is called within a render pass instance, {@code srcStageMask} must contain a subset of the bit values in the {@code srcStageMask} member of that instance of ##VkSubpassDependency
            • -
            • If #CmdPipelineBarrier() is called within a render pass instance, {@code dstStageMask} must contain a subset of the bit values in the {@code dstStageMask} member of that instance of ##VkSubpassDependency
            • -
            • If #CmdPipelineBarrier() is called within a render pass instance, the {@code srcAccessMask} of any element of {@code pMemoryBarriers} or {@code pImageMemoryBarriers} must contain a subset of the bit values the {@code srcAccessMask} member of that instance of ##VkSubpassDependency
            • -
            • If #CmdPipelineBarrier() is called within a render pass instance, the {@code dstAccessMask} of any element of {@code pMemoryBarriers} or {@code pImageMemoryBarriers} must contain a subset of the bit values the {@code dstAccessMask} member of that instance of ##VkSubpassDependency
            • -
            • If #CmdPipelineBarrier() is called within a render pass instance, {@code dependencyFlags} must be equal to the {@code dependencyFlags} member of that instance of ##VkSubpassDependency
            • +
            • If #CmdPipelineBarrier() is called within a render pass instance, the render pass must have been created with at least one ##VkSubpassDependency instance in ##VkRenderPassCreateInfo{@code ::pDependencies} that expresses a dependency from the current subpass to itself, and for which {@code srcStageMask} contains a subset of the bit values in ##VkSubpassDependency{@code ::srcStageMask}, {@code dstStageMask} contains a subset of the bit values in ##VkSubpassDependency{@code ::dstStageMask}, and {@code dependencyFlags} is equal to ##VkSubpassDependency{@code ::dependencyFlags}.
            • +
            • If #CmdPipelineBarrier() is called within a render pass instance, for each element of {@code pMemoryBarriers} and {@code pImageMemoryBarriers}, the render pass must have been defined with a ##VkSubpassDependency self-dependency for the current subpass with valid {@code srcStageMask}, {@code dstStageMask}, and {@code dependencyFlags} values such that stext:Vk*Barrier{@code ::srcAccessMask} contains a subset of the bit values in ##VkSubpassDependency{@code ::srcAccessMask} and stext:Vk*Barrier{@code ::dstAccessMask} contains a subset of the bit values in ##VkSubpassDependency{@code ::dstAccessMask}.
            • If #CmdPipelineBarrier() is called within a render pass instance, {@code bufferMemoryBarrierCount} must be 0
            • If #CmdPipelineBarrier() is called within a render pass instance, the {@code image} member of any element of {@code pImageMemoryBarriers} must be equal to one of the elements of {@code pAttachments} that the current {@code framebuffer} was created with, that is also referred to by one of the elements of the {@code pColorAttachments}, {@code pResolveAttachments} or {@code pDepthStencilAttachment} members of the ##VkSubpassDescription instance that the current subpass was created with
            • If #CmdPipelineBarrier() is called within a render pass instance, the {@code oldLayout} and {@code newLayout} members of any element of {@code pImageMemoryBarriers} must be equal to the {@code layout} member of an element of the {@code pColorAttachments}, {@code pResolveAttachments} or {@code pDepthStencilAttachment} members of the ##VkSubpassDescription instance that the current subpass was created with, that refers to the same {@code image}