org.lwjgl.vulkan.KHRVideoEncodeQueue Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lwjgl-vulkan Show documentation
Show all versions of lwjgl-vulkan Show documentation
A new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.
/*
* Copyright LWJGL. All rights reserved.
* License terms: https://www.lwjgl.org/license
* MACHINE GENERATED FILE, DO NOT EDIT
*/
package org.lwjgl.vulkan;
import org.lwjgl.system.*;
import static org.lwjgl.system.Checks.*;
import static org.lwjgl.system.JNI.*;
/**
*
* - {@link #vkCmdEncodeVideoKHR CmdEncodeVideoKHR}
*
*
* VK_KHR_video_encode_queue
*
*
* - Name String
* - {@code VK_KHR_video_encode_queue}
* - Extension Type
* - Device extension
* - Registered Extension Number
* - 300
* - Revision
* - 3
* - Extension and Version Dependencies
*
* - Requires Vulkan 1.0
* - Requires {@link KHRVideoQueue VK_KHR_video_queue}
* - Requires {@link KHRSynchronization2 VK_KHR_synchronization2}
* - This is a provisional extension and must be used with caution. See the description of provisional header files for enablement and stability details.
*
* - Contact
*
*
*
* Other Extension Metadata
*
*
* - Last Modified Date
* - 2021-09-30
* - IP Status
* - No known IP claims.
* - Contributors
*
* - Ahmed Abdelkhalek, AMD
* - Damien Kessler, NVIDIA
* - Daniel Rakos, AMD
* - George Hao, AMD
* - Jake Beju, AMD
* - Peter Fang, AMD
* - Piers Daniell, NVIDIA
* - Srinath Kumarapuram, NVIDIA
* - Thomas J. Meier, NVIDIA
* - Tony Zlatinski, NVIDIA
* - Yang Liu, AMD
*
*
*/
public class KHRVideoEncodeQueue {
/** The extension specification version. */
public static final int VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION = 3;
/** The extension name. */
public static final String VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_encode_queue";
/** Extends {@code VkPipelineStageFlagBits2KHR}. */
public static final long VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x8000000L;
/**
* Extends {@code VkAccessFlagBits2KHR}.
*
* Enum values:
*
*
* - {@link #VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR}
* - {@link #VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR}
*
*/
public static final long
VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000L,
VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000L;
/**
* Extends {@code VkStructureType}.
*
* Enum values:
*
*
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR}
* - {@link #VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR}
*
*/
public static final int
VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001;
/** Extends {@code VkQueueFlagBits}. */
public static final int VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x40;
/**
* Extends {@code VkBufferUsageFlagBits}.
*
* Enum values:
*
*
* - {@link #VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR}
* - {@link #VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR}
*
*/
public static final int
VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x8000,
VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x10000;
/**
* Extends {@code VkImageUsageFlagBits}.
*
* Enum values:
*
*
* - {@link #VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR}
* - {@link #VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR}
* - {@link #VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR}
*
*/
public static final int
VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x2000,
VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x4000,
VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x8000;
/**
* Extends {@code VkFormatFeatureFlagBits}.
*
* Enum values:
*
*
* - {@link #VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR}
* - {@link #VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR}
*
*/
public static final int
VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x8000000,
VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000;
/**
* Extends {@code VkImageLayout}.
*
* Enum values:
*
*
* - {@link #VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR}
* - {@link #VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR}
* - {@link #VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR}
*
*/
public static final int
VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002;
/** Extends {@code VkQueryType}. */
public static final int VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000;
/**
* Extends {@code VkFormatFeatureFlagBits2KHR}.
*
* Enum values:
*
*
* - {@link #VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR}
* - {@link #VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR}
*
*/
public static final long
VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x8000000L,
VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000L;
/**
* VkVideoEncodeFlagBitsKHR - Video Encode Command Flags
*
* Description
*
*
* - {@link #VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR VIDEO_ENCODE_RESERVED_0_BIT_KHR} The current version of the specification has reserved this value for future use.
*
*
* Enum values:
*
*
* - {@link #VK_VIDEO_ENCODE_DEFAULT_KHR VIDEO_ENCODE_DEFAULT_KHR}
*
*/
public static final int
VK_VIDEO_ENCODE_DEFAULT_KHR = 0,
VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR = 0x1;
/**
* VkVideoEncodeRateControlFlagBitsKHR - Video Encode Rate Control Flags
*
* Description
*
*
* - {@link #VK_VIDEO_ENCODE_RESERVED_0_BIT_KHR VIDEO_ENCODE_RESERVED_0_BIT_KHR} The current version of the specification has reserved this value for future use.
*
*
* Enum values:
*
*
* - {@link #VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR}
* - {@link #VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR}
*
*/
public static final int
VK_VIDEO_ENCODE_RATE_CONTROL_DEFAULT_KHR = 0,
VK_VIDEO_ENCODE_RATE_CONTROL_RESET_BIT_KHR = 0x1;
/**
* VkVideoEncodeRateControlModeFlagBitsKHR - Video encode rate control modes
*
* Description
*
*
* - {@link #VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR} for disabling rate control.
* - {@link #VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR} for constant bitrate rate control mode.
* - {@link #VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR} for variable bitrate rate control mode.
*
*
* See Also
*
* {@link VkVideoEncodeRateControlInfoKHR}
*/
public static final int
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0,
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 1,
VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 2;
protected KHRVideoEncodeQueue() {
throw new UnsupportedOperationException();
}
// --- [ vkCmdEncodeVideoKHR ] ---
/** Unsafe version of: {@link #vkCmdEncodeVideoKHR CmdEncodeVideoKHR} */
public static void nvkCmdEncodeVideoKHR(VkCommandBuffer commandBuffer, long pEncodeInfo) {
long __functionAddress = commandBuffer.getCapabilities().vkCmdEncodeVideoKHR;
if (CHECKS) {
check(__functionAddress);
VkVideoEncodeInfoKHR.validate(pEncodeInfo);
}
callPPV(commandBuffer.address(), pEncodeInfo, __functionAddress);
}
/**
* Encode operation for bitstream generation.
*
* C Specification
*
* To launch an encode operation that results in bitstream generation, call:
*
*
* void vkCmdEncodeVideoKHR(
* VkCommandBuffer commandBuffer,
* const VkVideoEncodeInfoKHR* pEncodeInfo);
*
* Valid Usage (Implicit)
*
*
* - {@code commandBuffer} must be a valid {@code VkCommandBuffer} handle
* - {@code pEncodeInfo} must be a valid pointer to a valid {@link VkVideoEncodeInfoKHR} structure
* - {@code commandBuffer} must be in the recording state
* - The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support encode operations
* - This command must only be called outside of a render pass instance
* - {@code commandBuffer} must be a primary {@code VkCommandBuffer}
*
*
* Host Synchronization
*
*
* - Host access to the {@code VkCommandPool} that {@code commandBuffer} was allocated from must be externally synchronized
*
*
* Command Properties
*
*
* Command Buffer Levels Render Pass Scope Supported Queue Types
* Primary Outside Encode
*
*
* See Also
*
* {@link VkVideoEncodeInfoKHR}
*
* @param commandBuffer the command buffer to be filled with this function for encoding to generate a bitstream.
* @param pEncodeInfo a pointer to a {@link VkVideoEncodeInfoKHR} structure.
*/
public static void vkCmdEncodeVideoKHR(VkCommandBuffer commandBuffer, @NativeType("VkVideoEncodeInfoKHR const *") VkVideoEncodeInfoKHR pEncodeInfo) {
nvkCmdEncodeVideoKHR(commandBuffer, pEncodeInfo.address());
}
}