Class VulkanPhysicalDeviceFeatures11

java.lang.Object
com.io7m.jcoronado.api.VulkanPhysicalDeviceFeatures11
All Implemented Interfaces:
VulkanPhysicalDeviceFeatures11Type

public final class VulkanPhysicalDeviceFeatures11 extends Object implements VulkanPhysicalDeviceFeatures11Type
The features supported by a physical Vulkan 1.1 device.
See Also:
  • "VkPhysicalDeviceVulkan11Features"
  • Method Details

    • multiview

      public boolean multiview()
      multiview specifies whether the implementation supports multiview rendering within a render pass. If this feature is not enabled, the view mask of each subpass must always be zero.
      Specified by:
      multiview in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • multiviewGeometryShader

      public boolean multiviewGeometryShader()
      multiviewGeometryShader specifies whether the implementation supports multiview rendering within a render pass, with geometry shaders. If this feature is not enabled, then a pipeline compiled against a subpass with a non-zero view mask must not include a geometry shader.
      Specified by:
      multiviewGeometryShader in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • multiviewTessellationShader

      public boolean multiviewTessellationShader()
      multiviewTessellationShader specifies whether the implementation supports multiview rendering within a render pass, with tessellation shaders. If this feature is not enabled, then a pipeline compiled against a subpass with a non-zero view mask must not include any tessellation shaders.
      Specified by:
      multiviewTessellationShader in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • protectedMemory

      public boolean protectedMemory()
      protectedMemory specifies whether protected memory is supported.
      Specified by:
      protectedMemory in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • samplerYcbcrConversion

      public boolean samplerYcbcrConversion()
      samplerYcbcrConversion specifies whether the implementation supports sampler Y′CBCR conversion. If samplerYcbcrConversion is VK_FALSE, sampler Y′CBCR conversion is not supported, and samplers using sampler Y′CBCR conversion must not be used.
      Specified by:
      samplerYcbcrConversion in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • shaderDrawParameters

      public boolean shaderDrawParameters()
      shaderDrawParameters specifies whether the implementation supports the SPIR-V DrawParameters capability. When this feature is not enabled, shader modules must not declare the SPV_KHR_shader_draw_parameters extension or the DrawParameters capability.
      Specified by:
      shaderDrawParameters in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • storageBuffer16BitAccess

      public boolean storageBuffer16BitAccess()
      storageBuffer16BitAccess specifies whether objects in the StorageBuffer, ShaderRecordBufferKHR, or PhysicalStorageBuffer storage class with the Block decoration can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare the StorageBuffer16BitAccess capability.
      Specified by:
      storageBuffer16BitAccess in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • storageInputOutput16

      public boolean storageInputOutput16()
      storageInputOutput16 specifies whether objects in the Input and Output storage classes can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare the StorageInputOutput16 capability.
      Specified by:
      storageInputOutput16 in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • storagePushConstant16

      public boolean storagePushConstant16()
      storagePushConstant16 specifies whether objects in the PushConstant storage class can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or floating-point members must not be used in such objects. This also specifies whether shader modules can declare the StoragePushConstant16 capability.
      Specified by:
      storagePushConstant16 in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • uniformAndStorageBuffer16BitAccess

      public boolean uniformAndStorageBuffer16BitAccess()
      uniformAndStorageBuffer16BitAccess specifies whether objects in the Uniform storage class with the Block decoration can have 16-bit integer and 16-bit floating-point members. If this feature is not enabled, 16-bit integer or 16-bit floating-point members must not be used in such objects. This also specifies whether shader modules can declare the UniformAndStorageBuffer16BitAccess capability.
      Specified by:
      uniformAndStorageBuffer16BitAccess in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • variablePointers

      public boolean variablePointers()
      variablePointers specifies whether the implementation supports the SPIR-V VariablePointers capability. When this feature is not enabled, shader modules must not declare the VariablePointers capability.
      Specified by:
      variablePointers in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • variablePointersStorageBuffer

      public boolean variablePointersStorageBuffer()
      variablePointersStorageBuffer specifies whether the implementation supports the SPIR-V VariablePointersStorageBuffer capability. When this feature is not enabled, shader modules must not declare the SPV_KHR_variable_pointers extension or the VariablePointersStorageBuffer capability.
      Specified by:
      variablePointersStorageBuffer in interface VulkanPhysicalDeviceFeatures11Type
      Returns:
      true if supported
    • withMultiview

      public final VulkanPhysicalDeviceFeatures11 withMultiview(boolean value)
      Copy the current immutable object by setting a value for the multiview attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for multiview
      Returns:
      A modified copy of the this object
    • withMultiviewGeometryShader

      public final VulkanPhysicalDeviceFeatures11 withMultiviewGeometryShader(boolean value)
      Copy the current immutable object by setting a value for the multiviewGeometryShader attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for multiviewGeometryShader
      Returns:
      A modified copy of the this object
    • withMultiviewTessellationShader

      public final VulkanPhysicalDeviceFeatures11 withMultiviewTessellationShader(boolean value)
      Copy the current immutable object by setting a value for the multiviewTessellationShader attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for multiviewTessellationShader
      Returns:
      A modified copy of the this object
    • withProtectedMemory

      public final VulkanPhysicalDeviceFeatures11 withProtectedMemory(boolean value)
      Copy the current immutable object by setting a value for the protectedMemory attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for protectedMemory
      Returns:
      A modified copy of the this object
    • withSamplerYcbcrConversion

      public final VulkanPhysicalDeviceFeatures11 withSamplerYcbcrConversion(boolean value)
      Copy the current immutable object by setting a value for the samplerYcbcrConversion attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for samplerYcbcrConversion
      Returns:
      A modified copy of the this object
    • withShaderDrawParameters

      public final VulkanPhysicalDeviceFeatures11 withShaderDrawParameters(boolean value)
      Copy the current immutable object by setting a value for the shaderDrawParameters attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for shaderDrawParameters
      Returns:
      A modified copy of the this object
    • withStorageBuffer16BitAccess

      public final VulkanPhysicalDeviceFeatures11 withStorageBuffer16BitAccess(boolean value)
      Copy the current immutable object by setting a value for the storageBuffer16BitAccess attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for storageBuffer16BitAccess
      Returns:
      A modified copy of the this object
    • withStorageInputOutput16

      public final VulkanPhysicalDeviceFeatures11 withStorageInputOutput16(boolean value)
      Copy the current immutable object by setting a value for the storageInputOutput16 attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for storageInputOutput16
      Returns:
      A modified copy of the this object
    • withStoragePushConstant16

      public final VulkanPhysicalDeviceFeatures11 withStoragePushConstant16(boolean value)
      Copy the current immutable object by setting a value for the storagePushConstant16 attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for storagePushConstant16
      Returns:
      A modified copy of the this object
    • withUniformAndStorageBuffer16BitAccess

      public final VulkanPhysicalDeviceFeatures11 withUniformAndStorageBuffer16BitAccess(boolean value)
      Copy the current immutable object by setting a value for the uniformAndStorageBuffer16BitAccess attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for uniformAndStorageBuffer16BitAccess
      Returns:
      A modified copy of the this object
    • withVariablePointers

      public final VulkanPhysicalDeviceFeatures11 withVariablePointers(boolean value)
      Copy the current immutable object by setting a value for the variablePointers attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for variablePointers
      Returns:
      A modified copy of the this object
    • withVariablePointersStorageBuffer

      public final VulkanPhysicalDeviceFeatures11 withVariablePointersStorageBuffer(boolean value)
      Copy the current immutable object by setting a value for the variablePointersStorageBuffer attribute. A value equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for variablePointersStorageBuffer
      Returns:
      A modified copy of the this object
    • equals

      public boolean equals(Object another)
      This instance is equal to all instances of VulkanPhysicalDeviceFeatures11 that have equal attribute values.
      Overrides:
      equals in class Object
      Returns:
      true if this is equal to another instance
    • hashCode

      public int hashCode()
      Computes a hash code from attributes: multiview, multiviewGeometryShader, multiviewTessellationShader, protectedMemory, samplerYcbcrConversion, shaderDrawParameters, storageBuffer16BitAccess, storageInputOutput16, storagePushConstant16, uniformAndStorageBuffer16BitAccess, variablePointers, variablePointersStorageBuffer.
      Overrides:
      hashCode in class Object
      Returns:
      hashCode value
    • toString

      public String toString()
      Prints the immutable value VulkanPhysicalDeviceFeatures11 with attribute values.
      Overrides:
      toString in class Object
      Returns:
      A string representation of the value
    • copyOf

      Creates an immutable copy of a VulkanPhysicalDeviceFeatures11Type value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
      Parameters:
      instance - The instance to copy
      Returns:
      A copied immutable VulkanPhysicalDeviceFeatures11 instance
    • builder

      public static VulkanPhysicalDeviceFeatures11.Builder builder()
      Creates a builder for VulkanPhysicalDeviceFeatures11.
       VulkanPhysicalDeviceFeatures11.builder()
          .setMultiview(boolean) // optional multiview
          .setMultiviewGeometryShader(boolean) // optional multiviewGeometryShader
          .setMultiviewTessellationShader(boolean) // optional multiviewTessellationShader
          .setProtectedMemory(boolean) // optional protectedMemory
          .setSamplerYcbcrConversion(boolean) // optional samplerYcbcrConversion
          .setShaderDrawParameters(boolean) // optional shaderDrawParameters
          .setStorageBuffer16BitAccess(boolean) // optional storageBuffer16BitAccess
          .setStorageInputOutput16(boolean) // optional storageInputOutput16
          .setStoragePushConstant16(boolean) // optional storagePushConstant16
          .setUniformAndStorageBuffer16BitAccess(boolean) // optional uniformAndStorageBuffer16BitAccess
          .setVariablePointers(boolean) // optional variablePointers
          .setVariablePointersStorageBuffer(boolean) // optional variablePointersStorageBuffer
          .build();
       
      Returns:
      A new VulkanPhysicalDeviceFeatures11 builder