Skip to content

Commit

Permalink
v1.3.300
Browse files Browse the repository at this point in the history
  • Loading branch information
exomia-bot committed Oct 25, 2024
1 parent aca41d5 commit 530e300
Show file tree
Hide file tree
Showing 10 changed files with 378 additions and 6 deletions.
2 changes: 1 addition & 1 deletion .version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.3.299
1.3.300
16 changes: 14 additions & 2 deletions src/Exomia.Vulkan.Api.Core/Enums/VkMemoryPropertyFlagBits.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,20 @@ public enum VkMemoryPropertyFlagBits
VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x20,

/// <summary>
/// VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD bit specifies that device accesses to allocations of this memory
/// type are automatically made available and visible.
/// VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD bit specifies that device accesses to allocations of this memory type
/// are automatically made
/// <a
/// href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible">
/// available
/// and visible
/// </a>
/// on the device. If paired with VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
/// <a
/// href="https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#synchronization-dependencies-available-and-visible">
/// memory
/// domain operations
/// </a>
/// are also performed automatically between host and device.
/// </summary>
VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x40,

Expand Down
18 changes: 18 additions & 0 deletions src/Exomia.Vulkan.Api.Core/Enums/VkStructureType.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5647,6 +5647,24 @@ public enum VkStructureType
/// </summary>
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,

/// <summary>
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV<br />
/// <a href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType">https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType</a>
/// </summary>
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,

/// <summary>
/// VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV<br />
/// <a href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType">https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType</a>
/// </summary>
VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,

/// <summary>
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV<br />
/// <a href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType">https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType</a>
/// </summary>
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,

/// <summary>
/// VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES<br />
/// <a href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType">https://www.khronos.org/registry/vulkan/specs/1.3-extensions/html/vkspec.html#VkStructureType</a>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ public unsafe struct VkPhysicalDeviceMeshShaderFeaturesEXT
public VkBool32 meshShader;

/// <summary>
/// multiviewMeshShader specifies whether the implementation supports multiviewrendering within a render pass,
/// multiviewMeshShader specifies whether the implementation supports multiview rendering within a render pass,
/// with mesh shaders. If this feature is not enabled, then a pipeline compiled against a subpass with a non-zero view
/// mask must not include a mesh shader.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ public static readonly delegate*<
/// <a href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyMemoryToMicromapEXT.html">https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdCopyMemoryToMicromapEXT.html</a>
/// </summary>
/// <param name="commandBuffer">commandBuffer is the command buffer into which the command will be recorded.</param>
/// <param name="pInfo">pInfo is a pointer to a VkCopyMicromapToMemoryInfoEXTstructure defining the copy operation.</param>
/// <param name="pInfo">pInfo is a pointer to a VkCopyMemoryToMicromapInfoEXTstructure defining the copy operation.</param>
public static readonly delegate*<
VkCommandBuffer /*commandBuffer*/,
VkCopyMemoryToMicromapInfoEXT* /*pInfo*/,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#region License

// Copyright (c) 2018-2024, exomia
// All rights reserved.
//
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree.

#endregion

// ReSharper disable UnusedMember.Global
// ReSharper disable InconsistentNaming
// ReSharper disable once CheckNamespace
namespace Exomia.Vulkan.Api.Core;

/// <summary>
/// VkCooperativeMatrixFlexibleDimensionsPropertiesNV - Structure specifying cooperative matrix properties -
/// <a
/// href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.html">
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.html
/// </a>
/// </summary>
/// <remarks>
/// <list type="table">
/// <item>
/// <term>returnedonly</term><description>true</description>
/// </item>
/// </list>
/// </remarks>
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV
{
/// <summary> The stype of this structure. </summary>
public const VkStructureType STYPE = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV;

/// <summary>sType is a VkStructureType value identifying this structure.</summary>
public VkStructureType sType;

/// <summary>pNext is NULL or a pointer to a structure extending this structure.</summary>
public void* pNext;

/// <summary>
/// MGranularity is the granularity of the number of rows in matrices A, C, and Result. The rows must be an
/// integer multiple of this value.
/// </summary>
public uint MGranularity;

/// <summary>
/// NGranularity is the granularity of columns in matrices B, C, Result. The columns must be an integer multiple
/// of this value.
/// </summary>
public uint NGranularity;

/// <summary>
/// KGranularity is the granularity of columns in matrix A and rows in matrix B. The columns/rows must be an
/// integer multiple of this value.
/// </summary>
public uint KGranularity;

/// <summary>AType is the component type of matrix A, of type VkComponentTypeKHR.</summary>
public VkComponentTypeKHR AType;

/// <summary>BType is the component type of matrix B, of type VkComponentTypeKHR.</summary>
public VkComponentTypeKHR BType;

/// <summary>CType is the component type of matrix C, of type VkComponentTypeKHR.</summary>
public VkComponentTypeKHR CType;

/// <summary>ResultType is the component type of matrix Result, of type VkComponentTypeKHR.</summary>
public VkComponentTypeKHR ResultType;

/// <summary>
/// saturatingAccumulation indicates whether the SaturatingAccumulation operand to
/// OpCooperativeMatrixMulAddKHRmust be present or not. If it is VK_TRUE, the SaturatingAccumulation operand must be
/// present. If it is VK_FALSE, the SaturatingAccumulation operand mustnot be present.
/// </summary>
public VkBool32 saturatingAccumulation;

/// <summary>scope is the scope of all the matrix types, of type VkScopeKHR.</summary>
public VkScopeKHR scope;

/// <summary>
/// workgroupInvocations is the number of invocations in the local workgroup when this combination of values is
/// supported.
/// </summary>
public uint workgroupInvocations;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
#region License

// Copyright (c) 2018-2024, exomia
// All rights reserved.
//
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree.

#endregion

global using static Exomia.Vulkan.Api.Core.VkNvCooperativeMatrix2;

#pragma warning disable CA2211 // Non-constant fields should not be visible
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member

// ReSharper disable UnusedMember.Global
// ReSharper disable InconsistentNaming
// ReSharper disable once CheckNamespace
namespace Exomia.Vulkan.Api.Core;

/// <summary>
/// VK_NV_cooperative_matrix2 - device extension (nr. 594) - author 'NV' [platform '' | contact 'Jeff Bolz
/// @jeffbolznv']<br />
/// <a href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_NV_cooperative_matrix2.html">https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_NV_cooperative_matrix2.html</a>
/// </summary>
[VkDepends("VK_KHR_cooperative_matrix")]
[VkDeviceExt]
public static unsafe class VkNvCooperativeMatrix2
{
/// <summary> The spec version. </summary>
public const uint VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION = 1;

/// <summary> The extension name. </summary>
public const string VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME = "VK_NV_cooperative_matrix2";

/// <summary>
/// An UTF8 null terminated version of <see cref="VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME" /> represented by an
/// UTF16 string.
/// </summary>
/// <remarks>
/// Example usage:<br />
/// <br />
/// fixed(char* ptr = VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME_UTF8_NT) {<br />
/// sbyte* utf8NtPtr = (sbyte*)ptr; // utf8NtPtr - can now be passed and used directly as a utf8_nt string for
/// unmanaged code.<br />
/// }
/// </remarks>
public const string VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME_UTF8_NT =
"\u4b56\u4e5f\u5f56\u4f43\u504f\u5245\u5441\u5649\u5f45\u414d\u5254\u5849\u325f\u455f\u5458\u4e45\u4953\u4e4f\u4e5f\u4d41\u0045";

/// <summary>
/// vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV - Returns properties describing what cooperative
/// matrix types are supported -
/// <a
/// href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.html">
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.html
/// </a>
/// </summary>
/// <param name="physicalDevice">physicalDevice is the physical device.</param>
/// <param name="pPropertyCount">
/// pPropertyCount is a pointer to an integer related to the number of cooperative matrix
/// properties available or queried.
/// </param>
/// <param name="pProperties">
/// pProperties is either NULL or a pointer to an array of
/// VkCooperativeMatrixFlexibleDimensionsPropertiesNV structures.
/// </param>
/// <remarks>
/// <list type="table">
/// <item>
/// <term>successcodes</term><description>VK_SUCCESS,VK_INCOMPLETE</description>
/// </item>
/// <item>
/// <term>errorcodes</term><description>VK_ERROR_OUT_OF_HOST_MEMORY,VK_ERROR_OUT_OF_DEVICE_MEMORY</description>
/// </item>
/// </list>
/// </remarks>
public static readonly delegate*<
VkPhysicalDevice /*physicalDevice*/,
uint* /*pPropertyCount*/,
VkCooperativeMatrixFlexibleDimensionsPropertiesNV* /*pProperties*/,
VkResult> vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = null;

/// <summary> Loads all function pointer based on the instance for this extension. (see remarks!) </summary>
/// <param name="instance"> The instance that the function pointers will be compatible with. </param>
/// <remarks>
/// This load method makes the following function pointers available:<br />
/// <list type="bullet">
/// <item>
/// <description>vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV</description>
/// </item>
/// </list>
/// </remarks>
public static void Load(VkInstance instance)
{
fixed (delegate*<VkPhysicalDevice, uint*, VkCooperativeMatrixFlexibleDimensionsPropertiesNV*, VkResult>* pvkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV =
&vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)
{
*pvkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV = (delegate*<VkPhysicalDevice, uint*, VkCooperativeMatrixFlexibleDimensionsPropertiesNV*, VkResult>)GetVkFunction(
instance,
"\u6b76\u6547\u5074\u7968\u6973\u6163\u446c\u7665\u6369\u4365\u6f6f\u6570\u6172\u6974\u6576\u614d\u7274\u7869\u6c46\u7865\u6269\u656c\u6944\u656d\u736e\u6f69\u736e\u7250\u706f\u7265\u6974\u7365\u564e\u0000");
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#region License

// Copyright (c) 2018-2024, exomia
// All rights reserved.
//
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree.

#endregion

// ReSharper disable UnusedMember.Global
// ReSharper disable InconsistentNaming
// ReSharper disable once CheckNamespace
namespace Exomia.Vulkan.Api.Core;

/// <summary>
/// VkPhysicalDeviceCooperativeMatrix2FeaturesNV - Structure describing cooperative matrix features that can be
/// supported by an implementation -
/// <a
/// href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.html">
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.html
/// </a>
/// </summary>
/// <remarks>
/// <list type="table">
/// <item>
/// <term>structextends</term><description>VkPhysicalDeviceFeatures2,VkDeviceCreateInfo</description>
/// </item>
/// </list>
/// </remarks>
[VkStructExtends("VkPhysicalDeviceFeatures2,VkDeviceCreateInfo")]
[StructLayout(LayoutKind.Sequential)]
public unsafe struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV
{
/// <summary> The stype of this structure. </summary>
public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV;

/// <summary>sType is a VkStructureType value identifying this structure.</summary>
public VkStructureType sType;

/// <summary>pNext is NULL or a pointer to a structure extending this structure.</summary>
public void* pNext;

/// <summary>
/// cooperativeMatrixWorkgroupScope indicates that the implementation supports workgroup scope cooperative
/// matrices.
/// </summary>
public VkBool32 cooperativeMatrixWorkgroupScope;

/// <summary>
/// cooperativeMatrixFlexibleDimensions indicates that the implementation supports cooperative matrix sizes that
/// are a multiple of the granularity advertised in VkCooperativeMatrixFlexibleDimensionsPropertiesNV.
/// </summary>
public VkBool32 cooperativeMatrixFlexibleDimensions;

/// <summary>
/// cooperativeMatrixReductions indicates that the implementation supports the CooperativeMatrixReductionsNV
/// SPIR-V capability. This allows performing (row, column, 2x2, or all element) reductions on matrices.
/// </summary>
public VkBool32 cooperativeMatrixReductions;

/// <summary>
/// cooperativeMatrixConversions indicates that the implementation supports the CooperativeMatrixConversionsNV
/// SPIR-V capability. This allows converting accumulator matrices to A or B matrices.
/// </summary>
public VkBool32 cooperativeMatrixConversions;

/// <summary>
/// cooperativeMatrixPerElementOperations indicates that the implementation supports the
/// CooperativeMatrixPerElementOperationsNVSPIR-V capability. This allows performing element-wise operations on matrix
/// elements using a callback function.
/// </summary>
public VkBool32 cooperativeMatrixPerElementOperations;

/// <summary>
/// cooperativeMatrixTensorAddressing indicates that the implementation supports the TensorAddressingNV and
/// CooperativeMatrixTensorAddressingNV SPIR-V capabilities. This allows using tensor layout and tensor view types for
/// matrix loads and stores.
/// </summary>
public VkBool32 cooperativeMatrixTensorAddressing;

/// <summary>
/// cooperativeMatrixBlockLoads indicates that the implementation supports the CooperativeMatrixBlockLoadsNV
/// SPIR-V capability. This allows setting block size for loads and using a callback function to decode block elements.
/// </summary>
public VkBool32 cooperativeMatrixBlockLoads;
}
Loading

0 comments on commit 530e300

Please sign in to comment.