Class VkBufferMemoryBarrier2
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkBufferMemoryBarrier2
-
- All Implemented Interfaces:
java.lang.AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
- Direct Known Subclasses:
VkBufferMemoryBarrier2KHR
public class VkBufferMemoryBarrier2 extends org.lwjgl.system.Struct implements org.lwjgl.system.NativeResourceStructure specifying a buffer memory barrier.Description
This structure defines a memory dependency limited to a range of a buffer, and can define a queue family transfer operation for that range.
The first synchronization scope and access scope described by this structure include only operations and memory accesses specified by
srcStageMaskandsrcAccessMask.The second synchronization scope and access scope described by this structure include only operations and memory accesses specified by
dstStageMaskanddstAccessMask.Both access scopes are limited to only memory accesses to
bufferin the range defined byoffsetandsize.If
bufferwas created withSHARING_MODE_EXCLUSIVE, andsrcQueueFamilyIndexis not equal todstQueueFamilyIndex, this memory barrier defines a queue family transfer operation. When executed on a queue in the family identified bysrcQueueFamilyIndex, this barrier defines a queue family release operation for the specified buffer range, and the second synchronization and access scopes do not synchronize operations on that queue. When executed on a queue in the family identified bydstQueueFamilyIndex, this barrier defines a queue family acquire operation for the specified buffer range, and the first synchronization and access scopes do not synchronize operations on that queue.A queue family transfer operation is also defined if the values are not equal, and either is one of the special queue family values reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer. A queue family release operation is defined when
dstQueueFamilyIndexis one of those values, and a queue family acquire operation is defined whensrcQueueFamilyIndexis one of those values.Valid Usage
- If the geometry shaders feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_2_GEOMETRY_SHADER_BIT - If the tessellation shaders feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BITorPIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT - If the conditional rendering feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT - If the fragment density map feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT - If the transform feedback feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT - If the mesh shaders feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_2_MESH_SHADER_BIT_NV - If the task shaders feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_2_TASK_SHADER_BIT_NV - If the shading rate image feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV - If the subpass shading feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI - If the invocation mask image feature is not enabled,
srcStageMaskmust not containPIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI - If
srcAccessMaskincludesACCESS_2_INDIRECT_COMMAND_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_DRAW_INDIRECT_BIT,PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_INDEX_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_INDEX_INPUT_BIT,PIPELINE_STAGE_2_VERTEX_INPUT_BIT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,PIPELINE_STAGE_2_VERTEX_INPUT_BIT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_INPUT_ATTACHMENT_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_UNIFORM_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
srcAccessMaskincludesACCESS_2_SHADER_SAMPLED_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
srcAccessMaskincludesACCESS_2_SHADER_STORAGE_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
srcAccessMaskincludesACCESS_2_SHADER_STORAGE_WRITE_BIT,srcStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
srcAccessMaskincludesACCESS_2_SHADER_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT,PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
srcAccessMaskincludesACCESS_2_SHADER_WRITE_BIT,srcStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
srcAccessMaskincludesACCESS_2_COLOR_ATTACHMENT_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITPIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,srcStageMaskmust includePIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITPIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,srcStageMaskmust includePIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_TRANSFER_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_COPY_BIT,PIPELINE_STAGE_2_BLIT_BIT,PIPELINE_STAGE_2_RESOLVE_BIT,PIPELINE_STAGE_2_ALL_TRANSFER_BIT,PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_TRANSFER_WRITE_BIT,srcStageMaskmust includePIPELINE_STAGE_2_COPY_BIT,PIPELINE_STAGE_2_BLIT_BIT,PIPELINE_STAGE_2_RESOLVE_BIT,PIPELINE_STAGE_2_CLEAR_BIT,PIPELINE_STAGE_2_ALL_TRANSFER_BIT,PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_HOST_READ_BIT,srcStageMaskmust includePIPELINE_STAGE_2_HOST_BIT - If
srcAccessMaskincludesACCESS_2_HOST_WRITE_BIT,srcStageMaskmust includePIPELINE_STAGE_2_HOST_BIT - If
srcAccessMaskincludesACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,srcStageMaskmust includePIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,srcStageMaskmust includePIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,srcStageMaskmust includePIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,srcStageMaskmust includePIPELINE_STAGE_2_DRAW_INDIRECT_BIT,PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,srcStageMaskmust includePIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV,srcStageMaskmust includePIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,srcStageMaskmust includePIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI - If
srcAccessMaskincludesACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,srcStageMaskmust includePIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NVorPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,srcStageMaskmust includePIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NVorPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,srcStageMaskmust includePIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITPIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
srcAccessMaskincludesACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,srcStageMaskmust includePIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
srcAccessMaskincludesACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,srcStageMaskmust includePIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHRorPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
rayQueryis not enabled andsrcAccessMaskincludesACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,srcStageMaskmust not include any of theVK_PIPELINE_STAGE_*_SHADER_BITstages exceptPIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR - If
srcAccessMaskincludesACCESS_2_VIDEO_DECODE_READ_BIT_KHR,srcStageMaskmust includePIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR - If
srcAccessMaskincludesACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,srcStageMaskmust includePIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR - If
srcAccessMaskincludesACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,srcStageMaskmust includePIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR - If
srcAccessMaskincludesACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,srcStageMaskmust includePIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
- If the geometry shaders feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_2_GEOMETRY_SHADER_BIT - If the tessellation shaders feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BITorPIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT - If the conditional rendering feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT - If the fragment density map feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT - If the transform feedback feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT - If the mesh shaders feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_2_MESH_SHADER_BIT_NV - If the task shaders feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_2_TASK_SHADER_BIT_NV - If the shading rate image feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV - If the subpass shading feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI - If the invocation mask image feature is not enabled,
dstStageMaskmust not containPIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI - If
dstAccessMaskincludesACCESS_2_INDIRECT_COMMAND_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_DRAW_INDIRECT_BIT,PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_INDEX_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_INDEX_INPUT_BIT,PIPELINE_STAGE_2_VERTEX_INPUT_BIT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_VERTEX_ATTRIBUTE_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT,PIPELINE_STAGE_2_VERTEX_INPUT_BIT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_INPUT_ATTACHMENT_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_FRAGMENT_SHADER_BIT,PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_UNIFORM_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
dstAccessMaskincludesACCESS_2_SHADER_SAMPLED_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
dstAccessMaskincludesACCESS_2_SHADER_STORAGE_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
dstAccessMaskincludesACCESS_2_SHADER_STORAGE_WRITE_BIT,dstStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
dstAccessMaskincludesACCESS_2_SHADER_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT,PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
dstAccessMaskincludesACCESS_2_SHADER_WRITE_BIT,dstStageMaskmust includePIPELINE_STAGE_2_ALL_GRAPHICS_BIT,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
dstAccessMaskincludesACCESS_2_COLOR_ATTACHMENT_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITPIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_COLOR_ATTACHMENT_WRITE_BIT,dstStageMaskmust includePIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITPIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT,dstStageMaskmust includePIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT,PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_TRANSFER_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_COPY_BIT,PIPELINE_STAGE_2_BLIT_BIT,PIPELINE_STAGE_2_RESOLVE_BIT,PIPELINE_STAGE_2_ALL_TRANSFER_BIT,PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_TRANSFER_WRITE_BIT,dstStageMaskmust includePIPELINE_STAGE_2_COPY_BIT,PIPELINE_STAGE_2_BLIT_BIT,PIPELINE_STAGE_2_RESOLVE_BIT,PIPELINE_STAGE_2_CLEAR_BIT,PIPELINE_STAGE_2_ALL_TRANSFER_BIT,PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_HOST_READ_BIT,dstStageMaskmust includePIPELINE_STAGE_2_HOST_BIT - If
dstAccessMaskincludesACCESS_2_HOST_WRITE_BIT,dstStageMaskmust includePIPELINE_STAGE_2_HOST_BIT - If
dstAccessMaskincludesACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT,dstStageMaskmust includePIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT,dstStageMaskmust includePIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT,dstStageMaskmust includePIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT,dstStageMaskmust includePIPELINE_STAGE_2_DRAW_INDIRECT_BIT,PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT,dstStageMaskmust includePIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV,dstStageMaskmust includePIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV,PIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI,dstStageMaskmust includePIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI - If
dstAccessMaskincludesACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV,dstStageMaskmust includePIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NVorPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV,dstStageMaskmust includePIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NVorPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT,dstStageMaskmust includePIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BITPIPELINE_STAGE_2_ALL_GRAPHICS_BIT, orPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
dstAccessMaskincludesACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,dstStageMaskmust includePIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,PIPELINE_STAGE_2_ALL_COMMANDS_BIT, or one of theVK_PIPELINE_STAGE_*_SHADER_BITstages - If
dstAccessMaskincludesACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,dstStageMaskmust includePIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHRorPIPELINE_STAGE_2_ALL_COMMANDS_BIT - If
rayQueryis not enabled anddstAccessMaskincludesACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR,dstStageMaskmust not include any of theVK_PIPELINE_STAGE_*_SHADER_BITstages exceptPIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR - If
dstAccessMaskincludesACCESS_2_VIDEO_DECODE_READ_BIT_KHR,dstStageMaskmust includePIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR - If
dstAccessMaskincludesACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR,dstStageMaskmust includePIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR - If
dstAccessMaskincludesACCESS_2_VIDEO_ENCODE_READ_BIT_KHR,dstStageMaskmust includePIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR - If
dstAccessMaskincludesACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR,dstStageMaskmust includePIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR
offsetmust be less than the size ofbuffer- If
sizeis not equal toWHOLE_SIZE,sizemust be greater than 0 - If
sizeis not equal toWHOLE_SIZE,sizemust be less than or equal to than the size ofbufferminusoffset - If
bufferis non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - If
srcQueueFamilyIndexis not equal todstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer - If
bufferwas created with a sharing mode ofSHARING_MODE_CONCURRENT,srcQueueFamilyIndexanddstQueueFamilyIndexare not equal, and one ofsrcQueueFamilyIndexanddstQueueFamilyIndexis one of the special queue family values reserved for external memory transfers, the other must beQUEUE_FAMILY_IGNORED - If
bufferwas created with a sharing mode ofSHARING_MODE_EXCLUSIVE, andsrcQueueFamilyIndexanddstQueueFamilyIndexare not equal,srcQueueFamilyIndexanddstQueueFamilyIndexmust both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer - If either
srcStageMaskordstStageMaskincludesPIPELINE_STAGE_2_HOST_BIT,srcQueueFamilyIndexanddstQueueFamilyIndexmust be equal
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2pNextmust beNULLsrcStageMaskmust be a valid combination ofVkPipelineStageFlagBits2valuessrcAccessMaskmust be a valid combination ofVkAccessFlagBits2valuesdstStageMaskmust be a valid combination ofVkPipelineStageFlagBits2valuesdstAccessMaskmust be a valid combination ofVkAccessFlagBits2valuesbuffermust be a validVkBufferhandle
See Also
Layout
struct VkBufferMemoryBarrier2 { VkStructureTypesType(); void const *pNext(); VkPipelineStageFlags2srcStageMask(); VkAccessFlags2srcAccessMask(); VkPipelineStageFlags2dstStageMask(); VkAccessFlags2dstAccessMask(); uint32_tsrcQueueFamilyIndex(); uint32_tdstQueueFamilyIndex(); VkBufferbuffer(); VkDeviceSizeoffset(); VkDeviceSizesize(); }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVkBufferMemoryBarrier2.BufferAn array ofVkBufferMemoryBarrier2structs.
-
Field Summary
Fields Modifier and Type Field Description static intALIGNOFThe struct alignment in bytes.static intBUFFER
DSTACCESSMASK
DSTQUEUEFAMILYINDEX
DSTSTAGEMASK
OFFSET
PNEXT
SIZEThe struct member offsets.static intSIZEOFThe struct size in bytes.static intSRCACCESSMASK
SRCQUEUEFAMILYINDEX
SRCSTAGEMASK
STYPEThe struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkBufferMemoryBarrier2(java.nio.ByteBuffer container)Creates aVkBufferMemoryBarrier2instance at the current position of the specifiedByteBuffercontainer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description longbuffer()a handle to the buffer whose backing memory is affected by the barrier.VkBufferMemoryBarrier2buffer(long value)Sets the specified value to thebuffer()field.static VkBufferMemoryBarrier2calloc()Returns a newVkBufferMemoryBarrier2instance allocated withmemCalloc.static VkBufferMemoryBarrier2.Buffercalloc(int capacity)Returns a newVkBufferMemoryBarrier2.Bufferinstance allocated withmemCalloc.static VkBufferMemoryBarrier2.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkBufferMemoryBarrier2.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkBufferMemoryBarrier2calloc(org.lwjgl.system.MemoryStack stack)Returns a newVkBufferMemoryBarrier2instance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkBufferMemoryBarrier2create()Returns a newVkBufferMemoryBarrier2instance allocated withBufferUtils.static VkBufferMemoryBarrier2.Buffercreate(int capacity)Returns a newVkBufferMemoryBarrier2.Bufferinstance allocated withBufferUtils.static VkBufferMemoryBarrier2create(long address)Returns a newVkBufferMemoryBarrier2instance for the specified memory address.static VkBufferMemoryBarrier2.Buffercreate(long address, int capacity)Create aVkBufferMemoryBarrier2.Bufferinstance at the specified memory.static VkBufferMemoryBarrier2createSafe(long address)static VkBufferMemoryBarrier2.BuffercreateSafe(long address, int capacity)longdstAccessMask()aVkAccessFlags2mask of access flags to be included in the second access scope.VkBufferMemoryBarrier2dstAccessMask(long value)Sets the specified value to thedstAccessMask()field.intdstQueueFamilyIndex()the destination queue family for a queue family ownership transfer.VkBufferMemoryBarrier2dstQueueFamilyIndex(int value)Sets the specified value to thedstQueueFamilyIndex()field.longdstStageMask()aVkPipelineStageFlags2mask of pipeline stages to be included in the second synchronization scope.VkBufferMemoryBarrier2dstStageMask(long value)Sets the specified value to thedstStageMask()field.static VkBufferMemoryBarrier2malloc()Returns a newVkBufferMemoryBarrier2instance allocated withmemAlloc.static VkBufferMemoryBarrier2.Buffermalloc(int capacity)Returns a newVkBufferMemoryBarrier2.Bufferinstance allocated withmemAlloc.static VkBufferMemoryBarrier2.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkBufferMemoryBarrier2.Bufferinstance allocated on the specifiedMemoryStack.static VkBufferMemoryBarrier2malloc(org.lwjgl.system.MemoryStack stack)Returns a newVkBufferMemoryBarrier2instance allocated on the specifiedMemoryStack.static longnbuffer(long struct)Unsafe version ofbuffer().static voidnbuffer(long struct, long value)Unsafe version ofbuffer.static longndstAccessMask(long struct)Unsafe version ofdstAccessMask().static voidndstAccessMask(long struct, long value)Unsafe version ofdstAccessMask.static intndstQueueFamilyIndex(long struct)Unsafe version ofdstQueueFamilyIndex().static voidndstQueueFamilyIndex(long struct, int value)Unsafe version ofdstQueueFamilyIndex.static longndstStageMask(long struct)Unsafe version ofdstStageMask().static voidndstStageMask(long struct, long value)Unsafe version ofdstStageMask.static longnoffset(long struct)Unsafe version ofoffset().static voidnoffset(long struct, long value)Unsafe version ofoffset.static longnpNext(long struct)Unsafe version ofpNext().static voidnpNext(long struct, long value)Unsafe version ofpNext.static longnsize(long struct)Unsafe version ofsize().static voidnsize(long struct, long value)Unsafe version ofsize.static longnsrcAccessMask(long struct)Unsafe version ofsrcAccessMask().static voidnsrcAccessMask(long struct, long value)Unsafe version ofsrcAccessMask.static intnsrcQueueFamilyIndex(long struct)Unsafe version ofsrcQueueFamilyIndex().static voidnsrcQueueFamilyIndex(long struct, int value)Unsafe version ofsrcQueueFamilyIndex.static longnsrcStageMask(long struct)Unsafe version ofsrcStageMask().static voidnsrcStageMask(long struct, long value)Unsafe version ofsrcStageMask.static intnsType(long struct)Unsafe version ofsType().static voidnsType(long struct, int value)Unsafe version ofsType.longoffset()an offset in bytes into the backing memory forbuffer; this is relative to the base offset as bound to the buffer (seeBindBufferMemory).VkBufferMemoryBarrier2offset(long value)Sets the specified value to theoffset()field.longpNext()NULLor a pointer to a structure extending this structure.VkBufferMemoryBarrier2pNext(long value)Sets the specified value to thepNext()field.VkBufferMemoryBarrier2set(int sType, long pNext, long srcStageMask, long srcAccessMask, long dstStageMask, long dstAccessMask, int srcQueueFamilyIndex, int dstQueueFamilyIndex, long buffer, long offset, long size)Initializes this struct with the specified values.VkBufferMemoryBarrier2set(VkBufferMemoryBarrier2 src)Copies the specified struct data to this struct.longsize()a size in bytes of the affected area of backing memory forbuffer, orWHOLE_SIZEto use the range fromoffsetto the end of the buffer.VkBufferMemoryBarrier2size(long value)Sets the specified value to thesize()field.intsizeof()longsrcAccessMask()aVkAccessFlags2mask of access flags to be included in the first access scope.VkBufferMemoryBarrier2srcAccessMask(long value)Sets the specified value to thesrcAccessMask()field.intsrcQueueFamilyIndex()the source queue family for a queue family ownership transfer.VkBufferMemoryBarrier2srcQueueFamilyIndex(int value)Sets the specified value to thesrcQueueFamilyIndex()field.longsrcStageMask()aVkPipelineStageFlags2mask of pipeline stages to be included in the first synchronization scope.VkBufferMemoryBarrier2srcStageMask(long value)Sets the specified value to thesrcStageMask()field.intsType()the type of this structure.VkBufferMemoryBarrier2sType(int value)Sets the specified value to thesType()field.VkBufferMemoryBarrier2sType$Default()Sets theSTRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2value to thesType()field.
-
-
-
Constructor Detail
-
VkBufferMemoryBarrier2
public VkBufferMemoryBarrier2(java.nio.ByteBuffer container)
Creates aVkBufferMemoryBarrier2instance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Detail
-
sizeof
public int sizeof()
- Specified by:
sizeofin classorg.lwjgl.system.Struct
-
sType
public int sType()
the type of this structure.
-
pNext
public long pNext()
NULLor a pointer to a structure extending this structure.
-
srcStageMask
public long srcStageMask()
aVkPipelineStageFlags2mask of pipeline stages to be included in the first synchronization scope.
-
srcAccessMask
public long srcAccessMask()
aVkAccessFlags2mask of access flags to be included in the first access scope.
-
dstStageMask
public long dstStageMask()
aVkPipelineStageFlags2mask of pipeline stages to be included in the second synchronization scope.
-
dstAccessMask
public long dstAccessMask()
aVkAccessFlags2mask of access flags to be included in the second access scope.
-
srcQueueFamilyIndex
public int srcQueueFamilyIndex()
the source queue family for a queue family ownership transfer.
-
dstQueueFamilyIndex
public int dstQueueFamilyIndex()
the destination queue family for a queue family ownership transfer.
-
buffer
public long buffer()
a handle to the buffer whose backing memory is affected by the barrier.
-
offset
public long offset()
an offset in bytes into the backing memory forbuffer; this is relative to the base offset as bound to the buffer (seeBindBufferMemory).
-
size
public long size()
a size in bytes of the affected area of backing memory forbuffer, orWHOLE_SIZEto use the range fromoffsetto the end of the buffer.
-
sType
public VkBufferMemoryBarrier2 sType(int value)
Sets the specified value to thesType()field.
-
sType$Default
public VkBufferMemoryBarrier2 sType$Default()
Sets theSTRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2value to thesType()field.
-
pNext
public VkBufferMemoryBarrier2 pNext(long value)
Sets the specified value to thepNext()field.
-
srcStageMask
public VkBufferMemoryBarrier2 srcStageMask(long value)
Sets the specified value to thesrcStageMask()field.
-
srcAccessMask
public VkBufferMemoryBarrier2 srcAccessMask(long value)
Sets the specified value to thesrcAccessMask()field.
-
dstStageMask
public VkBufferMemoryBarrier2 dstStageMask(long value)
Sets the specified value to thedstStageMask()field.
-
dstAccessMask
public VkBufferMemoryBarrier2 dstAccessMask(long value)
Sets the specified value to thedstAccessMask()field.
-
srcQueueFamilyIndex
public VkBufferMemoryBarrier2 srcQueueFamilyIndex(int value)
Sets the specified value to thesrcQueueFamilyIndex()field.
-
dstQueueFamilyIndex
public VkBufferMemoryBarrier2 dstQueueFamilyIndex(int value)
Sets the specified value to thedstQueueFamilyIndex()field.
-
buffer
public VkBufferMemoryBarrier2 buffer(long value)
Sets the specified value to thebuffer()field.
-
offset
public VkBufferMemoryBarrier2 offset(long value)
Sets the specified value to theoffset()field.
-
size
public VkBufferMemoryBarrier2 size(long value)
Sets the specified value to thesize()field.
-
set
public VkBufferMemoryBarrier2 set(int sType, long pNext, long srcStageMask, long srcAccessMask, long dstStageMask, long dstAccessMask, int srcQueueFamilyIndex, int dstQueueFamilyIndex, long buffer, long offset, long size)
Initializes this struct with the specified values.
-
set
public VkBufferMemoryBarrier2 set(VkBufferMemoryBarrier2 src)
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
public static VkBufferMemoryBarrier2 malloc()
Returns a newVkBufferMemoryBarrier2instance allocated withmemAlloc. The instance must be explicitly freed.
-
calloc
public static VkBufferMemoryBarrier2 calloc()
Returns a newVkBufferMemoryBarrier2instance allocated withmemCalloc. The instance must be explicitly freed.
-
create
public static VkBufferMemoryBarrier2 create()
Returns a newVkBufferMemoryBarrier2instance allocated withBufferUtils.
-
create
public static VkBufferMemoryBarrier2 create(long address)
Returns a newVkBufferMemoryBarrier2instance for the specified memory address.
-
createSafe
@Nullable public static VkBufferMemoryBarrier2 createSafe(long address)
-
malloc
public static VkBufferMemoryBarrier2.Buffer malloc(int capacity)
Returns a newVkBufferMemoryBarrier2.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
public static VkBufferMemoryBarrier2.Buffer calloc(int capacity)
Returns a newVkBufferMemoryBarrier2.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
public static VkBufferMemoryBarrier2.Buffer create(int capacity)
Returns a newVkBufferMemoryBarrier2.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
public static VkBufferMemoryBarrier2.Buffer create(long address, int capacity)
Create aVkBufferMemoryBarrier2.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
@Nullable public static VkBufferMemoryBarrier2.Buffer createSafe(long address, int capacity)
-
malloc
public static VkBufferMemoryBarrier2 malloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkBufferMemoryBarrier2instance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
public static VkBufferMemoryBarrier2 calloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkBufferMemoryBarrier2instance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkBufferMemoryBarrier2.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkBufferMemoryBarrier2.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
calloc
public static VkBufferMemoryBarrier2.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkBufferMemoryBarrier2.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
nsType
public static int nsType(long struct)
Unsafe version ofsType().
-
npNext
public static long npNext(long struct)
Unsafe version ofpNext().
-
nsrcStageMask
public static long nsrcStageMask(long struct)
Unsafe version ofsrcStageMask().
-
nsrcAccessMask
public static long nsrcAccessMask(long struct)
Unsafe version ofsrcAccessMask().
-
ndstStageMask
public static long ndstStageMask(long struct)
Unsafe version ofdstStageMask().
-
ndstAccessMask
public static long ndstAccessMask(long struct)
Unsafe version ofdstAccessMask().
-
nsrcQueueFamilyIndex
public static int nsrcQueueFamilyIndex(long struct)
Unsafe version ofsrcQueueFamilyIndex().
-
ndstQueueFamilyIndex
public static int ndstQueueFamilyIndex(long struct)
Unsafe version ofdstQueueFamilyIndex().
-
nbuffer
public static long nbuffer(long struct)
Unsafe version ofbuffer().
-
noffset
public static long noffset(long struct)
Unsafe version ofoffset().
-
nsize
public static long nsize(long struct)
Unsafe version ofsize().
-
nsType
public static void nsType(long struct, int value)Unsafe version ofsType.
-
npNext
public static void npNext(long struct, long value)Unsafe version ofpNext.
-
nsrcStageMask
public static void nsrcStageMask(long struct, long value)Unsafe version ofsrcStageMask.
-
nsrcAccessMask
public static void nsrcAccessMask(long struct, long value)Unsafe version ofsrcAccessMask.
-
ndstStageMask
public static void ndstStageMask(long struct, long value)Unsafe version ofdstStageMask.
-
ndstAccessMask
public static void ndstAccessMask(long struct, long value)Unsafe version ofdstAccessMask.
-
nsrcQueueFamilyIndex
public static void nsrcQueueFamilyIndex(long struct, int value)Unsafe version ofsrcQueueFamilyIndex.
-
ndstQueueFamilyIndex
public static void ndstQueueFamilyIndex(long struct, int value)Unsafe version ofdstQueueFamilyIndex.
-
nbuffer
public static void nbuffer(long struct, long value)Unsafe version ofbuffer.
-
noffset
public static void noffset(long struct, long value)Unsafe version ofoffset.
-
nsize
public static void nsize(long struct, long value)Unsafe version ofsize.
-
-