Class VkPhysicalDeviceFeatures

    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • ROBUSTBUFFERACCESS, FULLDRAWINDEXUINT32, IMAGECUBEARRAY, INDEPENDENTBLEND, GEOMETRYSHADER, TESSELLATIONSHADER, SAMPLERATESHADING, DUALSRCBLEND, LOGICOP, MULTIDRAWINDIRECT, DRAWINDIRECTFIRSTINSTANCE, DEPTHCLAMP, DEPTHBIASCLAMP, FILLMODENONSOLID, DEPTHBOUNDS, WIDELINES, LARGEPOINTS, ALPHATOONE, MULTIVIEWPORT, SAMPLERANISOTROPY, TEXTURECOMPRESSIONETC2, TEXTURECOMPRESSIONASTC_LDR, TEXTURECOMPRESSIONBC, OCCLUSIONQUERYPRECISE, PIPELINESTATISTICSQUERY, VERTEXPIPELINESTORESANDATOMICS, FRAGMENTSTORESANDATOMICS, SHADERTESSELLATIONANDGEOMETRYPOINTSIZE, SHADERIMAGEGATHEREXTENDED, SHADERSTORAGEIMAGEEXTENDEDFORMATS, SHADERSTORAGEIMAGEMULTISAMPLE, SHADERSTORAGEIMAGEREADWITHOUTFORMAT, SHADERSTORAGEIMAGEWRITEWITHOUTFORMAT, SHADERUNIFORMBUFFERARRAYDYNAMICINDEXING, SHADERSAMPLEDIMAGEARRAYDYNAMICINDEXING, SHADERSTORAGEBUFFERARRAYDYNAMICINDEXING, SHADERSTORAGEIMAGEARRAYDYNAMICINDEXING, SHADERCLIPDISTANCE, SHADERCULLDISTANCE, SHADERFLOAT64, SHADERINT64, SHADERINT16, SHADERRESOURCERESIDENCY, SHADERRESOURCEMINLOD, SPARSEBINDING, SPARSERESIDENCYBUFFER, SPARSERESIDENCYIMAGE2D, SPARSERESIDENCYIMAGE3D, SPARSERESIDENCY2SAMPLES, SPARSERESIDENCY4SAMPLES, SPARSERESIDENCY8SAMPLES, SPARSERESIDENCY16SAMPLES, SPARSERESIDENCYALIASED, VARIABLEMULTISAMPLERATE, INHERITEDQUERIES

        The struct member offsets.
    • Constructor Detail

      • VkPhysicalDeviceFeatures

        public VkPhysicalDeviceFeatures​(java.nio.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 Detail

      • sizeof

        public int sizeof()
        Specified by:
        sizeof in class org.lwjgl.system.Struct
      • 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 cooperativeMatrixRobustBufferAccess feature is not enabled, then accesses using OpCooperativeMatrixLoadNV and OpCooperativeMatrixStoreNV 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 robustBufferAccess2 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 robustBufferAccess2 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 robustBufferAccess2 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 robustBufferAccess2 is enabled, zero values must be returned.
          • If the access is to a uniform texel buffer or storage texel buffer and robustBufferAccess2 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.
        • 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 robustBufferAccess2 is enabled, out of bounds atomics must not modify any memory, and return an undefined value.
        • If robustBufferAccess2 is disabled, 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 robustBufferAccess2 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.
      • 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.
      • 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.
      • 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 set to FALSE and the minSampleShading member is ignored. This also specifies whether shader modules can declare the SampleRateShading capability.
      • 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 set to 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 vkCmdDrawIndirect and vkCmdDrawIndexedIndirect 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 vkCmdDrawIndirect and vkCmdDrawIndexedIndirect 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 set to 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 set to 0.0 unless the DYNAMIC_STATE_DEPTH_BIAS dynamic state is enabled, and the depthBiasClamp parameter to vkCmdSetDepthBias must be set to 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.
      • 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 set to 1.0 unless the DYNAMIC_STATE_LINE_WIDTH dynamic state is enabled, and the lineWidth parameter to vkCmdSetLineWidth must be set to 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 set to 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:
        • The viewportCount and scissorCount members of the VkPipelineViewportStateCreateInfo structure must be set to 1.
        • The firstViewport and viewportCount parameters to the vkCmdSetViewport command must be set to 0 and 1, respectively.
        • The firstScissor and scissorCount parameters to the vkCmdSetScissor command must be set to 0 and 1, respectively.
        • The exclusiveScissorCount member of the VkPipelineViewportExclusiveScissorStateCreateInfoNV structure must be set to 0 or 1.
        • The firstExclusiveScissor and exclusiveScissorCount parameters to the vkCmdSetExclusiveScissorNV command must be set to 0 and 1, respectively.
      • 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.
      • 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 vkCreateQueryPool. If this feature is enabled, queries of this type can enable QUERY_CONTROL_PRECISE_BIT in the flags parameter to vkCmdBeginQuery. 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.
      • 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 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 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 dynamically uniform integer expressions 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 dynamically uniform integer expressions 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 dynamically uniform integer expressions 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 dynamically uniform integer expressions 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 vkBindBufferMemory and vkBindImageMemory 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.
      • 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.
      • 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.
      • 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.
      • 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.
      • 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
      • 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:
        stack - the stack from which to allocate
        capacity - the buffer capacity
      • 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().
      • nfragmentStoresAndAtomics

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

        public static int nshaderImageGatherExtended​(long struct)
        Unsafe version of shaderImageGatherExtended().
      • 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.
      • 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)
      • 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.