org.lwjgl.vulkan.KHRVideoDecodeQueue 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 #vkCmdDecodeVideoKHR CmdDecodeVideoKHR}
*
*
* VK_KHR_video_decode_queue
*
*
* - Name String
* - {@code VK_KHR_video_decode_queue}
* - Extension Type
* - Device extension
* - Registered Extension Number
* - 25
* - Revision
* - 2
* - 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
*
* - Jake Beju, AMD
* - Olivier Lapicque, NVIDIA
* - Peter Fang, AMD
* - Piers Daniell, NVIDIA
* - Srinath Kumarapuram, NVIDIA
* - Tony Zlatinski, NVIDIA
*
*
*/
public class KHRVideoDecodeQueue {
/** The extension specification version. */
public static final int VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION = 2;
/** The extension name. */
public static final String VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME = "VK_KHR_video_decode_queue";
/** Extends {@code VkStructureType}. */
public static final int VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000;
/** Extends {@code VkQueueFlagBits}. */
public static final int VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x20;
/** Extends {@code VkPipelineStageFlagBits2KHR}. */
public static final long VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x4000000L;
/**
* Extends {@code VkAccessFlagBits2KHR}.
*
* Enum values:
*
*
* - {@link #VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR ACCESS_2_VIDEO_DECODE_READ_BIT_KHR}
* - {@link #VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR}
*
*/
public static final long
VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000L,
VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000L;
/**
* Extends {@code VkBufferUsageFlagBits}.
*
* Enum values:
*
*
* - {@link #VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR}
* - {@link #VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR}
*
*/
public static final int
VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x2000,
VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x4000;
/**
* Extends {@code VkImageUsageFlagBits}.
*
* Enum values:
*
*
* - {@link #VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR}
* - {@link #VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR}
* - {@link #VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR}
*
*/
public static final int
VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x400,
VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x800,
VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x1000;
/**
* Extends {@code VkFormatFeatureFlagBits}.
*
* Enum values:
*
*
* - {@link #VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR}
* - {@link #VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR}
*
*/
public static final int
VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x2000000,
VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x4000000;
/**
* Extends {@code VkImageLayout}.
*
* Enum values:
*
*
* - {@link #VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR}
* - {@link #VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR}
* - {@link #VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR}
*
*/
public static final int
VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002;
/**
* Extends {@code VkFormatFeatureFlagBits2KHR}.
*
* Enum values:
*
*
* - {@link #VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR}
* - {@link #VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR}
*
*/
public static final long
VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x2000000L,
VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x4000000L;
/**
* VkVideoDecodeFlagBitsKHR - Video Decode Command Flags
*
* Description
*
*
* - {@link #VK_VIDEO_DECODE_RESERVED_0_BIT_KHR VIDEO_DECODE_RESERVED_0_BIT_KHR} The current version of the specification has reserved this value for future use.
*
*
* Enum values:
*
*
* - {@link #VK_VIDEO_DECODE_DEFAULT_KHR VIDEO_DECODE_DEFAULT_KHR}
*
*/
public static final int
VK_VIDEO_DECODE_DEFAULT_KHR = 0,
VK_VIDEO_DECODE_RESERVED_0_BIT_KHR = 0x1;
protected KHRVideoDecodeQueue() {
throw new UnsupportedOperationException();
}
// --- [ vkCmdDecodeVideoKHR ] ---
/** Unsafe version of: {@link #vkCmdDecodeVideoKHR CmdDecodeVideoKHR} */
public static void nvkCmdDecodeVideoKHR(VkCommandBuffer commandBuffer, long pFrameInfo) {
long __functionAddress = commandBuffer.getCapabilities().vkCmdDecodeVideoKHR;
if (CHECKS) {
check(__functionAddress);
VkVideoDecodeInfoKHR.validate(pFrameInfo);
}
callPPV(commandBuffer.address(), pFrameInfo, __functionAddress);
}
/**
* Decode a frame.
*
* C Specification
*
* To decode a frame, call:
*
*
* void vkCmdDecodeVideoKHR(
* VkCommandBuffer commandBuffer,
* const VkVideoDecodeInfoKHR* pFrameInfo);
*
* Valid Usage (Implicit)
*
*
* - {@code commandBuffer} must be a valid {@code VkCommandBuffer} handle
* - {@code pFrameInfo} must be a valid pointer to a valid {@link VkVideoDecodeInfoKHR} structure
* - {@code commandBuffer} must be in the recording state
* - The {@code VkCommandPool} that {@code commandBuffer} was allocated from must support decode 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 Decode
*
*
* See Also
*
* {@link VkVideoDecodeInfoKHR}
*
* @param commandBuffer the command buffer to be filled with this function for decode frame command.
* @param pFrameInfo a pointer to a {@link VkVideoDecodeInfoKHR} structure.
*/
public static void vkCmdDecodeVideoKHR(VkCommandBuffer commandBuffer, @NativeType("VkVideoDecodeInfoKHR const *") VkVideoDecodeInfoKHR pFrameInfo) {
nvkCmdDecodeVideoKHR(commandBuffer, pFrameInfo.address());
}
}