internal void GenerateDepthStencilFormat() { Format[] validFormats = { Format.D32SFloatS8UInt, Format.D32SFloat, Format.D24UNormS8UInt, Format.D16UNormS8UInt, Format.D16UNorm }; Format?potentialFormat = validFormats.FirstOrDefault( validFormat => { FormatProperties formatProps = PhysicalDevice.GetFormatProperties(validFormat); return((formatProps.OptimalTilingFeatures & FormatFeatures.DepthStencilAttachment) > 0); }); if (!potentialFormat.HasValue) { throw new InvalidOperationException("Required depth stencil format not supported."); } DepthStencilFormat = potentialFormat.Value; }
internal bool IsFormatSupported(Format format, ImageTiling tiling, FormatFeatures features) { var properties = physicalDevice.GetFormatProperties(format); switch (tiling) { case ImageTiling.Linear: return((properties.LinearTilingFeatures & features) == features); case ImageTiling.Optimal: return((properties.OptimalTilingFeatures & features) == features); } return(false); }
public void GetFormatProperties() { PhysicalDevice.GetFormatProperties(Format.B8G8R8A8UNorm); }