Class VkImageMemoryBarrier2
- java.lang.Object
-
- org.lwjgl.system.Pointer.Default
-
- org.lwjgl.system.Struct
-
- org.lwjgl.vulkan.VkImageMemoryBarrier2
-
- All Implemented Interfaces:
java.lang.AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
- Direct Known Subclasses:
VkImageMemoryBarrier2KHR
public class VkImageMemoryBarrier2 extends org.lwjgl.system.Struct implements org.lwjgl.system.NativeResourceStructure specifying an image memory barrier.Description
This structure defines a memory dependency limited to an image subresource range, and can define a queue family transfer operation and image layout transition for that subresource 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
imagein the subresource range defined bysubresourceRange.If
imagewas 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 image subresource 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 image subresource 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.If
oldLayoutis not equal tonewLayout, then the memory barrier defines an image layout transition for the specified image subresource range. If this memory barrier defines a queue family transfer operation, the layout transition is only executed once between the queues.Note
When the old and new layout are equal, the layout values are ignored - data is preserved no matter what values are specified, or what layout the image is currently in.
If
imagehas a multi-planar format and the image is disjoint, then includingIMAGE_ASPECT_COLOR_BITin theaspectMaskmember ofsubresourceRangeis equivalent to includingIMAGE_ASPECT_PLANE_0_BIT,IMAGE_ASPECT_PLANE_1_BIT, and (for three-plane formats only)IMAGE_ASPECT_PLANE_2_BIT.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
subresourceRange.baseMipLevelmust be less than themipLevelsspecified inVkImageCreateInfowhenimagewas created- If
subresourceRange.levelCountis notREMAINING_MIP_LEVELS,subresourceRange.baseMipLevel + subresourceRange.levelCountmust be less than or equal to themipLevelsspecified inVkImageCreateInfowhenimagewas created subresourceRange.baseArrayLayermust be less than thearrayLayersspecified inVkImageCreateInfowhenimagewas created- If
subresourceRange.layerCountis notREMAINING_ARRAY_LAYERS,subresourceRange.baseArrayLayer + subresourceRange.layerCountmust be less than or equal to thearrayLayersspecified inVkImageCreateInfowhenimagewas created - If
imageis non-sparse then it must be bound completely and contiguously to a singleVkDeviceMemoryobject - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMALthenimagemust have been created withIMAGE_USAGE_COLOR_ATTACHMENT_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMALthenimagemust have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMALthenimagemust have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMALthenimagemust have been created withIMAGE_USAGE_SAMPLED_BITorIMAGE_USAGE_INPUT_ATTACHMENT_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_TRANSFER_SRC_OPTIMALthenimagemust have been created withIMAGE_USAGE_TRANSFER_SRC_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_TRANSFER_DST_OPTIMALthenimagemust have been created withIMAGE_USAGE_TRANSFER_DST_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition,oldLayoutmust beIMAGE_LAYOUT_UNDEFINEDor the current layout of the image subresources affected by the barrier - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition,newLayoutmust not beIMAGE_LAYOUT_UNDEFINEDorIMAGE_LAYOUT_PREINITIALIZED - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMALthenimagemust have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMALthenimagemust have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMALthenimagemust have been created with at least one ofIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,IMAGE_USAGE_SAMPLED_BIT, orIMAGE_USAGE_INPUT_ATTACHMENT_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMALthenimagemust have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITset - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMALthenimagemust have been created with at least one ofIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,IMAGE_USAGE_SAMPLED_BIT, orIMAGE_USAGE_INPUT_ATTACHMENT_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMALthenimagemust have been created withIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BITset - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_ATTACHMENT_OPTIMAL,imagemust have been created withIMAGE_USAGE_COLOR_ATTACHMENT_BITorIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_READ_ONLY_OPTIMAL,imagemust have been created with at least one ofIMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,IMAGE_USAGE_SAMPLED_BIT, orIMAGE_USAGE_INPUT_ATTACHMENT_BIT - If
srcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition, andoldLayoutornewLayoutisIMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHRthenimagemust have been created withIMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHRset - If
imagehas a single-plane color format or is not disjoint, then theaspectMaskmember ofsubresourceRangemust beIMAGE_ASPECT_COLOR_BIT - If
imagehas a multi-planar format and the image is disjoint, then theaspectMaskmember ofsubresourceRangemust include either at least one ofIMAGE_ASPECT_PLANE_0_BIT,IMAGE_ASPECT_PLANE_1_BIT, andIMAGE_ASPECT_PLANE_2_BIT; or must includeIMAGE_ASPECT_COLOR_BIT - If
imagehas a multi-planar format with only two planes, then theaspectMaskmember ofsubresourceRangemust not includeIMAGE_ASPECT_PLANE_2_BIT - If
imagehas a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then theaspectMaskmember ofsubresourceRangemust include either or bothIMAGE_ASPECT_DEPTH_BITandIMAGE_ASPECT_STENCIL_BIT - If
imagehas a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then theaspectMaskmember ofsubresourceRangemust include bothIMAGE_ASPECT_DEPTH_BITandIMAGE_ASPECT_STENCIL_BIT - 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
imagewas 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
imagewas 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 - If
srcStageMaskincludesPIPELINE_STAGE_2_HOST_BIT, andsrcQueueFamilyIndexanddstQueueFamilyIndexdefine a queue family ownership transfer oroldLayoutandnewLayoutdefine an image layout transition,oldLayoutmust be one ofIMAGE_LAYOUT_PREINITIALIZED,IMAGE_LAYOUT_UNDEFINED, orIMAGE_LAYOUT_GENERAL
Valid Usage (Implicit)
sTypemust beSTRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2pNextmust beNULLor a pointer to a valid instance ofVkSampleLocationsInfoEXT- The
sTypevalue of each struct in thepNextchain must be unique srcStageMaskmust be a valid combination ofVkPipelineStageFlagBits2valuessrcAccessMaskmust be a valid combination ofVkAccessFlagBits2valuesdstStageMaskmust be a valid combination ofVkPipelineStageFlagBits2valuesdstAccessMaskmust be a valid combination ofVkAccessFlagBits2valuesoldLayoutmust be a validVkImageLayoutvaluenewLayoutmust be a validVkImageLayoutvalueimagemust be a validVkImagehandlesubresourceRangemust be a validVkImageSubresourceRangestructure
See Also
VkDependencyInfo,VkImageSubresourceRangeLayout
struct VkImageMemoryBarrier2 { VkStructureTypesType(); void const *pNext(); VkPipelineStageFlags2srcStageMask(); VkAccessFlags2srcAccessMask(); VkPipelineStageFlags2dstStageMask(); VkAccessFlags2dstAccessMask(); VkImageLayoutoldLayout(); VkImageLayoutnewLayout(); uint32_tsrcQueueFamilyIndex(); uint32_tdstQueueFamilyIndex(); VkImageimage();VkImageSubresourceRangesubresourceRange(); }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classVkImageMemoryBarrier2.BufferAn array ofVkImageMemoryBarrier2structs.
-
Field Summary
Fields Modifier and Type Field Description static intALIGNOFThe struct alignment in bytes.static intDSTACCESSMASK
DSTQUEUEFAMILYINDEX
DSTSTAGEMASK
IMAGE
NEWLAYOUT
OLDLAYOUT
PNEXTThe struct member offsets.static intSIZEOFThe struct size in bytes.static intSRCACCESSMASK
SRCQUEUEFAMILYINDEX
SRCSTAGEMASK
STYPE
SUBRESOURCERANGEThe struct member offsets.
-
Constructor Summary
Constructors Constructor Description VkImageMemoryBarrier2(java.nio.ByteBuffer container)Creates aVkImageMemoryBarrier2instance at the current position of the specifiedByteBuffercontainer.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static VkImageMemoryBarrier2calloc()Returns a newVkImageMemoryBarrier2instance allocated withmemCalloc.static VkImageMemoryBarrier2.Buffercalloc(int capacity)Returns a newVkImageMemoryBarrier2.Bufferinstance allocated withmemCalloc.static VkImageMemoryBarrier2.Buffercalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkImageMemoryBarrier2.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkImageMemoryBarrier2calloc(org.lwjgl.system.MemoryStack stack)Returns a newVkImageMemoryBarrier2instance allocated on the specifiedMemoryStackand initializes all its bits to zero.static VkImageMemoryBarrier2create()Returns a newVkImageMemoryBarrier2instance allocated withBufferUtils.static VkImageMemoryBarrier2.Buffercreate(int capacity)Returns a newVkImageMemoryBarrier2.Bufferinstance allocated withBufferUtils.static VkImageMemoryBarrier2create(long address)Returns a newVkImageMemoryBarrier2instance for the specified memory address.static VkImageMemoryBarrier2.Buffercreate(long address, int capacity)Create aVkImageMemoryBarrier2.Bufferinstance at the specified memory.static VkImageMemoryBarrier2createSafe(long address)static VkImageMemoryBarrier2.BuffercreateSafe(long address, int capacity)longdstAccessMask()aVkAccessFlags2mask of access flags to be included in the second access scope.VkImageMemoryBarrier2dstAccessMask(long value)Sets the specified value to thedstAccessMask()field.intdstQueueFamilyIndex()the destination queue family for a queue family ownership transfer.VkImageMemoryBarrier2dstQueueFamilyIndex(int value)Sets the specified value to thedstQueueFamilyIndex()field.longdstStageMask()aVkPipelineStageFlags2mask of pipeline stages to be included in the second synchronization scope.VkImageMemoryBarrier2dstStageMask(long value)Sets the specified value to thedstStageMask()field.longimage()a handle to the image affected by this barrier.VkImageMemoryBarrier2image(long value)Sets the specified value to theimage()field.static VkImageMemoryBarrier2malloc()Returns a newVkImageMemoryBarrier2instance allocated withmemAlloc.static VkImageMemoryBarrier2.Buffermalloc(int capacity)Returns a newVkImageMemoryBarrier2.Bufferinstance allocated withmemAlloc.static VkImageMemoryBarrier2.Buffermalloc(int capacity, org.lwjgl.system.MemoryStack stack)Returns a newVkImageMemoryBarrier2.Bufferinstance allocated on the specifiedMemoryStack.static VkImageMemoryBarrier2malloc(org.lwjgl.system.MemoryStack stack)Returns a newVkImageMemoryBarrier2instance allocated on the specifiedMemoryStack.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.intnewLayout()the new layout in an image layout transition.VkImageMemoryBarrier2newLayout(int value)Sets the specified value to thenewLayout()field.static longnimage(long struct)Unsafe version ofimage().static voidnimage(long struct, long value)Unsafe version ofimage.static intnnewLayout(long struct)Unsafe version ofnewLayout().static voidnnewLayout(long struct, int value)Unsafe version ofnewLayout.static intnoldLayout(long struct)Unsafe version ofoldLayout().static voidnoldLayout(long struct, int value)Unsafe version ofoldLayout.static longnpNext(long struct)Unsafe version ofpNext().static voidnpNext(long struct, long value)Unsafe version ofpNext.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.static VkImageSubresourceRangensubresourceRange(long struct)Unsafe version ofsubresourceRange().static voidnsubresourceRange(long struct, VkImageSubresourceRange value)Unsafe version ofsubresourceRange.intoldLayout()the old layout in an image layout transition.VkImageMemoryBarrier2oldLayout(int value)Sets the specified value to theoldLayout()field.longpNext()NULLor a pointer to a structure extending this structure.VkImageMemoryBarrier2pNext(long value)Sets the specified value to thepNext()field.VkImageMemoryBarrier2pNext(VkSampleLocationsInfoEXT value)Prepends the specifiedVkSampleLocationsInfoEXTvalue to thepNextchain.VkImageMemoryBarrier2set(int sType, long pNext, long srcStageMask, long srcAccessMask, long dstStageMask, long dstAccessMask, int oldLayout, int newLayout, int srcQueueFamilyIndex, int dstQueueFamilyIndex, long image, VkImageSubresourceRange subresourceRange)Initializes this struct with the specified values.VkImageMemoryBarrier2set(VkImageMemoryBarrier2 src)Copies the specified struct data to this struct.intsizeof()longsrcAccessMask()aVkAccessFlags2mask of access flags to be included in the first access scope.VkImageMemoryBarrier2srcAccessMask(long value)Sets the specified value to thesrcAccessMask()field.intsrcQueueFamilyIndex()the source queue family for a queue family ownership transfer.VkImageMemoryBarrier2srcQueueFamilyIndex(int value)Sets the specified value to thesrcQueueFamilyIndex()field.longsrcStageMask()aVkPipelineStageFlags2mask of pipeline stages to be included in the first synchronization scope.VkImageMemoryBarrier2srcStageMask(long value)Sets the specified value to thesrcStageMask()field.intsType()the type of this structure.VkImageMemoryBarrier2sType(int value)Sets the specified value to thesType()field.VkImageMemoryBarrier2sType$Default()Sets theSTRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2value to thesType()field.VkImageSubresourceRangesubresourceRange()describes the image subresource range withinimagethat is affected by this barrier.VkImageMemoryBarrier2subresourceRange(java.util.function.Consumer<VkImageSubresourceRange> consumer)Passes thesubresourceRange()field to the specifiedConsumer.VkImageMemoryBarrier2subresourceRange(VkImageSubresourceRange value)Copies the specifiedVkImageSubresourceRangeto thesubresourceRange()field.
-
-
-
Constructor Detail
-
VkImageMemoryBarrier2
public VkImageMemoryBarrier2(java.nio.ByteBuffer container)
Creates aVkImageMemoryBarrier2instance 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.
-
oldLayout
public int oldLayout()
the old layout in an image layout transition.
-
newLayout
public int newLayout()
the new layout in an image layout transition.
-
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.
-
image
public long image()
a handle to the image affected by this barrier.
-
subresourceRange
public VkImageSubresourceRange subresourceRange()
describes the image subresource range withinimagethat is affected by this barrier.
-
sType
public VkImageMemoryBarrier2 sType(int value)
Sets the specified value to thesType()field.
-
sType$Default
public VkImageMemoryBarrier2 sType$Default()
Sets theSTRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2value to thesType()field.
-
pNext
public VkImageMemoryBarrier2 pNext(long value)
Sets the specified value to thepNext()field.
-
pNext
public VkImageMemoryBarrier2 pNext(VkSampleLocationsInfoEXT value)
Prepends the specifiedVkSampleLocationsInfoEXTvalue to thepNextchain.
-
srcStageMask
public VkImageMemoryBarrier2 srcStageMask(long value)
Sets the specified value to thesrcStageMask()field.
-
srcAccessMask
public VkImageMemoryBarrier2 srcAccessMask(long value)
Sets the specified value to thesrcAccessMask()field.
-
dstStageMask
public VkImageMemoryBarrier2 dstStageMask(long value)
Sets the specified value to thedstStageMask()field.
-
dstAccessMask
public VkImageMemoryBarrier2 dstAccessMask(long value)
Sets the specified value to thedstAccessMask()field.
-
oldLayout
public VkImageMemoryBarrier2 oldLayout(int value)
Sets the specified value to theoldLayout()field.
-
newLayout
public VkImageMemoryBarrier2 newLayout(int value)
Sets the specified value to thenewLayout()field.
-
srcQueueFamilyIndex
public VkImageMemoryBarrier2 srcQueueFamilyIndex(int value)
Sets the specified value to thesrcQueueFamilyIndex()field.
-
dstQueueFamilyIndex
public VkImageMemoryBarrier2 dstQueueFamilyIndex(int value)
Sets the specified value to thedstQueueFamilyIndex()field.
-
image
public VkImageMemoryBarrier2 image(long value)
Sets the specified value to theimage()field.
-
subresourceRange
public VkImageMemoryBarrier2 subresourceRange(VkImageSubresourceRange value)
Copies the specifiedVkImageSubresourceRangeto thesubresourceRange()field.
-
subresourceRange
public VkImageMemoryBarrier2 subresourceRange(java.util.function.Consumer<VkImageSubresourceRange> consumer)
Passes thesubresourceRange()field to the specifiedConsumer.
-
set
public VkImageMemoryBarrier2 set(int sType, long pNext, long srcStageMask, long srcAccessMask, long dstStageMask, long dstAccessMask, int oldLayout, int newLayout, int srcQueueFamilyIndex, int dstQueueFamilyIndex, long image, VkImageSubresourceRange subresourceRange)
Initializes this struct with the specified values.
-
set
public VkImageMemoryBarrier2 set(VkImageMemoryBarrier2 src)
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
public static VkImageMemoryBarrier2 malloc()
Returns a newVkImageMemoryBarrier2instance allocated withmemAlloc. The instance must be explicitly freed.
-
calloc
public static VkImageMemoryBarrier2 calloc()
Returns a newVkImageMemoryBarrier2instance allocated withmemCalloc. The instance must be explicitly freed.
-
create
public static VkImageMemoryBarrier2 create()
Returns a newVkImageMemoryBarrier2instance allocated withBufferUtils.
-
create
public static VkImageMemoryBarrier2 create(long address)
Returns a newVkImageMemoryBarrier2instance for the specified memory address.
-
createSafe
@Nullable public static VkImageMemoryBarrier2 createSafe(long address)
-
malloc
public static VkImageMemoryBarrier2.Buffer malloc(int capacity)
Returns a newVkImageMemoryBarrier2.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
public static VkImageMemoryBarrier2.Buffer calloc(int capacity)
Returns a newVkImageMemoryBarrier2.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
public static VkImageMemoryBarrier2.Buffer create(int capacity)
Returns a newVkImageMemoryBarrier2.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
public static VkImageMemoryBarrier2.Buffer create(long address, int capacity)
Create aVkImageMemoryBarrier2.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
@Nullable public static VkImageMemoryBarrier2.Buffer createSafe(long address, int capacity)
-
malloc
public static VkImageMemoryBarrier2 malloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkImageMemoryBarrier2instance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
public static VkImageMemoryBarrier2 calloc(org.lwjgl.system.MemoryStack stack)
Returns a newVkImageMemoryBarrier2instance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static VkImageMemoryBarrier2.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkImageMemoryBarrier2.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocatecapacity- the buffer capacity
-
calloc
public static VkImageMemoryBarrier2.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack)
Returns a newVkImageMemoryBarrier2.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().
-
noldLayout
public static int noldLayout(long struct)
Unsafe version ofoldLayout().
-
nnewLayout
public static int nnewLayout(long struct)
Unsafe version ofnewLayout().
-
nsrcQueueFamilyIndex
public static int nsrcQueueFamilyIndex(long struct)
Unsafe version ofsrcQueueFamilyIndex().
-
ndstQueueFamilyIndex
public static int ndstQueueFamilyIndex(long struct)
Unsafe version ofdstQueueFamilyIndex().
-
nimage
public static long nimage(long struct)
Unsafe version ofimage().
-
nsubresourceRange
public static VkImageSubresourceRange nsubresourceRange(long struct)
Unsafe version ofsubresourceRange().
-
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.
-
noldLayout
public static void noldLayout(long struct, int value)Unsafe version ofoldLayout.
-
nnewLayout
public static void nnewLayout(long struct, int value)Unsafe version ofnewLayout.
-
nsrcQueueFamilyIndex
public static void nsrcQueueFamilyIndex(long struct, int value)Unsafe version ofsrcQueueFamilyIndex.
-
ndstQueueFamilyIndex
public static void ndstQueueFamilyIndex(long struct, int value)Unsafe version ofdstQueueFamilyIndex.
-
nimage
public static void nimage(long struct, long value)Unsafe version ofimage.
-
nsubresourceRange
public static void nsubresourceRange(long struct, VkImageSubresourceRange value)Unsafe version ofsubresourceRange.
-
-