All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lwjgl.vulkan.EXTExtendedDynamicState2 Maven / Gradle / Ivy

Go to download

A new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.

There is a newer version: 3.3.6
Show newest version
/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 * MACHINE GENERATED FILE, DO NOT EDIT
 */
package org.lwjgl.vulkan;

import org.lwjgl.system.*;

import static org.lwjgl.system.Checks.*;
import static org.lwjgl.system.JNI.*;

/**
 * This extension adds some more dynamic state to support applications that need to reduce the number of pipeline state objects they compile and bind.
 * 
 * 
VK_EXT_extended_dynamic_state2
* *
*
Name String
*
{@code VK_EXT_extended_dynamic_state2}
*
Extension Type
*
Device extension
*
Registered Extension Number
*
378
*
Revision
*
1
*
Extension and Version Dependencies
*
    *
  • Requires Vulkan 1.0
  • *
  • Requires {@link KHRGetPhysicalDeviceProperties2 VK_KHR_get_physical_device_properties2}
  • *
*
Contact
*
*
* *
Other Extension Metadata
* *
*
Last Modified Date
*
2021-04-12
*
IP Status
*
No known IP claims.
*
Contributors
*
    *
  • Vikram Kushwaha, NVIDIA
  • *
  • Piers Daniell, NVIDIA
  • *
  • Jeff Bolz, NVIDIA
  • *
*
*/ public class EXTExtendedDynamicState2 { /** The extension specification version. */ public static final int VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION = 1; /** The extension name. */ public static final String VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME = "VK_EXT_extended_dynamic_state2"; /** Extends {@code VkStructureType}. */ public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000; /** * Extends {@code VkDynamicState}. * *
Enum values:
* *
    *
  • {@link #VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT}
  • *
  • {@link #VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT}
  • *
  • {@link #VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT}
  • *
  • {@link #VK_DYNAMIC_STATE_LOGIC_OP_EXT DYNAMIC_STATE_LOGIC_OP_EXT}
  • *
  • {@link #VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT}
  • *
*/ public static final int VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000, VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = 1000377001, VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = 1000377002, VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003, VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = 1000377004; protected EXTExtendedDynamicState2() { throw new UnsupportedOperationException(); } // --- [ vkCmdSetPatchControlPointsEXT ] --- /** * Specify the number of control points per patch dynamically for a command buffer. * *
C Specification
* *

To dynamically set the number of control points per patch, call:

* *

     * void vkCmdSetPatchControlPointsEXT(
     *     VkCommandBuffer                             commandBuffer,
     *     uint32_t                                    patchControlPoints);
* *
Description
* *

This command sets the number of control points per patch for subsequent drawing commands when the graphics pipeline is created with {@link #VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT} set in {@link VkPipelineDynamicStateCreateInfo}{@code ::pDynamicStates}. Otherwise, this state is specified by the {@link VkPipelineTessellationStateCreateInfo}{@code ::patchControlPoints} value used to create the currently active pipeline.

* *
Valid Usage
* *
    *
  • The extendedDynamicState2PatchControlPoints feature must be enabled
  • *
  • {@code patchControlPoints} must be greater than zero and less than or equal to {@link VkPhysicalDeviceLimits}{@code ::maxTessellationPatchSize}
  • *
* *
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 operations
  • *
* *
Host Synchronization
* *
    *
  • Host access to {@code commandBuffer} must be externally synchronized
  • *
  • Host access to the {@code VkCommandPool} that {@code commandBuffer} was allocated from must be externally synchronized
  • *
* *
Command Properties
* * * * *
Command Buffer LevelsRender Pass ScopeSupported Queue Types
Primary SecondaryBothGraphics
* * @param commandBuffer the command buffer into which the command will be recorded. * @param patchControlPoints specifies the number of control points per patch. */ public static void vkCmdSetPatchControlPointsEXT(VkCommandBuffer commandBuffer, @NativeType("uint32_t") int patchControlPoints) { long __functionAddress = commandBuffer.getCapabilities().vkCmdSetPatchControlPointsEXT; if (CHECKS) { check(__functionAddress); } callPV(commandBuffer.address(), patchControlPoints, __functionAddress); } // --- [ vkCmdSetRasterizerDiscardEnableEXT ] --- /** * Control whether primitives are discarded before the rasterization stage dynamically for a command buffer. * *
C Specification
* *

To dynamically enable whether primitives are discarded before the rasterization stage, call:

* *

     * void vkCmdSetRasterizerDiscardEnableEXT(
     *     VkCommandBuffer                             commandBuffer,
     *     VkBool32                                    rasterizerDiscardEnable);
* *
Description
* *

This command sets the discard enable for subsequent drawing commands when the graphics pipeline is created with {@link #VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT} set in {@link VkPipelineDynamicStateCreateInfo}{@code ::pDynamicStates}. Otherwise, this state is specified by the {@link VkPipelineRasterizationStateCreateInfo}{@code ::rasterizerDiscardEnable} value used to create the currently active pipeline.

* *
Valid Usage
* * * *
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 operations
  • *
* *
Host Synchronization
* *
    *
  • Host access to {@code commandBuffer} must be externally synchronized
  • *
  • Host access to the {@code VkCommandPool} that {@code commandBuffer} was allocated from must be externally synchronized
  • *
* *
Command Properties
* * * * *
Command Buffer LevelsRender Pass ScopeSupported Queue Types
Primary SecondaryBothGraphics
* * @param commandBuffer the command buffer into which the command will be recorded. * @param rasterizerDiscardEnable controls whether primitives are discarded immediately before the rasterization stage. */ public static void vkCmdSetRasterizerDiscardEnableEXT(VkCommandBuffer commandBuffer, @NativeType("VkBool32") boolean rasterizerDiscardEnable) { long __functionAddress = commandBuffer.getCapabilities().vkCmdSetRasterizerDiscardEnableEXT; if (CHECKS) { check(__functionAddress); } callPV(commandBuffer.address(), rasterizerDiscardEnable ? 1 : 0, __functionAddress); } // --- [ vkCmdSetDepthBiasEnableEXT ] --- /** * Control whether to bias fragment depth values dynamically for a command buffer. * *
C Specification
* *

To dynamically enable whether to bias fragment depth values, call:

* *

     * void vkCmdSetDepthBiasEnableEXT(
     *     VkCommandBuffer                             commandBuffer,
     *     VkBool32                                    depthBiasEnable);
* *
Description
* *

This command sets the depth bias enable for subsequent drawing commands when the graphics pipeline is created with {@link #VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT} set in {@link VkPipelineDynamicStateCreateInfo}{@code ::pDynamicStates}. Otherwise, this state is specified by the {@link VkPipelineRasterizationStateCreateInfo}{@code ::depthBiasEnable} value used to create the currently active pipeline.

* *
Valid Usage
* * * *
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 operations
  • *
* *
Host Synchronization
* *
    *
  • Host access to {@code commandBuffer} must be externally synchronized
  • *
  • Host access to the {@code VkCommandPool} that {@code commandBuffer} was allocated from must be externally synchronized
  • *
* *
Command Properties
* * * * *
Command Buffer LevelsRender Pass ScopeSupported Queue Types
Primary SecondaryBothGraphics
* * @param commandBuffer the command buffer into which the command will be recorded. * @param depthBiasEnable controls whether to bias fragment depth values. */ public static void vkCmdSetDepthBiasEnableEXT(VkCommandBuffer commandBuffer, @NativeType("VkBool32") boolean depthBiasEnable) { long __functionAddress = commandBuffer.getCapabilities().vkCmdSetDepthBiasEnableEXT; if (CHECKS) { check(__functionAddress); } callPV(commandBuffer.address(), depthBiasEnable ? 1 : 0, __functionAddress); } // --- [ vkCmdSetLogicOpEXT ] --- /** * Select which logical operation to apply for blend state dynamically for a command buffer. * *
C Specification
* *

To dynamically set the logical operation to apply for blend state, call:

* *

     * void vkCmdSetLogicOpEXT(
     *     VkCommandBuffer                             commandBuffer,
     *     VkLogicOp                                   logicOp);
* *
Description
* *

This command sets the logical operation for blend state for subsequent drawing commands when the graphics pipeline is created with {@link #VK_DYNAMIC_STATE_LOGIC_OP_EXT DYNAMIC_STATE_LOGIC_OP_EXT} set in {@link VkPipelineDynamicStateCreateInfo}{@code ::pDynamicStates}. Otherwise, this state is specified by the {@link VkPipelineColorBlendStateCreateInfo}{@code ::logicOp} value used to create the currently active pipeline.

* *
Valid Usage
* * * *
Valid Usage (Implicit)
* *
    *
  • {@code commandBuffer} must be a valid {@code VkCommandBuffer} handle
  • *
  • {@code logicOp} must be a valid {@code VkLogicOp} value
  • *
  • {@code commandBuffer} must be in the recording state
  • *
  • The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support graphics operations
  • *
* *
Host Synchronization
* *
    *
  • Host access to {@code commandBuffer} must be externally synchronized
  • *
  • Host access to the {@code VkCommandPool} that {@code commandBuffer} was allocated from must be externally synchronized
  • *
* *
Command Properties
* * * * *
Command Buffer LevelsRender Pass ScopeSupported Queue Types
Primary SecondaryBothGraphics
* * @param commandBuffer the command buffer into which the command will be recorded. * @param logicOp specifies the logical operation to apply for blend state. */ public static void vkCmdSetLogicOpEXT(VkCommandBuffer commandBuffer, @NativeType("VkLogicOp") int logicOp) { long __functionAddress = commandBuffer.getCapabilities().vkCmdSetLogicOpEXT; if (CHECKS) { check(__functionAddress); } callPV(commandBuffer.address(), logicOp, __functionAddress); } // --- [ vkCmdSetPrimitiveRestartEnableEXT ] --- /** * Set primitive assembly restart state dynamically for a command buffer. * *
C Specification
* *

To dynamically control whether a special vertex index value is treated as restarting the assembly of primitives, call:

* *

     * void vkCmdSetPrimitiveRestartEnableEXT(
     *     VkCommandBuffer                             commandBuffer,
     *     VkBool32                                    primitiveRestartEnable);
* *
Description
* *

This command sets the primitive restart enable for subsequent drawing commands when the graphics pipeline is created with {@link #VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT} set in {@link VkPipelineDynamicStateCreateInfo}{@code ::pDynamicStates}. Otherwise, this state is specified by the {@link VkPipelineInputAssemblyStateCreateInfo}{@code ::primitiveRestartEnable} value used to create the currently active pipeline.

* *
Valid Usage
* * * *
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 operations
  • *
* *
Host Synchronization
* *
    *
  • Host access to {@code commandBuffer} must be externally synchronized
  • *
  • Host access to the {@code VkCommandPool} that {@code commandBuffer} was allocated from must be externally synchronized
  • *
* *
Command Properties
* * * * *
Command Buffer LevelsRender Pass ScopeSupported Queue Types
Primary SecondaryBothGraphics
* * @param commandBuffer the command buffer into which the command will be recorded. * @param primitiveRestartEnable controls whether a special vertex index value is treated as restarting the assembly of primitives. It behaves in the same way as {@link VkPipelineInputAssemblyStateCreateInfo}{@code ::primitiveRestartEnable} */ public static void vkCmdSetPrimitiveRestartEnableEXT(VkCommandBuffer commandBuffer, @NativeType("VkBool32") boolean primitiveRestartEnable) { long __functionAddress = commandBuffer.getCapabilities().vkCmdSetPrimitiveRestartEnableEXT; if (CHECKS) { check(__functionAddress); } callPV(commandBuffer.address(), primitiveRestartEnable ? 1 : 0, __functionAddress); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy