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

org.lwjgl.vulkan.KHRDrawIndirectCount 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.4
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 is based off the {@link AMDDrawIndirectCount VK_AMD_draw_indirect_count} extension. This extension allows an application to source the number of draws for indirect draw calls from a buffer.
 * 
 * 

Applications might want to do culling on the GPU via a compute shader prior to drawing. This enables the application to generate an arbitrary number of drawing commands and execute them without host intervention.

* *
Promotion to Vulkan 1.2
* *

All functionality in this extension is included in core Vulkan 1.2, with the KHR suffix omitted. However, if Vulkan 1.2 is supported and this extension is not, the entry points {@link VK12#vkCmdDrawIndirectCount CmdDrawIndirectCount} and {@link VK12#vkCmdDrawIndexedIndirectCount CmdDrawIndexedIndirectCount} are optional. The original type, enum and command names are still available as aliases of the core functionality.

* *
VK_KHR_draw_indirect_count
* *
*
Name String
*
{@code VK_KHR_draw_indirect_count}
*
Extension Type
*
Device extension
*
Registered Extension Number
*
170
*
Revision
*
1
*
Extension and Version Dependencies
*
    *
  • Requires Vulkan 1.0
  • *
*
Deprecation state
*
*
Contact
*
*
* *
Other Extension Metadata
* *
*
Last Modified Date
*
2017-08-25
*
Interactions and External Dependencies
*
    *
  • Promoted to Vulkan 1.2 Core
  • *
*
IP Status
*
No known IP claims.
*
Contributors
*
    *
  • Matthaeus G. Chajdas, AMD
  • *
  • Derrick Owens, AMD
  • *
  • Graham Sellers, AMD
  • *
  • Daniel Rakos, AMD
  • *
  • Dominik Witczak, AMD
  • *
  • Piers Daniell, NVIDIA
  • *
*
*/ public class KHRDrawIndirectCount { /** The extension specification version. */ public static final int VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION = 1; /** The extension name. */ public static final String VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME = "VK_KHR_draw_indirect_count"; protected KHRDrawIndirectCount() { throw new UnsupportedOperationException(); } // --- [ vkCmdDrawIndirectCountKHR ] --- /** * See {@link VK12#vkCmdDrawIndirectCount CmdDrawIndirectCount}. * * @param commandBuffer the command buffer into which the command is recorded. * @param buffer the buffer containing draw parameters. * @param offset the byte offset into {@code buffer} where parameters begin. * @param countBuffer the buffer containing the draw count. * @param countBufferOffset the byte offset into {@code countBuffer} where the draw count begins. * @param maxDrawCount specifies the maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in {@code countBuffer} and {@code maxDrawCount}. * @param stride the byte stride between successive sets of draw parameters. */ public static void vkCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, @NativeType("VkBuffer") long buffer, @NativeType("VkDeviceSize") long offset, @NativeType("VkBuffer") long countBuffer, @NativeType("VkDeviceSize") long countBufferOffset, @NativeType("uint32_t") int maxDrawCount, @NativeType("uint32_t") int stride) { long __functionAddress = commandBuffer.getCapabilities().vkCmdDrawIndirectCountKHR; if (CHECKS) { check(__functionAddress); } callPJJJJV(commandBuffer.address(), buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, __functionAddress); } // --- [ vkCmdDrawIndexedIndirectCountKHR ] --- /** * See {@link VK12#vkCmdDrawIndexedIndirectCount CmdDrawIndexedIndirectCount}. * * @param commandBuffer the command buffer into which the command is recorded. * @param buffer the buffer containing draw parameters. * @param offset the byte offset into {@code buffer} where parameters begin. * @param countBuffer the buffer containing the draw count. * @param countBufferOffset the byte offset into {@code countBuffer} where the draw count begins. * @param maxDrawCount specifies the maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in {@code countBuffer} and {@code maxDrawCount}. * @param stride the byte stride between successive sets of draw parameters. */ public static void vkCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, @NativeType("VkBuffer") long buffer, @NativeType("VkDeviceSize") long offset, @NativeType("VkBuffer") long countBuffer, @NativeType("VkDeviceSize") long countBufferOffset, @NativeType("uint32_t") int maxDrawCount, @NativeType("uint32_t") int stride) { long __functionAddress = commandBuffer.getCapabilities().vkCmdDrawIndexedIndirectCountKHR; if (CHECKS) { check(__functionAddress); } callPJJJJV(commandBuffer.address(), buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, __functionAddress); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy