-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
aca41d5
commit 530e300
Showing
10 changed files
with
378 additions
and
6 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
1.3.299 | ||
1.3.300 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
87 changes: 87 additions & 0 deletions
87
...ensions/NV/VK_NV_cooperative_matrix2/VkCooperativeMatrixFlexibleDimensionsPropertiesNV.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} |
104 changes: 104 additions & 0 deletions
104
src/Exomia.Vulkan.Api.Core/Extensions/NV/VK_NV_cooperative_matrix2/VkNvCooperativeMatrix2.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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"); | ||
} | ||
} | ||
} |
87 changes: 87 additions & 0 deletions
87
...e/Extensions/NV/VK_NV_cooperative_matrix2/VkPhysicalDeviceCooperativeMatrix2FeaturesNV.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | ||
} |
Oops, something went wrong.