Class VkPhysicalDeviceFeatures

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkPhysicalDeviceFeatures>
org.lwjgl.vulkan.VkPhysicalDeviceFeatures
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

public class VkPhysicalDeviceFeatures extends org.lwjgl.system.Struct<VkPhysicalDeviceFeatures> implements org.lwjgl.system.NativeResource
Structure describing the fine-grained features that can be supported by an implementation.
See Also

VkDeviceCreateInfo, VkPhysicalDeviceFeatures2, GetPhysicalDeviceFeatures

Layout


 struct VkPhysicalDeviceFeatures {
     VkBool32 robustBufferAccess();
     VkBool32 fullDrawIndexUint32();
     VkBool32 imageCubeArray();
     VkBool32 independentBlend();
     VkBool32 geometryShader();
     VkBool32 tessellationShader();
     VkBool32 sampleRateShading();
     VkBool32 dualSrcBlend();
     VkBool32 logicOp();
     VkBool32 multiDrawIndirect();
     VkBool32 drawIndirectFirstInstance();
     VkBool32 depthClamp();
     VkBool32 depthBiasClamp();
     VkBool32 fillModeNonSolid();
     VkBool32 depthBounds();
     VkBool32 wideLines();
     VkBool32 largePoints();
     VkBool32 alphaToOne();
     VkBool32 multiViewport();
     VkBool32 samplerAnisotropy();
     VkBool32 textureCompressionETC2();
     VkBool32 textureCompressionASTC_LDR();
     VkBool32 textureCompressionBC();
     VkBool32 occlusionQueryPrecise();
     VkBool32 pipelineStatisticsQuery();
     VkBool32 vertexPipelineStoresAndAtomics();
     VkBool32 fragmentStoresAndAtomics();
     VkBool32 shaderTessellationAndGeometryPointSize();
     VkBool32 shaderImageGatherExtended();
     VkBool32 shaderStorageImageExtendedFormats();
     VkBool32 shaderStorageImageMultisample();
     VkBool32 shaderStorageImageReadWithoutFormat();
     VkBool32 shaderStorageImageWriteWithoutFormat();
     VkBool32 shaderUniformBufferArrayDynamicIndexing();
     VkBool32 shaderSampledImageArrayDynamicIndexing();
     VkBool32 shaderStorageBufferArrayDynamicIndexing();
     VkBool32 shaderStorageImageArrayDynamicIndexing();
     VkBool32 shaderClipDistance();
     VkBool32 shaderCullDistance();
     VkBool32 shaderFloat64();
     VkBool32 shaderInt64();
     VkBool32 shaderInt16();
     VkBool32 shaderResourceResidency();
     VkBool32 shaderResourceMinLod();
     VkBool32 sparseBinding();
     VkBool32 sparseResidencyBuffer();
     VkBool32 sparseResidencyImage2D();
     VkBool32 sparseResidencyImage3D();
     VkBool32 sparseResidency2Samples();
     VkBool32 sparseResidency4Samples();
     VkBool32 sparseResidency8Samples();
     VkBool32 sparseResidency16Samples();
     VkBool32 sparseResidencyAliased();
     VkBool32 variableMultisampleRate();
     VkBool32 inheritedQueries();
 }
  • Field Details

    • SIZEOF

      public static final int SIZEOF
      The struct size in bytes.
    • ALIGNOF

      public static final int ALIGNOF
      The struct alignment in bytes.
    • ROBUSTBUFFERACCESS

      public static final int ROBUSTBUFFERACCESS
      The struct member offsets.
    • FULLDRAWINDEXUINT32

      public static final int FULLDRAWINDEXUINT32
      The struct member offsets.
    • IMAGECUBEARRAY

      public static final int IMAGECUBEARRAY
      The struct member offsets.
    • INDEPENDENTBLEND

      public static final int INDEPENDENTBLEND
      The struct member offsets.
    • GEOMETRYSHADER

      public static final int GEOMETRYSHADER
      The struct member offsets.
    • TESSELLATIONSHADER

      public static final int TESSELLATIONSHADER
      The struct member offsets.
    • SAMPLERATESHADING

      public static final int SAMPLERATESHADING
      The struct member offsets.
    • DUALSRCBLEND

      public static final int DUALSRCBLEND
      The struct member offsets.
    • LOGICOP

      public static final int LOGICOP
      The struct member offsets.
    • MULTIDRAWINDIRECT

      public static final int MULTIDRAWINDIRECT
      The struct member offsets.
    • DRAWINDIRECTFIRSTINSTANCE

      public static final int DRAWINDIRECTFIRSTINSTANCE
      The struct member offsets.
    • DEPTHCLAMP

      public static final int DEPTHCLAMP
      The struct member offsets.
    • DEPTHBIASCLAMP

      public static final int DEPTHBIASCLAMP
      The struct member offsets.
    • FILLMODENONSOLID

      public static final int FILLMODENONSOLID
      The struct member offsets.
    • DEPTHBOUNDS

      public static final int DEPTHBOUNDS
      The struct member offsets.
    • WIDELINES

      public static final int WIDELINES
      The struct member offsets.
    • LARGEPOINTS

      public static final int LARGEPOINTS
      The struct member offsets.
    • ALPHATOONE

      public static final int ALPHATOONE
      The struct member offsets.
    • MULTIVIEWPORT

      public static final int MULTIVIEWPORT
      The struct member offsets.
    • SAMPLERANISOTROPY

      public static final int SAMPLERANISOTROPY
      The struct member offsets.
    • TEXTURECOMPRESSIONETC2

      public static final int TEXTURECOMPRESSIONETC2
      The struct member offsets.
    • TEXTURECOMPRESSIONASTC_LDR

      public static final int TEXTURECOMPRESSIONASTC_LDR
      The struct member offsets.
    • TEXTURECOMPRESSIONBC

      public static final int TEXTURECOMPRESSIONBC
      The struct member offsets.
    • OCCLUSIONQUERYPRECISE

      public static final int OCCLUSIONQUERYPRECISE
      The struct member offsets.
    • PIPELINESTATISTICSQUERY

      public static final int PIPELINESTATISTICSQUERY
      The struct member offsets.
    • VERTEXPIPELINESTORESANDATOMICS

      public static final int VERTEXPIPELINESTORESANDATOMICS
      The struct member offsets.
    • FRAGMENTSTORESANDATOMICS

      public static final int FRAGMENTSTORESANDATOMICS
      The struct member offsets.
    • SHADERTESSELLATIONANDGEOMETRYPOINTSIZE

      public static final int SHADERTESSELLATIONANDGEOMETRYPOINTSIZE
      The struct member offsets.
    • SHADERIMAGEGATHEREXTENDED

      public static final int SHADERIMAGEGATHEREXTENDED
      The struct member offsets.
    • SHADERSTORAGEIMAGEEXTENDEDFORMATS

      public static final int SHADERSTORAGEIMAGEEXTENDEDFORMATS
      The struct member offsets.
    • SHADERSTORAGEIMAGEMULTISAMPLE

      public static final int SHADERSTORAGEIMAGEMULTISAMPLE
      The struct member offsets.
    • SHADERSTORAGEIMAGEREADWITHOUTFORMAT

      public static final int SHADERSTORAGEIMAGEREADWITHOUTFORMAT
      The struct member offsets.
    • SHADERSTORAGEIMAGEWRITEWITHOUTFORMAT

      public static final int SHADERSTORAGEIMAGEWRITEWITHOUTFORMAT
      The struct member offsets.
    • SHADERUNIFORMBUFFERARRAYDYNAMICINDEXING

      public static final int SHADERUNIFORMBUFFERARRAYDYNAMICINDEXING
      The struct member offsets.
    • SHADERSAMPLEDIMAGEARRAYDYNAMICINDEXING

      public static final int SHADERSAMPLEDIMAGEARRAYDYNAMICINDEXING
      The struct member offsets.
    • SHADERSTORAGEBUFFERARRAYDYNAMICINDEXING

      public static final int SHADERSTORAGEBUFFERARRAYDYNAMICINDEXING
      The struct member offsets.
    • SHADERSTORAGEIMAGEARRAYDYNAMICINDEXING

      public static final int SHADERSTORAGEIMAGEARRAYDYNAMICINDEXING
      The struct member offsets.
    • SHADERCLIPDISTANCE

      public static final int SHADERCLIPDISTANCE
      The struct member offsets.
    • SHADERCULLDISTANCE

      public static final int SHADERCULLDISTANCE
      The struct member offsets.
    • SHADERFLOAT64

      public static final int SHADERFLOAT64
      The struct member offsets.
    • SHADERINT64

      public static final int SHADERINT64
      The struct member offsets.
    • SHADERINT16

      public static final int SHADERINT16
      The struct member offsets.
    • SHADERRESOURCERESIDENCY

      public static final int SHADERRESOURCERESIDENCY
      The struct member offsets.
    • SHADERRESOURCEMINLOD

      public static final int SHADERRESOURCEMINLOD
      The struct member offsets.
    • SPARSEBINDING

      public static final int SPARSEBINDING
      The struct member offsets.
    • SPARSERESIDENCYBUFFER

      public static final int SPARSERESIDENCYBUFFER
      The struct member offsets.
    • SPARSERESIDENCYIMAGE2D

      public static final int SPARSERESIDENCYIMAGE2D
      The struct member offsets.
    • SPARSERESIDENCYIMAGE3D

      public static final int SPARSERESIDENCYIMAGE3D
      The struct member offsets.
    • SPARSERESIDENCY2SAMPLES

      public static final int SPARSERESIDENCY2SAMPLES
      The struct member offsets.
    • SPARSERESIDENCY4SAMPLES

      public static final int SPARSERESIDENCY4SAMPLES
      The struct member offsets.
    • SPARSERESIDENCY8SAMPLES

      public static final int SPARSERESIDENCY8SAMPLES
      The struct member offsets.
    • SPARSERESIDENCY16SAMPLES

      public static final int SPARSERESIDENCY16SAMPLES
      The struct member offsets.
    • SPARSERESIDENCYALIASED

      public static final int SPARSERESIDENCYALIASED
      The struct member offsets.
    • VARIABLEMULTISAMPLERATE

      public static final int VARIABLEMULTISAMPLERATE
      The struct member offsets.
    • INHERITEDQUERIES

      public static final int INHERITEDQUERIES
      The struct member offsets.
  • Constructor Details

    • VkPhysicalDeviceFeatures

      public VkPhysicalDeviceFeatures(ByteBuffer container)
      Creates a VkPhysicalDeviceFeatures instance at the current position of the specified ByteBuffer container. 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 Details

    • sizeof

      public int sizeof()
      Specified by:
      sizeof in class org.lwjgl.system.Struct<VkPhysicalDeviceFeatures>
    • robustBufferAccess

      public boolean robustBufferAccess()
      specifies that accesses to buffers are bounds-checked against the range of the buffer descriptor (as determined by VkDescriptorBufferInfo::range, VkBufferViewCreateInfo::range, or the size of the buffer). Out of bounds accesses must not cause application termination, and the effects of shader loads, stores, and atomics must conform to an implementation-dependent behavior as described below.
      • A buffer access is considered to be out of bounds if any of the following are true:
        • The pointer was formed by OpImageTexelPointer and the coordinate is less than zero or greater than or equal to the number of whole elements in the bound range.
        • The pointer was not formed by OpImageTexelPointer and the object pointed to is not wholly contained within the bound range. This includes accesses performed via variable pointers where the buffer descriptor being accessed cannot be statically determined. Uninitialized pointers and pointers equal to OpConstantNull are treated as pointing to a zero-sized object, so all accesses through such pointers are considered to be out of bounds. Buffer accesses through buffer device addresses are not bounds-checked.
        • If the VkPhysicalDeviceCooperativeMatrixFeaturesNV::cooperativeMatrixRobustBufferAccess feature is not enabled, then accesses using OpCooperativeMatrixLoadNV and OpCooperativeMatrixStoreNV may not be bounds-checked.
        • If the VkPhysicalDeviceCooperativeMatrixFeaturesKHR::cooperativeMatrixRobustBufferAccess feature is not enabled, then accesses using OpCooperativeMatrixLoadKHR and OpCooperativeMatrixStoreKHR may not be bounds-checked.
          Note

          If a SPIR-V OpLoad instruction loads a structure and the tail end of the structure is out of bounds, then all members of the structure are considered out of bounds even if the members at the end are not statically used.

        • If the robustBufferAccess2 feature is not enabled and any buffer access is determined to be out of bounds, then any other access of the same type (load, store, or atomic) to the same buffer that accesses an address less than 16 bytes away from the out of bounds address may also be considered out of bounds.
        • If the access is a load that reads from the same memory locations as a prior store in the same shader invocation, with no other intervening accesses to the same memory locations in that shader invocation, then the result of the load may be the value stored by the store instruction, even if the access is out of bounds. If the load is Volatile, then an out of bounds load must return the appropriate out of bounds value.
      • Accesses to descriptors written with a NULL_HANDLE resource or view are not considered to be out of bounds. Instead, each type of descriptor access defines a specific behavior for accesses to a null descriptor.
      • Out-of-bounds buffer loads will return any of the following values:
        • If the access is to a uniform buffer and the robustBufferAccess2 feature is enabled, loads of offsets between the end of the descriptor range and the end of the descriptor range rounded up to a multiple of robustUniformBufferAccessSizeAlignment bytes must return either zero values or the contents of the memory at the offset being loaded. Loads of offsets past the descriptor range rounded up to a multiple of robustUniformBufferAccessSizeAlignment bytes must return zero values.
        • If the access is to a storage buffer and the robustBufferAccess2 feature is enabled, loads of offsets between the end of the descriptor range and the end of the descriptor range rounded up to a multiple of robustStorageBufferAccessSizeAlignment bytes must return either zero values or the contents of the memory at the offset being loaded. Loads of offsets past the descriptor range rounded up to a multiple of robustStorageBufferAccessSizeAlignment bytes must return zero values. Similarly, stores to addresses between the end of the descriptor range and the end of the descriptor range rounded up to a multiple of robustStorageBufferAccessSizeAlignment bytes may be discarded.
        • Non-atomic accesses to storage buffers that are a multiple of 32 bits may be decomposed into 32-bit accesses that are individually bounds-checked.
        • If the access is to an index buffer and the robustBufferAccess2 feature is enabled, zero values must be returned.
        • If the access is to a uniform texel buffer or storage texel buffer and the robustBufferAccess2 feature is enabled, zero values must be returned, and then Conversion to RGBA is applied based on the buffer view’s format.
        • Values from anywhere within the memory range(s) bound to the buffer (possibly including bytes of memory past the end of the buffer, up to the end of the bound range).
        • Zero values, or (0,0,0,x) vectors for vector reads where x is a valid value represented in the type of the vector components and may be any of:
          • 0, 1, or the maximum representable positive integer value, for signed or unsigned integer components
          • 0.0 or 1.0, for floating-point components
      • Out-of-bounds writes may modify values within the memory range(s) bound to the buffer, but must not modify any other memory.
        • If the robustBufferAccess2 feature is enabled, out of bounds writes must not modify any memory.
      • Out-of-bounds atomics may modify values within the memory range(s) bound to the buffer, but must not modify any other memory, and return an undefined value.
        • If the robustBufferAccess2 feature is enabled, out of bounds atomics must not modify any memory, and return an undefined value.
      • If the robustBufferAccess2 feature is not enabled, vertex input attributes are considered out of bounds if the offset of the attribute in the bound vertex buffer range plus the size of the attribute is greater than either:
        • vertexBufferRangeSize, if bindingStride == 0; or
        • (vertexBufferRangeSize - (vertexBufferRangeSize % bindingStride)) where vertexBufferRangeSize is the byte size of the memory range bound to the vertex buffer binding and bindingStride is the byte stride of the corresponding vertex input binding. Further, if any vertex input attribute using a specific vertex input binding is out of bounds, then all vertex input attributes using that vertex input binding for that vertex shader invocation are considered out of bounds.
        • If a vertex input attribute is out of bounds, it will be assigned one of the following values:
          • Values from anywhere within the memory range(s) bound to the buffer, converted according to the format of the attribute.
          • Zero values, format converted according to the format of the attribute.
          • Zero values, or (0,0,0,x) vectors, as described above.
      • If the robustBufferAccess2 feature is enabled, vertex input attributes are considered out of bounds if the offset of the attribute in the bound vertex buffer range plus the size of the attribute is greater than the byte size of the memory range bound to the vertex buffer binding.
        • If a vertex input attribute is out of bounds, the raw data extracted are zero values, and missing G, B, or A components are filled with (0,0,1).
      • If robustBufferAccess is not enabled, applications must not perform out of bounds accesses except under the conditions enabled by the pipelineRobustness feature .
    • fullDrawIndexUint32

      public boolean fullDrawIndexUint32()
      specifies the full 32-bit range of indices is supported for indexed draw calls when using a VkIndexType of INDEX_TYPE_UINT32. maxDrawIndexedIndexValue is the maximum index value that may be used (aside from the primitive restart index, which is always 232-1 when the VkIndexType is INDEX_TYPE_UINT32). If this feature is supported, maxDrawIndexedIndexValue must be 232-1; otherwise it must be no smaller than 224-1. See maxDrawIndexedIndexValue.
    • imageCubeArray

      public boolean imageCubeArray()
      specifies whether image views with a VkImageViewType of IMAGE_VIEW_TYPE_CUBE_ARRAY can be created, and that the corresponding SampledCubeArray and ImageCubeArray SPIR-V capabilities can be used in shader code.
    • independentBlend

      public boolean independentBlend()
      specifies whether the VkPipelineColorBlendAttachmentState settings are controlled independently per-attachment. If this feature is not enabled, the VkPipelineColorBlendAttachmentState settings for all color attachments must be identical. Otherwise, a different VkPipelineColorBlendAttachmentState can be provided for each bound color attachment.
    • geometryShader

      public boolean geometryShader()
      specifies whether geometry shaders are supported. If this feature is not enabled, the SHADER_STAGE_GEOMETRY_BIT and PIPELINE_STAGE_GEOMETRY_SHADER_BIT enum values must not be used. This also specifies whether shader modules can declare the Geometry capability.
    • tessellationShader

      public boolean tessellationShader()
      specifies whether tessellation control and evaluation shaders are supported. If this feature is not enabled, the SHADER_STAGE_TESSELLATION_CONTROL_BIT, SHADER_STAGE_TESSELLATION_EVALUATION_BIT, PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, and STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO enum values must not be used. This also specifies whether shader modules can declare the Tessellation capability.
    • sampleRateShading

      public boolean sampleRateShading()
      specifies whether Sample Shading and multisample interpolation are supported. If this feature is not enabled, the sampleShadingEnable member of the VkPipelineMultisampleStateCreateInfo structure must be FALSE and the minSampleShading member is ignored. This also specifies whether shader modules can declare the SampleRateShading capability.
    • dualSrcBlend

      public boolean dualSrcBlend()
      specifies whether blend operations which take two sources are supported. If this feature is not enabled, the BLEND_FACTOR_SRC1_COLOR, BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, BLEND_FACTOR_SRC1_ALPHA, and BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA enum values must not be used as source or destination blending factors. See Dual-Source Blending.
    • logicOp

      public boolean logicOp()
      specifies whether logic operations are supported. If this feature is not enabled, the logicOpEnable member of the VkPipelineColorBlendStateCreateInfo structure must be FALSE, and the logicOp member is ignored.
    • multiDrawIndirect

      public boolean multiDrawIndirect()
      specifies whether multiple draw indirect is supported. If this feature is not enabled, the drawCount parameter to the CmdDrawIndirect and CmdDrawIndexedIndirect commands must be 0 or 1. The maxDrawIndirectCount member of the VkPhysicalDeviceLimits structure must also be 1 if this feature is not supported. See maxDrawIndirectCount.
    • drawIndirectFirstInstance

      public boolean drawIndirectFirstInstance()
      specifies whether indirect drawing calls support the firstInstance parameter. If this feature is not enabled, the firstInstance member of all VkDrawIndirectCommand and VkDrawIndexedIndirectCommand structures that are provided to the CmdDrawIndirect and CmdDrawIndexedIndirect commands must be 0.
    • depthClamp

      public boolean depthClamp()
      specifies whether depth clamping is supported. If this feature is not enabled, the depthClampEnable member of the VkPipelineRasterizationStateCreateInfo structure must be FALSE. Otherwise, setting depthClampEnable to TRUE will enable depth clamping.
    • depthBiasClamp

      public boolean depthBiasClamp()
      specifies whether depth bias clamping is supported. If this feature is not enabled, the depthBiasClamp member of the VkPipelineRasterizationStateCreateInfo structure must be 0.0 unless the DYNAMIC_STATE_DEPTH_BIAS dynamic state is enabled, in which case the depthBiasClamp parameter to CmdSetDepthBias must be 0.0.
    • fillModeNonSolid

      public boolean fillModeNonSolid()
      specifies whether point and wireframe fill modes are supported. If this feature is not enabled, the POLYGON_MODE_POINT and POLYGON_MODE_LINE enum values must not be used.
    • depthBounds

      public boolean depthBounds()
      specifies whether depth bounds tests are supported. If this feature is not enabled, the depthBoundsTestEnable member of the VkPipelineDepthStencilStateCreateInfo structure must be FALSE unless the DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state is enabled, in which case the depthBoundsTestEnable parameter to CmdSetDepthBoundsTestEnable must be FALSE. When depthBoundsTestEnable is FALSE, the minDepthBounds and maxDepthBounds members of the VkPipelineDepthStencilStateCreateInfo structure are ignored.
    • wideLines

      public boolean wideLines()
      specifies whether lines with width other than 1.0 are supported. If this feature is not enabled, the lineWidth member of the VkPipelineRasterizationStateCreateInfo structure must be 1.0 unless the DYNAMIC_STATE_LINE_WIDTH dynamic state is enabled, in which case the lineWidth parameter to CmdSetLineWidth must be 1.0. When this feature is supported, the range and granularity of supported line widths are indicated by the lineWidthRange and lineWidthGranularity members of the VkPhysicalDeviceLimits structure, respectively.
    • largePoints

      public boolean largePoints()
      specifies whether points with size greater than 1.0 are supported. If this feature is not enabled, only a point size of 1.0 written by a shader is supported. The range and granularity of supported point sizes are indicated by the pointSizeRange and pointSizeGranularity members of the VkPhysicalDeviceLimits structure, respectively.
    • alphaToOne

      public boolean alphaToOne()
      specifies whether the implementation is able to replace the alpha value of the fragment shader color output in the Multisample Coverage fragment operation. If this feature is not enabled, then the alphaToOneEnable member of the VkPipelineMultisampleStateCreateInfo structure must be FALSE. Otherwise setting alphaToOneEnable to TRUE will enable alpha-to-one behavior.
    • multiViewport

      public boolean multiViewport()
      specifies whether more than one viewport is supported. If this feature is not enabled:
    • samplerAnisotropy

      public boolean samplerAnisotropy()
      specifies whether anisotropic filtering is supported. If this feature is not enabled, the anisotropyEnable member of the VkSamplerCreateInfo structure must be FALSE.
    • textureCompressionETC2

      public boolean textureCompressionETC2()
      specifies whether all of the ETC2 and EAC compressed texture formats are supported. If this feature is enabled, then the FORMAT_FEATURE_SAMPLED_IMAGE_BIT, FORMAT_FEATURE_BLIT_SRC_BIT and FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must be supported in optimalTilingFeatures for the following formats:
    • textureCompressionASTC_LDR

      public boolean textureCompressionASTC_LDR()
    • textureCompressionBC

      public boolean textureCompressionBC()
      specifies whether all of the BC compressed texture formats are supported. If this feature is enabled, then the FORMAT_FEATURE_SAMPLED_IMAGE_BIT, FORMAT_FEATURE_BLIT_SRC_BIT and FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT features must be supported in optimalTilingFeatures for the following formats:
    • occlusionQueryPrecise

      public boolean occlusionQueryPrecise()
      specifies whether occlusion queries returning actual sample counts are supported. Occlusion queries are created in a VkQueryPool by specifying the queryType of QUERY_TYPE_OCCLUSION in the VkQueryPoolCreateInfo structure which is passed to CreateQueryPool. If this feature is enabled, queries of this type can enable QUERY_CONTROL_PRECISE_BIT in the flags parameter to CmdBeginQuery. If this feature is not supported, the implementation supports only boolean occlusion queries. When any samples are passed, boolean queries will return a non-zero result value, otherwise a result value of zero is returned. When this feature is enabled and QUERY_CONTROL_PRECISE_BIT is set, occlusion queries will report the actual number of samples passed.
    • pipelineStatisticsQuery

      public boolean pipelineStatisticsQuery()
      specifies whether the pipeline statistics queries are supported. If this feature is not enabled, queries of type QUERY_TYPE_PIPELINE_STATISTICS cannot be created, and none of the VkQueryPipelineStatisticFlagBits bits can be set in the pipelineStatistics member of the VkQueryPoolCreateInfo structure.
    • vertexPipelineStoresAndAtomics

      public boolean vertexPipelineStoresAndAtomics()
      specifies whether storage buffers and images support stores and atomic operations in the vertex, tessellation, and geometry shader stages. If this feature is not enabled, all storage image, storage texel buffer, and storage buffer variables used by these stages in shader modules must be decorated with the NonWritable decoration (or the readonly memory qualifier in GLSL).
    • fragmentStoresAndAtomics

      public boolean fragmentStoresAndAtomics()
      specifies whether storage buffers and images support stores and atomic operations in the fragment shader stage. If this feature is not enabled, all storage image, storage texel buffer, and storage buffer variables used by the fragment stage in shader modules must be decorated with the NonWritable decoration (or the readonly memory qualifier in GLSL).
    • shaderTessellationAndGeometryPointSize

      public boolean shaderTessellationAndGeometryPointSize()
      specifies whether the PointSize built-in decoration is available in the tessellation control, tessellation evaluation, and geometry shader stages. If this feature is not enabled, members decorated with the PointSize built-in decoration must not be read from or written to and all points written from a tessellation or geometry shader will have a size of 1.0. This also specifies whether shader modules can declare the TessellationPointSize capability for tessellation control and evaluation shaders, or if the shader modules can declare the GeometryPointSize capability for geometry shaders. An implementation supporting this feature must also support one or both of the tessellationShader or geometryShader features.
    • shaderImageGatherExtended

      public boolean shaderImageGatherExtended()
      specifies whether the extended set of image gather instructions are available in shader code. If this feature is not enabled, the OpImage*Gather instructions do not support the Offset and ConstOffsets operands. This also specifies whether shader modules can declare the ImageGatherExtended capability.
    • shaderStorageImageExtendedFormats

      public boolean shaderStorageImageExtendedFormats()
      specifies whether all the “storage image extended formats” below are supported; if this feature is supported, then the FORMAT_FEATURE_STORAGE_IMAGE_BIT must be supported in optimalTilingFeatures for the following formats:
    • shaderStorageImageMultisample

      public boolean shaderStorageImageMultisample()
      specifies whether multisampled storage images are supported. If this feature is not enabled, images that are created with a usage that includes IMAGE_USAGE_STORAGE_BIT must be created with samples equal to SAMPLE_COUNT_1_BIT. This also specifies whether shader modules can declare the StorageImageMultisample and ImageMSArray capabilities.
    • shaderStorageImageReadWithoutFormat

      public boolean shaderStorageImageReadWithoutFormat()
      specifies whether storage images and storage texel buffers require a format qualifier to be specified when reading. shaderStorageImageReadWithoutFormat applies only to formats listed in the storage without format list.
    • shaderStorageImageWriteWithoutFormat

      public boolean shaderStorageImageWriteWithoutFormat()
      specifies whether storage images and storage texel buffers require a format qualifier to be specified when writing. shaderStorageImageWriteWithoutFormat applies only to formats listed in the storage without format list.
    • shaderUniformBufferArrayDynamicIndexing

      public boolean shaderUniformBufferArrayDynamicIndexing()
      specifies whether arrays of uniform buffers can be indexed by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader code. If this feature is not enabled, resources with a descriptor type of DESCRIPTOR_TYPE_UNIFORM_BUFFER or DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the UniformBufferArrayDynamicIndexing capability.
    • shaderSampledImageArrayDynamicIndexing

      public boolean shaderSampledImageArrayDynamicIndexing()
      specifies whether arrays of samplers or sampled images can be indexed by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader code. If this feature is not enabled, resources with a descriptor type of DESCRIPTOR_TYPE_SAMPLER, DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or DESCRIPTOR_TYPE_SAMPLED_IMAGE must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the SampledImageArrayDynamicIndexing capability.
    • shaderStorageBufferArrayDynamicIndexing

      public boolean shaderStorageBufferArrayDynamicIndexing()
      specifies whether arrays of storage buffers can be indexed by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader code. If this feature is not enabled, resources with a descriptor type of DESCRIPTOR_TYPE_STORAGE_BUFFER or DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the StorageBufferArrayDynamicIndexing capability.
    • shaderStorageImageArrayDynamicIndexing

      public boolean shaderStorageImageArrayDynamicIndexing()
      specifies whether arrays of storage images can be indexed by integer expressions that are dynamically uniform within either the subgroup or the invocation group in shader code. If this feature is not enabled, resources with a descriptor type of DESCRIPTOR_TYPE_STORAGE_IMAGE must be indexed only by constant integral expressions when aggregated into arrays in shader code. This also specifies whether shader modules can declare the StorageImageArrayDynamicIndexing capability.
    • shaderClipDistance

      public boolean shaderClipDistance()
      specifies whether clip distances are supported in shader code. If this feature is not enabled, any members decorated with the ClipDistance built-in decoration must not be read from or written to in shader modules. This also specifies whether shader modules can declare the ClipDistance capability.
    • shaderCullDistance

      public boolean shaderCullDistance()
      specifies whether cull distances are supported in shader code. If this feature is not enabled, any members decorated with the CullDistance built-in decoration must not be read from or written to in shader modules. This also specifies whether shader modules can declare the CullDistance capability.
    • shaderFloat64

      public boolean shaderFloat64()
      specifies whether 64-bit floats (doubles) are supported in shader code. If this feature is not enabled, 64-bit floating-point types must not be used in shader code. This also specifies whether shader modules can declare the Float64 capability. Declaring and using 64-bit floats is enabled for all storage classes that SPIR-V allows with the Float64 capability.
    • shaderInt64

      public boolean shaderInt64()
      specifies whether 64-bit integers (signed and unsigned) are supported in shader code. If this feature is not enabled, 64-bit integer types must not be used in shader code. This also specifies whether shader modules can declare the Int64 capability. Declaring and using 64-bit integers is enabled for all storage classes that SPIR-V allows with the Int64 capability.
    • shaderInt16

      public boolean shaderInt16()
      specifies whether 16-bit integers (signed and unsigned) are supported in shader code. If this feature is not enabled, 16-bit integer types must not be used in shader code. This also specifies whether shader modules can declare the Int16 capability. However, this only enables a subset of the storage classes that SPIR-V allows for the Int16 SPIR-V capability: Declaring and using 16-bit integers in the Private, Workgroup (for non-Block variables), and Function storage classes is enabled, while declaring them in the interface storage classes (e.g., UniformConstant, Uniform, StorageBuffer, Input, Output, and PushConstant) is not enabled.
    • shaderResourceResidency

      public boolean shaderResourceResidency()
      specifies whether image operations that return resource residency information are supported in shader code. If this feature is not enabled, the OpImageSparse* instructions must not be used in shader code. This also specifies whether shader modules can declare the SparseResidency capability. The feature requires at least one of the sparseResidency* features to be supported.
    • shaderResourceMinLod

      public boolean shaderResourceMinLod()
      specifies whether image operations specifying the minimum resource LOD are supported in shader code. If this feature is not enabled, the MinLod image operand must not be used in shader code. This also specifies whether shader modules can declare the MinLod capability.
    • sparseBinding

      public boolean sparseBinding()
      specifies whether resource memory can be managed at opaque sparse block level instead of at the object level. If this feature is not enabled, resource memory must be bound only on a per-object basis using the BindBufferMemory and BindImageMemory commands. In this case, buffers and images must not be created with BUFFER_CREATE_SPARSE_BINDING_BIT and IMAGE_CREATE_SPARSE_BINDING_BIT set in the flags member of the VkBufferCreateInfo and VkImageCreateInfo structures, respectively. Otherwise resource memory can be managed as described in Sparse Resource Features.
    • sparseResidencyBuffer

      public boolean sparseResidencyBuffer()
      specifies whether the device can access partially resident buffers. If this feature is not enabled, buffers must not be created with BUFFER_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkBufferCreateInfo structure.
    • sparseResidencyImage2D

      public boolean sparseResidencyImage2D()
      specifies whether the device can access partially resident 2D images with 1 sample per pixel. If this feature is not enabled, images with an imageType of IMAGE_TYPE_2D and samples set to SAMPLE_COUNT_1_BIT must not be created with IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
    • sparseResidencyImage3D

      public boolean sparseResidencyImage3D()
      specifies whether the device can access partially resident 3D images. If this feature is not enabled, images with an imageType of IMAGE_TYPE_3D must not be created with IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
    • sparseResidency2Samples

      public boolean sparseResidency2Samples()
      specifies whether the physical device can access partially resident 2D images with 2 samples per pixel. If this feature is not enabled, images with an imageType of IMAGE_TYPE_2D and samples set to SAMPLE_COUNT_2_BIT must not be created with IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
    • sparseResidency4Samples

      public boolean sparseResidency4Samples()
      specifies whether the physical device can access partially resident 2D images with 4 samples per pixel. If this feature is not enabled, images with an imageType of IMAGE_TYPE_2D and samples set to SAMPLE_COUNT_4_BIT must not be created with IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
    • sparseResidency8Samples

      public boolean sparseResidency8Samples()
      specifies whether the physical device can access partially resident 2D images with 8 samples per pixel. If this feature is not enabled, images with an imageType of IMAGE_TYPE_2D and samples set to SAMPLE_COUNT_8_BIT must not be created with IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
    • sparseResidency16Samples

      public boolean sparseResidency16Samples()
      specifies whether the physical device can access partially resident 2D images with 16 samples per pixel. If this feature is not enabled, images with an imageType of IMAGE_TYPE_2D and samples set to SAMPLE_COUNT_16_BIT must not be created with IMAGE_CREATE_SPARSE_RESIDENCY_BIT set in the flags member of the VkImageCreateInfo structure.
    • sparseResidencyAliased

      public boolean sparseResidencyAliased()
      specifies whether the physical device can correctly access data aliased into multiple locations. If this feature is not enabled, the BUFFER_CREATE_SPARSE_ALIASED_BIT and IMAGE_CREATE_SPARSE_ALIASED_BIT enum values must not be used in flags members of the VkBufferCreateInfo and VkImageCreateInfo structures, respectively.
    • variableMultisampleRate

      public boolean variableMultisampleRate()
      specifies whether all pipelines that will be bound to a command buffer during a subpass which uses no attachments must have the same value for VkPipelineMultisampleStateCreateInfo::rasterizationSamples. If set to TRUE, the implementation supports variable multisample rates in a subpass which uses no attachments. If set to FALSE, then all pipelines bound in such a subpass must have the same multisample rate. This has no effect in situations where a subpass uses any attachments.
    • inheritedQueries

      public boolean inheritedQueries()
      specifies whether a secondary command buffer may be executed while a query is active.
    • robustBufferAccess

      public VkPhysicalDeviceFeatures robustBufferAccess(boolean value)
      Sets the specified value to the robustBufferAccess() field.
    • fullDrawIndexUint32

      public VkPhysicalDeviceFeatures fullDrawIndexUint32(boolean value)
      Sets the specified value to the fullDrawIndexUint32() field.
    • imageCubeArray

      public VkPhysicalDeviceFeatures imageCubeArray(boolean value)
      Sets the specified value to the imageCubeArray() field.
    • independentBlend

      public VkPhysicalDeviceFeatures independentBlend(boolean value)
      Sets the specified value to the independentBlend() field.
    • geometryShader

      public VkPhysicalDeviceFeatures geometryShader(boolean value)
      Sets the specified value to the geometryShader() field.
    • tessellationShader

      public VkPhysicalDeviceFeatures tessellationShader(boolean value)
      Sets the specified value to the tessellationShader() field.
    • sampleRateShading

      public VkPhysicalDeviceFeatures sampleRateShading(boolean value)
      Sets the specified value to the sampleRateShading() field.
    • dualSrcBlend

      public VkPhysicalDeviceFeatures dualSrcBlend(boolean value)
      Sets the specified value to the dualSrcBlend() field.
    • logicOp

      public VkPhysicalDeviceFeatures logicOp(boolean value)
      Sets the specified value to the logicOp() field.
    • multiDrawIndirect

      public VkPhysicalDeviceFeatures multiDrawIndirect(boolean value)
      Sets the specified value to the multiDrawIndirect() field.
    • drawIndirectFirstInstance

      public VkPhysicalDeviceFeatures drawIndirectFirstInstance(boolean value)
      Sets the specified value to the drawIndirectFirstInstance() field.
    • depthClamp

      public VkPhysicalDeviceFeatures depthClamp(boolean value)
      Sets the specified value to the depthClamp() field.
    • depthBiasClamp

      public VkPhysicalDeviceFeatures depthBiasClamp(boolean value)
      Sets the specified value to the depthBiasClamp() field.
    • fillModeNonSolid

      public VkPhysicalDeviceFeatures fillModeNonSolid(boolean value)
      Sets the specified value to the fillModeNonSolid() field.
    • depthBounds

      public VkPhysicalDeviceFeatures depthBounds(boolean value)
      Sets the specified value to the depthBounds() field.
    • wideLines

      public VkPhysicalDeviceFeatures wideLines(boolean value)
      Sets the specified value to the wideLines() field.
    • largePoints

      public VkPhysicalDeviceFeatures largePoints(boolean value)
      Sets the specified value to the largePoints() field.
    • alphaToOne

      public VkPhysicalDeviceFeatures alphaToOne(boolean value)
      Sets the specified value to the alphaToOne() field.
    • multiViewport

      public VkPhysicalDeviceFeatures multiViewport(boolean value)
      Sets the specified value to the multiViewport() field.
    • samplerAnisotropy

      public VkPhysicalDeviceFeatures samplerAnisotropy(boolean value)
      Sets the specified value to the samplerAnisotropy() field.
    • textureCompressionETC2

      public VkPhysicalDeviceFeatures textureCompressionETC2(boolean value)
      Sets the specified value to the textureCompressionETC2() field.
    • textureCompressionASTC_LDR

      public VkPhysicalDeviceFeatures textureCompressionASTC_LDR(boolean value)
      Sets the specified value to the textureCompressionASTC_LDR() field.
    • textureCompressionBC

      public VkPhysicalDeviceFeatures textureCompressionBC(boolean value)
      Sets the specified value to the textureCompressionBC() field.
    • occlusionQueryPrecise

      public VkPhysicalDeviceFeatures occlusionQueryPrecise(boolean value)
      Sets the specified value to the occlusionQueryPrecise() field.
    • pipelineStatisticsQuery

      public VkPhysicalDeviceFeatures pipelineStatisticsQuery(boolean value)
      Sets the specified value to the pipelineStatisticsQuery() field.
    • vertexPipelineStoresAndAtomics

      public VkPhysicalDeviceFeatures vertexPipelineStoresAndAtomics(boolean value)
      Sets the specified value to the vertexPipelineStoresAndAtomics() field.
    • fragmentStoresAndAtomics

      public VkPhysicalDeviceFeatures fragmentStoresAndAtomics(boolean value)
      Sets the specified value to the fragmentStoresAndAtomics() field.
    • shaderTessellationAndGeometryPointSize

      public VkPhysicalDeviceFeatures shaderTessellationAndGeometryPointSize(boolean value)
      Sets the specified value to the shaderTessellationAndGeometryPointSize() field.
    • shaderImageGatherExtended

      public VkPhysicalDeviceFeatures shaderImageGatherExtended(boolean value)
      Sets the specified value to the shaderImageGatherExtended() field.
    • shaderStorageImageExtendedFormats

      public VkPhysicalDeviceFeatures shaderStorageImageExtendedFormats(boolean value)
      Sets the specified value to the shaderStorageImageExtendedFormats() field.
    • shaderStorageImageMultisample

      public VkPhysicalDeviceFeatures shaderStorageImageMultisample(boolean value)
      Sets the specified value to the shaderStorageImageMultisample() field.
    • shaderStorageImageReadWithoutFormat

      public VkPhysicalDeviceFeatures shaderStorageImageReadWithoutFormat(boolean value)
      Sets the specified value to the shaderStorageImageReadWithoutFormat() field.
    • shaderStorageImageWriteWithoutFormat

      public VkPhysicalDeviceFeatures shaderStorageImageWriteWithoutFormat(boolean value)
      Sets the specified value to the shaderStorageImageWriteWithoutFormat() field.
    • shaderUniformBufferArrayDynamicIndexing

      public VkPhysicalDeviceFeatures shaderUniformBufferArrayDynamicIndexing(boolean value)
      Sets the specified value to the shaderUniformBufferArrayDynamicIndexing() field.
    • shaderSampledImageArrayDynamicIndexing

      public VkPhysicalDeviceFeatures shaderSampledImageArrayDynamicIndexing(boolean value)
      Sets the specified value to the shaderSampledImageArrayDynamicIndexing() field.
    • shaderStorageBufferArrayDynamicIndexing

      public VkPhysicalDeviceFeatures shaderStorageBufferArrayDynamicIndexing(boolean value)
      Sets the specified value to the shaderStorageBufferArrayDynamicIndexing() field.
    • shaderStorageImageArrayDynamicIndexing

      public VkPhysicalDeviceFeatures shaderStorageImageArrayDynamicIndexing(boolean value)
      Sets the specified value to the shaderStorageImageArrayDynamicIndexing() field.
    • shaderClipDistance

      public VkPhysicalDeviceFeatures shaderClipDistance(boolean value)
      Sets the specified value to the shaderClipDistance() field.
    • shaderCullDistance

      public VkPhysicalDeviceFeatures shaderCullDistance(boolean value)
      Sets the specified value to the shaderCullDistance() field.
    • shaderFloat64

      public VkPhysicalDeviceFeatures shaderFloat64(boolean value)
      Sets the specified value to the shaderFloat64() field.
    • shaderInt64

      public VkPhysicalDeviceFeatures shaderInt64(boolean value)
      Sets the specified value to the shaderInt64() field.
    • shaderInt16

      public VkPhysicalDeviceFeatures shaderInt16(boolean value)
      Sets the specified value to the shaderInt16() field.
    • shaderResourceResidency

      public VkPhysicalDeviceFeatures shaderResourceResidency(boolean value)
      Sets the specified value to the shaderResourceResidency() field.
    • shaderResourceMinLod

      public VkPhysicalDeviceFeatures shaderResourceMinLod(boolean value)
      Sets the specified value to the shaderResourceMinLod() field.
    • sparseBinding

      public VkPhysicalDeviceFeatures sparseBinding(boolean value)
      Sets the specified value to the sparseBinding() field.
    • sparseResidencyBuffer

      public VkPhysicalDeviceFeatures sparseResidencyBuffer(boolean value)
      Sets the specified value to the sparseResidencyBuffer() field.
    • sparseResidencyImage2D

      public VkPhysicalDeviceFeatures sparseResidencyImage2D(boolean value)
      Sets the specified value to the sparseResidencyImage2D() field.
    • sparseResidencyImage3D

      public VkPhysicalDeviceFeatures sparseResidencyImage3D(boolean value)
      Sets the specified value to the sparseResidencyImage3D() field.
    • sparseResidency2Samples

      public VkPhysicalDeviceFeatures sparseResidency2Samples(boolean value)
      Sets the specified value to the sparseResidency2Samples() field.
    • sparseResidency4Samples

      public VkPhysicalDeviceFeatures sparseResidency4Samples(boolean value)
      Sets the specified value to the sparseResidency4Samples() field.
    • sparseResidency8Samples

      public VkPhysicalDeviceFeatures sparseResidency8Samples(boolean value)
      Sets the specified value to the sparseResidency8Samples() field.
    • sparseResidency16Samples

      public VkPhysicalDeviceFeatures sparseResidency16Samples(boolean value)
      Sets the specified value to the sparseResidency16Samples() field.
    • sparseResidencyAliased

      public VkPhysicalDeviceFeatures sparseResidencyAliased(boolean value)
      Sets the specified value to the sparseResidencyAliased() field.
    • variableMultisampleRate

      public VkPhysicalDeviceFeatures variableMultisampleRate(boolean value)
      Sets the specified value to the variableMultisampleRate() field.
    • inheritedQueries

      public VkPhysicalDeviceFeatures inheritedQueries(boolean value)
      Sets the specified value to the inheritedQueries() field.
    • set

      public VkPhysicalDeviceFeatures set(boolean robustBufferAccess, boolean fullDrawIndexUint32, boolean imageCubeArray, boolean independentBlend, boolean geometryShader, boolean tessellationShader, boolean sampleRateShading, boolean dualSrcBlend, boolean logicOp, boolean multiDrawIndirect, boolean drawIndirectFirstInstance, boolean depthClamp, boolean depthBiasClamp, boolean fillModeNonSolid, boolean depthBounds, boolean wideLines, boolean largePoints, boolean alphaToOne, boolean multiViewport, boolean samplerAnisotropy, boolean textureCompressionETC2, boolean textureCompressionASTC_LDR, boolean textureCompressionBC, boolean occlusionQueryPrecise, boolean pipelineStatisticsQuery, boolean vertexPipelineStoresAndAtomics, boolean fragmentStoresAndAtomics, boolean shaderTessellationAndGeometryPointSize, boolean shaderImageGatherExtended, boolean shaderStorageImageExtendedFormats, boolean shaderStorageImageMultisample, boolean shaderStorageImageReadWithoutFormat, boolean shaderStorageImageWriteWithoutFormat, boolean shaderUniformBufferArrayDynamicIndexing, boolean shaderSampledImageArrayDynamicIndexing, boolean shaderStorageBufferArrayDynamicIndexing, boolean shaderStorageImageArrayDynamicIndexing, boolean shaderClipDistance, boolean shaderCullDistance, boolean shaderFloat64, boolean shaderInt64, boolean shaderInt16, boolean shaderResourceResidency, boolean shaderResourceMinLod, boolean sparseBinding, boolean sparseResidencyBuffer, boolean sparseResidencyImage2D, boolean sparseResidencyImage3D, boolean sparseResidency2Samples, boolean sparseResidency4Samples, boolean sparseResidency8Samples, boolean sparseResidency16Samples, boolean sparseResidencyAliased, boolean variableMultisampleRate, boolean inheritedQueries)
      Initializes this struct with the specified values.
    • set

      Copies the specified struct data to this struct.
      Parameters:
      src - the source struct
      Returns:
      this struct
    • malloc

      public static VkPhysicalDeviceFeatures malloc()
      Returns a new VkPhysicalDeviceFeatures instance allocated with memAlloc. The instance must be explicitly freed.
    • calloc

      public static VkPhysicalDeviceFeatures calloc()
      Returns a new VkPhysicalDeviceFeatures instance allocated with memCalloc. The instance must be explicitly freed.
    • create

      public static VkPhysicalDeviceFeatures create()
      Returns a new VkPhysicalDeviceFeatures instance allocated with BufferUtils.
    • create

      public static VkPhysicalDeviceFeatures create(long address)
      Returns a new VkPhysicalDeviceFeatures instance for the specified memory address.
    • createSafe

      public static @Nullable VkPhysicalDeviceFeatures createSafe(long address)
      Like create, but returns null if address is NULL.
    • malloc

      public static VkPhysicalDeviceFeatures.Buffer malloc(int capacity)
      Returns a new VkPhysicalDeviceFeatures.Buffer instance allocated with memAlloc. The instance must be explicitly freed.
      Parameters:
      capacity - the buffer capacity
    • calloc

      public static VkPhysicalDeviceFeatures.Buffer calloc(int capacity)
      Returns a new VkPhysicalDeviceFeatures.Buffer instance allocated with memCalloc. The instance must be explicitly freed.
      Parameters:
      capacity - the buffer capacity
    • create

      public static VkPhysicalDeviceFeatures.Buffer create(int capacity)
      Returns a new VkPhysicalDeviceFeatures.Buffer instance allocated with BufferUtils.
      Parameters:
      capacity - the buffer capacity
    • create

      public static VkPhysicalDeviceFeatures.Buffer create(long address, int capacity)
      Create a VkPhysicalDeviceFeatures.Buffer instance at the specified memory.
      Parameters:
      address - the memory address
      capacity - the buffer capacity
    • createSafe

      public static @Nullable VkPhysicalDeviceFeatures.Buffer createSafe(long address, int capacity)
      Like create, but returns null if address is NULL.
    • mallocStack

      @Deprecated public static VkPhysicalDeviceFeatures mallocStack()
      Deprecated.
      Deprecated for removal in 3.4.0. Use malloc(MemoryStack) instead.
    • callocStack

      @Deprecated public static VkPhysicalDeviceFeatures callocStack()
      Deprecated.
      Deprecated for removal in 3.4.0. Use calloc(MemoryStack) instead.
    • mallocStack

      @Deprecated public static VkPhysicalDeviceFeatures mallocStack(org.lwjgl.system.MemoryStack stack)
      Deprecated.
      Deprecated for removal in 3.4.0. Use malloc(MemoryStack) instead.
    • callocStack

      @Deprecated public static VkPhysicalDeviceFeatures callocStack(org.lwjgl.system.MemoryStack stack)
      Deprecated.
      Deprecated for removal in 3.4.0. Use calloc(MemoryStack) instead.
    • mallocStack

      @Deprecated public static VkPhysicalDeviceFeatures.Buffer mallocStack(int capacity)
      Deprecated.
      Deprecated for removal in 3.4.0. Use malloc(int, MemoryStack) instead.
    • callocStack

      @Deprecated public static VkPhysicalDeviceFeatures.Buffer callocStack(int capacity)
      Deprecated.
      Deprecated for removal in 3.4.0. Use calloc(int, MemoryStack) instead.
    • mallocStack

      @Deprecated public static VkPhysicalDeviceFeatures.Buffer mallocStack(int capacity, org.lwjgl.system.MemoryStack stack)
      Deprecated.
      Deprecated for removal in 3.4.0. Use malloc(int, MemoryStack) instead.
    • callocStack

      @Deprecated public static VkPhysicalDeviceFeatures.Buffer callocStack(int capacity, org.lwjgl.system.MemoryStack stack)
      Deprecated.
      Deprecated for removal in 3.4.0. Use calloc(int, MemoryStack) instead.
    • malloc

      public static VkPhysicalDeviceFeatures malloc(org.lwjgl.system.MemoryStack stack)
      Returns a new VkPhysicalDeviceFeatures instance allocated on the specified MemoryStack.
      Parameters:
      stack - the stack from which to allocate
    • calloc

      public static VkPhysicalDeviceFeatures calloc(org.lwjgl.system.MemoryStack stack)
      Returns a new VkPhysicalDeviceFeatures instance allocated on the specified MemoryStack and initializes all its bits to zero.
      Parameters:
      stack - the stack from which to allocate
    • malloc

      public static VkPhysicalDeviceFeatures.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack)
      Returns a new VkPhysicalDeviceFeatures.Buffer instance allocated on the specified MemoryStack.
      Parameters:
      capacity - the buffer capacity
      stack - the stack from which to allocate
    • calloc

      public static VkPhysicalDeviceFeatures.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack)
      Returns a new VkPhysicalDeviceFeatures.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.
      Parameters:
      capacity - the buffer capacity
      stack - the stack from which to allocate
    • nrobustBufferAccess

      public static int nrobustBufferAccess(long struct)
      Unsafe version of robustBufferAccess().
    • nfullDrawIndexUint32

      public static int nfullDrawIndexUint32(long struct)
      Unsafe version of fullDrawIndexUint32().
    • nimageCubeArray

      public static int nimageCubeArray(long struct)
      Unsafe version of imageCubeArray().
    • nindependentBlend

      public static int nindependentBlend(long struct)
      Unsafe version of independentBlend().
    • ngeometryShader

      public static int ngeometryShader(long struct)
      Unsafe version of geometryShader().
    • ntessellationShader

      public static int ntessellationShader(long struct)
      Unsafe version of tessellationShader().
    • nsampleRateShading

      public static int nsampleRateShading(long struct)
      Unsafe version of sampleRateShading().
    • ndualSrcBlend

      public static int ndualSrcBlend(long struct)
      Unsafe version of dualSrcBlend().
    • nlogicOp

      public static int nlogicOp(long struct)
      Unsafe version of logicOp().
    • nmultiDrawIndirect

      public static int nmultiDrawIndirect(long struct)
      Unsafe version of multiDrawIndirect().
    • ndrawIndirectFirstInstance

      public static int ndrawIndirectFirstInstance(long struct)
      Unsafe version of drawIndirectFirstInstance().
    • ndepthClamp

      public static int ndepthClamp(long struct)
      Unsafe version of depthClamp().
    • ndepthBiasClamp

      public static int ndepthBiasClamp(long struct)
      Unsafe version of depthBiasClamp().
    • nfillModeNonSolid

      public static int nfillModeNonSolid(long struct)
      Unsafe version of fillModeNonSolid().
    • ndepthBounds

      public static int ndepthBounds(long struct)
      Unsafe version of depthBounds().
    • nwideLines

      public static int nwideLines(long struct)
      Unsafe version of wideLines().
    • nlargePoints

      public static int nlargePoints(long struct)
      Unsafe version of largePoints().
    • nalphaToOne

      public static int nalphaToOne(long struct)
      Unsafe version of alphaToOne().
    • nmultiViewport

      public static int nmultiViewport(long struct)
      Unsafe version of multiViewport().
    • nsamplerAnisotropy

      public static int nsamplerAnisotropy(long struct)
      Unsafe version of samplerAnisotropy().
    • ntextureCompressionETC2

      public static int ntextureCompressionETC2(long struct)
      Unsafe version of textureCompressionETC2().
    • ntextureCompressionASTC_LDR

      public static int ntextureCompressionASTC_LDR(long struct)
      Unsafe version of textureCompressionASTC_LDR().
    • ntextureCompressionBC

      public static int ntextureCompressionBC(long struct)
      Unsafe version of textureCompressionBC().
    • nocclusionQueryPrecise

      public static int nocclusionQueryPrecise(long struct)
      Unsafe version of occlusionQueryPrecise().
    • npipelineStatisticsQuery

      public static int npipelineStatisticsQuery(long struct)
      Unsafe version of pipelineStatisticsQuery().
    • nvertexPipelineStoresAndAtomics

      public static int nvertexPipelineStoresAndAtomics(long struct)
    • nfragmentStoresAndAtomics

      public static int nfragmentStoresAndAtomics(long struct)
      Unsafe version of fragmentStoresAndAtomics().
    • nshaderTessellationAndGeometryPointSize

      public static int nshaderTessellationAndGeometryPointSize(long struct)
    • nshaderImageGatherExtended

      public static int nshaderImageGatherExtended(long struct)
      Unsafe version of shaderImageGatherExtended().
    • nshaderStorageImageExtendedFormats

      public static int nshaderStorageImageExtendedFormats(long struct)
    • nshaderStorageImageMultisample

      public static int nshaderStorageImageMultisample(long struct)
    • nshaderStorageImageReadWithoutFormat

      public static int nshaderStorageImageReadWithoutFormat(long struct)
    • nshaderStorageImageWriteWithoutFormat

      public static int nshaderStorageImageWriteWithoutFormat(long struct)
    • nshaderUniformBufferArrayDynamicIndexing

      public static int nshaderUniformBufferArrayDynamicIndexing(long struct)
    • nshaderSampledImageArrayDynamicIndexing

      public static int nshaderSampledImageArrayDynamicIndexing(long struct)
    • nshaderStorageBufferArrayDynamicIndexing

      public static int nshaderStorageBufferArrayDynamicIndexing(long struct)
    • nshaderStorageImageArrayDynamicIndexing

      public static int nshaderStorageImageArrayDynamicIndexing(long struct)
    • nshaderClipDistance

      public static int nshaderClipDistance(long struct)
      Unsafe version of shaderClipDistance().
    • nshaderCullDistance

      public static int nshaderCullDistance(long struct)
      Unsafe version of shaderCullDistance().
    • nshaderFloat64

      public static int nshaderFloat64(long struct)
      Unsafe version of shaderFloat64().
    • nshaderInt64

      public static int nshaderInt64(long struct)
      Unsafe version of shaderInt64().
    • nshaderInt16

      public static int nshaderInt16(long struct)
      Unsafe version of shaderInt16().
    • nshaderResourceResidency

      public static int nshaderResourceResidency(long struct)
      Unsafe version of shaderResourceResidency().
    • nshaderResourceMinLod

      public static int nshaderResourceMinLod(long struct)
      Unsafe version of shaderResourceMinLod().
    • nsparseBinding

      public static int nsparseBinding(long struct)
      Unsafe version of sparseBinding().
    • nsparseResidencyBuffer

      public static int nsparseResidencyBuffer(long struct)
      Unsafe version of sparseResidencyBuffer().
    • nsparseResidencyImage2D

      public static int nsparseResidencyImage2D(long struct)
      Unsafe version of sparseResidencyImage2D().
    • nsparseResidencyImage3D

      public static int nsparseResidencyImage3D(long struct)
      Unsafe version of sparseResidencyImage3D().
    • nsparseResidency2Samples

      public static int nsparseResidency2Samples(long struct)
      Unsafe version of sparseResidency2Samples().
    • nsparseResidency4Samples

      public static int nsparseResidency4Samples(long struct)
      Unsafe version of sparseResidency4Samples().
    • nsparseResidency8Samples

      public static int nsparseResidency8Samples(long struct)
      Unsafe version of sparseResidency8Samples().
    • nsparseResidency16Samples

      public static int nsparseResidency16Samples(long struct)
      Unsafe version of sparseResidency16Samples().
    • nsparseResidencyAliased

      public static int nsparseResidencyAliased(long struct)
      Unsafe version of sparseResidencyAliased().
    • nvariableMultisampleRate

      public static int nvariableMultisampleRate(long struct)
      Unsafe version of variableMultisampleRate().
    • ninheritedQueries

      public static int ninheritedQueries(long struct)
      Unsafe version of inheritedQueries().
    • nrobustBufferAccess

      public static void nrobustBufferAccess(long struct, int value)
      Unsafe version of robustBufferAccess.
    • nfullDrawIndexUint32

      public static void nfullDrawIndexUint32(long struct, int value)
      Unsafe version of fullDrawIndexUint32.
    • nimageCubeArray

      public static void nimageCubeArray(long struct, int value)
      Unsafe version of imageCubeArray.
    • nindependentBlend

      public static void nindependentBlend(long struct, int value)
      Unsafe version of independentBlend.
    • ngeometryShader

      public static void ngeometryShader(long struct, int value)
      Unsafe version of geometryShader.
    • ntessellationShader

      public static void ntessellationShader(long struct, int value)
      Unsafe version of tessellationShader.
    • nsampleRateShading

      public static void nsampleRateShading(long struct, int value)
      Unsafe version of sampleRateShading.
    • ndualSrcBlend

      public static void ndualSrcBlend(long struct, int value)
      Unsafe version of dualSrcBlend.
    • nlogicOp

      public static void nlogicOp(long struct, int value)
      Unsafe version of logicOp.
    • nmultiDrawIndirect

      public static void nmultiDrawIndirect(long struct, int value)
      Unsafe version of multiDrawIndirect.
    • ndrawIndirectFirstInstance

      public static void ndrawIndirectFirstInstance(long struct, int value)
      Unsafe version of drawIndirectFirstInstance.
    • ndepthClamp

      public static void ndepthClamp(long struct, int value)
      Unsafe version of depthClamp.
    • ndepthBiasClamp

      public static void ndepthBiasClamp(long struct, int value)
      Unsafe version of depthBiasClamp.
    • nfillModeNonSolid

      public static void nfillModeNonSolid(long struct, int value)
      Unsafe version of fillModeNonSolid.
    • ndepthBounds

      public static void ndepthBounds(long struct, int value)
      Unsafe version of depthBounds.
    • nwideLines

      public static void nwideLines(long struct, int value)
      Unsafe version of wideLines.
    • nlargePoints

      public static void nlargePoints(long struct, int value)
      Unsafe version of largePoints.
    • nalphaToOne

      public static void nalphaToOne(long struct, int value)
      Unsafe version of alphaToOne.
    • nmultiViewport

      public static void nmultiViewport(long struct, int value)
      Unsafe version of multiViewport.
    • nsamplerAnisotropy

      public static void nsamplerAnisotropy(long struct, int value)
      Unsafe version of samplerAnisotropy.
    • ntextureCompressionETC2

      public static void ntextureCompressionETC2(long struct, int value)
      Unsafe version of textureCompressionETC2.
    • ntextureCompressionASTC_LDR

      public static void ntextureCompressionASTC_LDR(long struct, int value)
      Unsafe version of textureCompressionASTC_LDR.
    • ntextureCompressionBC

      public static void ntextureCompressionBC(long struct, int value)
      Unsafe version of textureCompressionBC.
    • nocclusionQueryPrecise

      public static void nocclusionQueryPrecise(long struct, int value)
      Unsafe version of occlusionQueryPrecise.
    • npipelineStatisticsQuery

      public static void npipelineStatisticsQuery(long struct, int value)
      Unsafe version of pipelineStatisticsQuery.
    • nvertexPipelineStoresAndAtomics

      public static void nvertexPipelineStoresAndAtomics(long struct, int value)
    • nfragmentStoresAndAtomics

      public static void nfragmentStoresAndAtomics(long struct, int value)
      Unsafe version of fragmentStoresAndAtomics.
    • nshaderTessellationAndGeometryPointSize

      public static void nshaderTessellationAndGeometryPointSize(long struct, int value)
    • nshaderImageGatherExtended

      public static void nshaderImageGatherExtended(long struct, int value)
      Unsafe version of shaderImageGatherExtended.
    • nshaderStorageImageExtendedFormats

      public static void nshaderStorageImageExtendedFormats(long struct, int value)
    • nshaderStorageImageMultisample

      public static void nshaderStorageImageMultisample(long struct, int value)
    • nshaderStorageImageReadWithoutFormat

      public static void nshaderStorageImageReadWithoutFormat(long struct, int value)
    • nshaderStorageImageWriteWithoutFormat

      public static void nshaderStorageImageWriteWithoutFormat(long struct, int value)
    • nshaderUniformBufferArrayDynamicIndexing

      public static void nshaderUniformBufferArrayDynamicIndexing(long struct, int value)
    • nshaderSampledImageArrayDynamicIndexing

      public static void nshaderSampledImageArrayDynamicIndexing(long struct, int value)
    • nshaderStorageBufferArrayDynamicIndexing

      public static void nshaderStorageBufferArrayDynamicIndexing(long struct, int value)
    • nshaderStorageImageArrayDynamicIndexing

      public static void nshaderStorageImageArrayDynamicIndexing(long struct, int value)
    • nshaderClipDistance

      public static void nshaderClipDistance(long struct, int value)
      Unsafe version of shaderClipDistance.
    • nshaderCullDistance

      public static void nshaderCullDistance(long struct, int value)
      Unsafe version of shaderCullDistance.
    • nshaderFloat64

      public static void nshaderFloat64(long struct, int value)
      Unsafe version of shaderFloat64.
    • nshaderInt64

      public static void nshaderInt64(long struct, int value)
      Unsafe version of shaderInt64.
    • nshaderInt16

      public static void nshaderInt16(long struct, int value)
      Unsafe version of shaderInt16.
    • nshaderResourceResidency

      public static void nshaderResourceResidency(long struct, int value)
      Unsafe version of shaderResourceResidency.
    • nshaderResourceMinLod

      public static void nshaderResourceMinLod(long struct, int value)
      Unsafe version of shaderResourceMinLod.
    • nsparseBinding

      public static void nsparseBinding(long struct, int value)
      Unsafe version of sparseBinding.
    • nsparseResidencyBuffer

      public static void nsparseResidencyBuffer(long struct, int value)
      Unsafe version of sparseResidencyBuffer.
    • nsparseResidencyImage2D

      public static void nsparseResidencyImage2D(long struct, int value)
      Unsafe version of sparseResidencyImage2D.
    • nsparseResidencyImage3D

      public static void nsparseResidencyImage3D(long struct, int value)
      Unsafe version of sparseResidencyImage3D.
    • nsparseResidency2Samples

      public static void nsparseResidency2Samples(long struct, int value)
      Unsafe version of sparseResidency2Samples.
    • nsparseResidency4Samples

      public static void nsparseResidency4Samples(long struct, int value)
      Unsafe version of sparseResidency4Samples.
    • nsparseResidency8Samples

      public static void nsparseResidency8Samples(long struct, int value)
      Unsafe version of sparseResidency8Samples.
    • nsparseResidency16Samples

      public static void nsparseResidency16Samples(long struct, int value)
      Unsafe version of sparseResidency16Samples.
    • nsparseResidencyAliased

      public static void nsparseResidencyAliased(long struct, int value)
      Unsafe version of sparseResidencyAliased.
    • nvariableMultisampleRate

      public static void nvariableMultisampleRate(long struct, int value)
      Unsafe version of variableMultisampleRate.
    • ninheritedQueries

      public static void ninheritedQueries(long struct, int value)
      Unsafe version of inheritedQueries.