Interface VulkanCommandBufferType

All Superinterfaces:
AutoCloseable, VulkanHandleDispatchableType, VulkanHandleType
All Known Implementing Classes:
VulkanLWJGLCommandBuffer

public interface VulkanCommandBufferType extends VulkanHandleDispatchableType
See Also:
  • "VkCommandBuffer"
  • Method Details

    • beginCommandBuffer

      void beginCommandBuffer(VulkanCommandBufferBeginInfo info) throws VulkanException
      Begin a command buffer.
      Parameters:
      info - The begin info
      Throws:
      VulkanException - On errors
    • beginCommandBuffer

      default void beginCommandBuffer(Set<VulkanCommandBufferUsageFlag> flags) throws VulkanException
      Begin a command buffer.
      Parameters:
      flags - The usage flags
      Throws:
      VulkanException - On errors
    • beginCommandBuffer

      default void beginCommandBuffer(VulkanCommandBufferUsageFlag... flags) throws VulkanException
      Begin a command buffer.
      Parameters:
      flags - The usage flags
      Throws:
      VulkanException - On errors
    • beginQuery

      void beginQuery(VulkanQueryPoolType pool, int query, Set<VulkanQueryControlFlag> flags) throws VulkanException
      Begin a query.
      Parameters:
      pool - The query pool
      query - The query index
      flags - Control flags for the query
      Throws:
      VulkanException - On errors
    • endQuery

      void endQuery(VulkanQueryPoolType pool, int query) throws VulkanException
      End a query.
      Parameters:
      pool - The query pool
      query - The query index
      Throws:
      VulkanException - On errors
    • beginRenderPass

      void beginRenderPass(VulkanRenderPassBeginInfo info, VulkanSubpassContents contents) throws VulkanException
      Specify how commands in the first subpass of a render pass are provided.
      Parameters:
      info - The begin info
      contents - Specifies how the commands in the first subpass will be provided.
      Throws:
      VulkanException - On errors
    • bindPipeline

      void bindPipeline(VulkanPipelineBindPoint bind_point, VulkanPipelineType pipeline) throws VulkanException
      Bind a rendering pipeline.
      Parameters:
      bind_point - The bind point
      pipeline - The pipeline
      Throws:
      VulkanException - On errors
    • bindVertexBuffers

      void bindVertexBuffers(int first_binding, int binding_count, List<VulkanBufferType> buffers, List<Long> offsets) throws VulkanException
      Bind vertex buffers to a command buffer.
      Parameters:
      first_binding - The index of the first vertex input binding whose state is updated by the command
      binding_count - The number of vertex input bindings whose state is updated by the command
      buffers - An array of buffer handles
      offsets - An array of buffer offsets
      Throws:
      VulkanException - On errors
    • bindIndexBuffer

      void bindIndexBuffer(VulkanBufferType buffer, long offset, VulkanIndexType index_type) throws VulkanException
      Bind index buffer to a command buffer.
      Parameters:
      buffer - The index buffer
      offset - The starting offset in bytes within buffer used in index buffer address calculations
      index_type - The type of indices
      Throws:
      VulkanException - On errors
    • bindDescriptorSets

      void bindDescriptorSets(VulkanPipelineBindPoint pipeline_bind_point, VulkanPipelineLayoutType layout, int first_set, List<VulkanDescriptorSetType> descriptor_sets, List<Integer> dynamic_offsets) throws VulkanException
      Bind descriptor sets to a command buffer.
      Parameters:
      pipeline_bind_point - The pipeline bind point
      layout - The pipeline layout
      first_set - The set number of the first descriptor set to be bound
      descriptor_sets - The descriptor sets
      dynamic_offsets - An array of dynamic offsets
      Throws:
      VulkanException - On errors
    • blitImage

      void blitImage(VulkanImageType source_image, VulkanImageLayout source_image_layout, VulkanImageType target_image, VulkanImageLayout target_image_layout, List<VulkanImageBlit> regions, VulkanFilter filter) throws VulkanException
      Copy regions of an image, potentially performing format conversion.
      Parameters:
      source_image - The source image
      source_image_layout - The layout of the source image
      target_image - The target image
      target_image_layout - The target image layout
      regions - The regions that will be used to blit
      filter - The filter to apply if the blits require scaling
      Throws:
      VulkanException - On errors
    • blitImage

      default void blitImage(VulkanImageType source_image, VulkanImageLayout source_image_layout, VulkanImageType target_image, VulkanImageLayout target_image_layout, VulkanImageBlit region, VulkanFilter filter) throws VulkanException
      Copy regions of an image, potentially performing format conversion.
      Parameters:
      source_image - The source image
      source_image_layout - The layout of the source image
      target_image - The target image
      target_image_layout - The target image layout
      region - The regions that will be used to blit
      filter - The filter to apply if the blits require scaling
      Throws:
      VulkanException - On errors
    • copyBuffer

      void copyBuffer(VulkanBufferType source, VulkanBufferType target, List<VulkanBufferCopy> regions) throws VulkanException
      Copy data between buffer regions.
      Parameters:
      source - The source buffer
      target - The target buffer
      regions - The list of regions to be copied
      Throws:
      VulkanException - On errors
    • copyImageToBuffer

      void copyImageToBuffer(VulkanImageType source_image, VulkanImageLayout source_layout, VulkanBufferType target_buffer, List<VulkanBufferImageCopy> regions) throws VulkanException
      Copy data from an image to a buffer.
      Parameters:
      source_image - The source image
      source_layout - The source layout
      target_buffer - The target buffer
      regions - The list of regions to be copied
      Throws:
      VulkanException - On errors
    • copyBufferToImage

      void copyBufferToImage(VulkanBufferType source_buffer, VulkanImageType target_image, VulkanImageLayout target_image_layout, List<VulkanBufferImageCopy> regions) throws VulkanException
      Copy data from a buffer to an image.
      Parameters:
      source_buffer - The source buffer
      target_image - The target image
      target_image_layout - The target image layout
      regions - The list of regions to be copied
      Throws:
      VulkanException - On errors
    • copyImage

      void copyImage(VulkanImageType source_image, VulkanImageLayout source_image_layout, VulkanImageType target_image, VulkanImageLayout target_image_layout, List<VulkanImageCopy> regions) throws VulkanException
      Copy regions of an image, potentially performing format conversion.
      Parameters:
      source_image - The source image
      source_image_layout - The layout of the source image
      target_image - The target image
      target_image_layout - The target image layout
      regions - The regions that will be used to copy
      Throws:
      VulkanException - On errors
    • copyImage

      default void copyImage(VulkanImageType source_image, VulkanImageLayout source_image_layout, VulkanImageType target_image, VulkanImageLayout target_image_layout, VulkanImageCopy region) throws VulkanException
      Copy regions of an image, potentially performing format conversion.
      Parameters:
      source_image - The source image
      source_image_layout - The layout of the source image
      target_image - The target image
      target_image_layout - The target image layout
      region - The regions that will be used to copy
      Throws:
      VulkanException - On errors
    • clearAttachments

      void clearAttachments(List<VulkanClearAttachment> attachments, List<VulkanClearRectangle> rectangles) throws VulkanException
      Clear regions within bound framebuffer attachments.
      Parameters:
      attachments - The attachments to clear and the clear values to use
      rectangles - An array of structures defining regions within each selected attachment to clear
      Throws:
      VulkanException - On errors
    • clearAttachments

      default void clearAttachments(VulkanClearAttachment attachment, VulkanClearRectangle rectangle) throws VulkanException
      Clear regions within bound framebuffer attachments.
      Parameters:
      attachment - The attachment to clear and the clear values to use
      rectangle - A structure defining a region within each selected attachment to clear
      Throws:
      VulkanException - On errors
    • clearAttachments

      default void clearAttachments(VulkanClearAttachment attachment, List<VulkanClearRectangle> rectangles) throws VulkanException
      Clear regions within bound framebuffer attachments.
      Parameters:
      attachment - The attachment to clear and the clear values to use
      rectangles - An array of structures defining regions within each selected attachment to clear
      Throws:
      VulkanException - On errors
    • clearAttachments

      default void clearAttachments(List<VulkanClearAttachment> attachment, VulkanClearRectangle rectangle) throws VulkanException
      Clear regions within bound framebuffer attachments.
      Parameters:
      attachment - The attachment to clear and the clear values to use
      rectangle - A structure defining a region within each selected attachment to clear
      Throws:
      VulkanException - On errors
    • clearColorImage

      Clear regions of a color image.
      Parameters:
      image - The image
      image_layout - The image layout
      color - The color value
      ranges - The image subresource ranges
      Throws:
      VulkanException - On errors
    • clearDepthStencilImage

      void clearDepthStencilImage(VulkanImageType image, VulkanImageLayout image_layout, VulkanClearValueDepthStencil depth_stencil, List<VulkanImageSubresourceRange> ranges) throws VulkanException
      Clear regions of a depth stencil image.
      Parameters:
      image - The image
      image_layout - The image layout
      depth_stencil - The depth stencil value
      ranges - The image subresource ranges
      Throws:
      VulkanException - On errors
    • dispatch

      void dispatch(int group_count_x, int group_count_y, int group_count_z) throws VulkanException
      Dispatch compute work items.
      Parameters:
      group_count_x - The number of local workgroups to dispatch in the X dimension.
      group_count_y - The number of local workgroups to dispatch in the Y dimension.
      group_count_z - The number of local workgroups to dispatch in the Z dimension.
      Throws:
      VulkanException - On errors
    • draw

      void draw(int vertex_count, int instance_count, int first_vertex, int first_instance) throws VulkanException
      Draw primitives.
      Parameters:
      vertex_count - The number of vertices to draw.
      instance_count - The number of instances to draw.
      first_vertex - The index of the first vertex to draw.
      first_instance - The instance ID of the first instance to draw.
      Throws:
      VulkanException - On errors
    • drawIndexed

      void drawIndexed(int vertex_count, int instance_count, int first_vertex, int vertex_offset, int first_instance) throws VulkanException
      Draw primitives using an index buffer.
      Parameters:
      vertex_count - The number of vertices to draw.
      instance_count - The number of instances to draw.
      first_vertex - The index of the first vertex to draw.
      vertex_offset - The value added to the vertex index before indexing into the vertex buffer.
      first_instance - The instance ID of the first instance to draw.
      Throws:
      VulkanException - On errors
    • drawIndirect

      void drawIndirect(VulkanBufferType buffer, long offset, int draw_count, int stride) throws VulkanException
      Draw primitives indirectly.
      Parameters:
      buffer - The buffer containing draw parameters.
      offset - The byte offset into buffer where parameters begin.
      draw_count - The number of draws to execute, and can be zero.
      stride - The byte stride between successive sets of draw parameters.
      Throws:
      VulkanException - On errors
    • drawIndexedIndirect

      void drawIndexedIndirect(VulkanBufferType buffer, long offset, int draw_count, int stride) throws VulkanException
      Draw primitives indirectly.
      Parameters:
      buffer - The buffer containing draw parameters.
      offset - The byte offset into buffer where parameters begin.
      draw_count - The number of draws to execute, and can be zero.
      stride - The byte stride between successive sets of draw parameters.
      Throws:
      VulkanException - On errors
    • executeCommands

      void executeCommands(List<VulkanCommandBufferType> commandBuffers) throws VulkanException
      Execute a secondary command buffer from a primary command buffer.
      Parameters:
      commandBuffers - The buffers to be executed
      Throws:
      VulkanException - On errors
    • fillBuffer

      void fillBuffer(VulkanBufferType buffer, long offset, long size, int data) throws VulkanException
      Fill a region of a buffer with a fixed value.
      Parameters:
      buffer - The buffer to be filled.
      offset - The byte offset into the buffer at which to start filling, and must be a multiple of 4.
      size - The number of bytes to fill, and must be either a multiple of 4, or VK_WHOLE_SIZE to fill the range from offset to the end of the buffer. If VK_WHOLE_SIZE is used and the remaining size of the buffer is not a multiple of 4, then the nearest smaller multiple is used.
      data - The 4-byte word written repeatedly to the buffer to fill size bytes of data. The data word is written to memory according to the host endianness.
      Throws:
      VulkanException - On errors
    • endRenderPass

      void endRenderPass() throws VulkanException
      End a render pass.
      Throws:
      VulkanException - On errors
    • pipelineBarrier

      void pipelineBarrier(VulkanDependencyInfo info) throws VulkanException
      Insert a memory dependency.
      Parameters:
      info - The dependency info
      Throws:
      VulkanException - On errors
    • nextSubpass

      void nextSubpass(VulkanSubpassContents contents) throws VulkanException
      Transition to the next subpass of a render pass.
      Parameters:
      contents - Specifies how the commands in the next subpass will be provided, in the same fashion as the corresponding parameter of vkCmdBeginRenderPass.
      Throws:
      VulkanException - On errors
    • setLineWidth

      void setLineWidth(float width) throws VulkanException
      Set the dynamic line width state.
      Parameters:
      width - The width of rasterized line segments.
      Throws:
      VulkanException - On errors
    • setDepthBias

      void setDepthBias(float depth_bias_constant_factor, float depth_bias_clamp, float depth_bias_slope_factor) throws VulkanException
      Set the depth bias dynamic state.
      Parameters:
      depth_bias_constant_factor - A scalar factor controlling the constant depth value added to each fragment.
      depth_bias_clamp - The maximum (or minimum) depth bias of a fragment.
      depth_bias_slope_factor - A scalar factor applied to a fragment’s slope in depth bias calculations.
      Throws:
      VulkanException - On errors
    • setDepthBounds

      void setDepthBounds(float min_depth_bounds, float max_depth_bounds) throws VulkanException
      Set the depth bounds test values for a command buffer.
      Parameters:
      min_depth_bounds - The lower bound of the range of depth values used in the depth bounds test.
      max_depth_bounds - The upper bound of the range of depth values used in the depth bounds test.
      Throws:
      VulkanException - On errors
    • setBlendConstants

      void setBlendConstants(VulkanBlendConstants constants) throws VulkanException
      Set the values of blend constants.
      Parameters:
      constants - The R, G, B, and A components of the blend constant color used in blending, depending on the blend factor.
      Throws:
      VulkanException - On errors
    • setStencilReference

      void setStencilReference(Set<VulkanStencilFaceFlag> face_mask, int reference) throws VulkanException
      Set the stencil reference.
      Parameters:
      face_mask - A set of flags specifying the set of stencil state for which to update the reference value.
      reference - The new value to use as the stencil reference value.
      Throws:
      VulkanException - On errors
    • setStencilCompareMask

      void setStencilCompareMask(Set<VulkanStencilFaceFlag> face_mask, int mask) throws VulkanException
      Set the stencil compare mask.
      Parameters:
      face_mask - A set of flags specifying the set of stencil state for which to update the reference value.
      mask - The new value to use as the stencil compare mask value.
      Throws:
      VulkanException - On errors
    • setStencilWriteMask

      void setStencilWriteMask(Set<VulkanStencilFaceFlag> face_mask, int mask) throws VulkanException
      Set the stencil write mask.
      Parameters:
      face_mask - A set of flags specifying the set of stencil state for which to update the reference value.
      mask - The new value to use as the stencil write mask value.
      Throws:
      VulkanException - On errors
    • setScissor

      void setScissor(int first_scissor, List<VulkanRectangle2D> rectangles) throws VulkanException
      Set the dynamic scissor rectangles on a command buffer.
      Parameters:
      first_scissor - The index of the first scissor whose state is updated by the command.
      rectangles - An array of structures defining scissor rectangles.
      Throws:
      VulkanException - On errors
    • setViewport

      void setViewport(int first_viewport, List<VulkanViewport> viewports) throws VulkanException
      Set the viewport on a command buffer.
      Parameters:
      first_viewport - The index of the first viewport whose state is updated by the command.
      viewports - An array of structures defining viewport rectangles.
      Throws:
      VulkanException - On errors
    • setEvent

      void setEvent(VulkanEventType event, VulkanDependencyInfo info) throws VulkanException
      Set an event object to signaled state.
      Parameters:
      event - The event
      info - The dependency info.
      Throws:
      VulkanException - On errors
    • resetEvent

      void resetEvent(VulkanEventType event, Set<VulkanPipelineStageFlag> mask) throws VulkanException
      Reset an event object to non-signaled state.
      Parameters:
      event - The event
      mask - The source stage mask used to determine when the event is signaled.
      Throws:
      VulkanException - On errors
    • resetQueryPool

      void resetQueryPool(VulkanQueryPoolType pool, int first_query, int query_count) throws VulkanException
      Reset a query pool.
      Parameters:
      pool - The query pool
      first_query - The initial query index to reset
      query_count - The number of queries to reset
      Throws:
      VulkanException - On errors
    • endCommandBuffer

      void endCommandBuffer() throws VulkanException
      End a command buffer.
      Throws:
      VulkanException - On errors
    • writeTimestamp

      void writeTimestamp(VulkanPipelineStageFlag stage, VulkanQueryPoolType pool, int query_index) throws VulkanException
      Write a device timestamp into a query object.
      Parameters:
      stage - The stage of the pipeline
      pool - The query pool
      query_index - The query index
      Throws:
      VulkanException - On errors
    • waitEvents

      void waitEvents(List<VulkanEventType> events, List<VulkanDependencyInfo> dependencyInfos) throws VulkanException
      Wait for one or more events and insert a set of memory barriers.
      Parameters:
      events - The events upon which to wait
      dependencyInfos - The dependency info
      Throws:
      VulkanException - On errors
    • reset

      Reset a command buffer to the initial state.
      Parameters:
      flags - The flags
      Throws:
      VulkanException - On errors
    • beginRendering

      void beginRendering(VulkanRenderingInfo renderingInfo) throws VulkanException
      Begin dynamic rendering.
      Parameters:
      renderingInfo - The rendering info
      Throws:
      VulkanException - On errors
    • endRendering

      void endRendering() throws VulkanException
      End dynamic rendering.
      Throws:
      VulkanException - On errors