-
-
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
6747175
commit 2227ee0
Showing
10 changed files
with
429 additions
and
52 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.254 | ||
1.3.255 |
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
54 changes: 54 additions & 0 deletions
54
src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_cooperative_matrix/VkComponentTypeKHR.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,54 @@ | ||
#region License | ||
|
||
// Copyright (c) 2018-2023, 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> | ||
/// VkComponentTypeKHR - Specify SPIR-V cooperative matrix component type - | ||
/// <a href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkComponentTypeKHR.html">https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkComponentTypeKHR.html</a> | ||
/// </summary> | ||
public enum VkComponentTypeKHR | ||
{ | ||
/// <summary>VK_COMPONENT_TYPE_FLOAT16_KHR corresponds to SPIR-V OpTypeFloat 16.</summary> | ||
VK_COMPONENT_TYPE_FLOAT16_KHR = 0, | ||
|
||
/// <summary>VK_COMPONENT_TYPE_FLOAT32_KHR corresponds to SPIR-V OpTypeFloat 32.</summary> | ||
VK_COMPONENT_TYPE_FLOAT32_KHR = 1, | ||
|
||
/// <summary>VK_COMPONENT_TYPE_FLOAT64_KHR corresponds to SPIR-V OpTypeFloat 64.</summary> | ||
VK_COMPONENT_TYPE_FLOAT64_KHR = 2, | ||
|
||
/// <summary>VK_COMPONENT_TYPE_SINT8_KHR corresponds to SPIR-V OpTypeInt 8 1.</summary> | ||
VK_COMPONENT_TYPE_SINT8_KHR = 3, | ||
|
||
/// <summary>VK_COMPONENT_TYPE_SINT16_KHR corresponds to SPIR-V OpTypeInt16 1.</summary> | ||
VK_COMPONENT_TYPE_SINT16_KHR = 4, | ||
|
||
/// <summary>VK_COMPONENT_TYPE_SINT32_KHR corresponds to SPIR-V OpTypeInt32 1.</summary> | ||
VK_COMPONENT_TYPE_SINT32_KHR = 5, | ||
|
||
/// <summary>VK_COMPONENT_TYPE_SINT64_KHR corresponds to SPIR-V OpTypeInt64 1.</summary> | ||
VK_COMPONENT_TYPE_SINT64_KHR = 6, | ||
|
||
/// <summary>VK_COMPONENT_TYPE_UINT8_KHR corresponds to SPIR-V OpTypeInt 8 0.</summary> | ||
VK_COMPONENT_TYPE_UINT8_KHR = 7, | ||
|
||
/// <summary>VK_COMPONENT_TYPE_UINT16_KHR corresponds to SPIR-V OpTypeInt16 0.</summary> | ||
VK_COMPONENT_TYPE_UINT16_KHR = 8, | ||
|
||
/// <summary>VK_COMPONENT_TYPE_UINT32_KHR corresponds to SPIR-V OpTypeInt32 0.</summary> | ||
VK_COMPONENT_TYPE_UINT32_KHR = 9, | ||
|
||
/// <summary>VK_COMPONENT_TYPE_UINT64_KHR corresponds to SPIR-V OpTypeInt64 0.</summary> | ||
VK_COMPONENT_TYPE_UINT64_KHR = 10 | ||
} |
64 changes: 64 additions & 0 deletions
64
...kan.Api.Core/Extensions/KHR/VK_KHR_cooperative_matrix/VkCooperativeMatrixPropertiesKHR.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,64 @@ | ||
#region License | ||
|
||
// Copyright (c) 2018-2023, 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> | ||
/// VkCooperativeMatrixPropertiesKHR - Structure specifying cooperative matrix properties - | ||
/// <a | ||
/// href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCooperativeMatrixPropertiesKHR.html"> | ||
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkCooperativeMatrixPropertiesKHR.html | ||
/// </a> | ||
/// </summary> | ||
[StructLayout(LayoutKind.Sequential)] | ||
public unsafe struct VkCooperativeMatrixPropertiesKHR | ||
{ | ||
/// <summary> The stype of this structure. </summary> | ||
public const VkStructureType STYPE = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR; | ||
|
||
/// <summary>sType is the type of this structure.</summary> | ||
public VkStructureType sType; | ||
|
||
/// <summary>pNext is NULL or a pointer to a structure extending this structure.</summary> | ||
public void* pNext; | ||
|
||
/// <summary>MSize is the number of rows in matrices A, C, and Result.</summary> | ||
public uint MSize; | ||
|
||
/// <summary>NSize is the number of columns in matrices B, C, Result.</summary> | ||
public uint NSize; | ||
|
||
/// <summary>KSize is the number of columns in matrix A and rows in matrix B.</summary> | ||
public uint KSize; | ||
|
||
/// <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. | ||
/// </summary> | ||
public VkBool32 saturatingAccumulation; | ||
|
||
/// <summary>scope is the scope of all the matrix types, of type VkScopeKHR.</summary> | ||
public VkScopeKHR scope; | ||
} |
101 changes: 101 additions & 0 deletions
101
...Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_cooperative_matrix/VkKhrCooperativeMatrix.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,101 @@ | ||
#region License | ||
|
||
// Copyright (c) 2018-2023, 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.VkKhrCooperativeMatrix; | ||
|
||
#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_KHR_cooperative_matrix - device extension (nr. 507) - author 'KHR' [platform '' | contact 'Kevin Petit | ||
/// @kevinpetit']<br /> | ||
/// <a href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_cooperative_matrix.html">https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_KHR_cooperative_matrix.html</a> | ||
/// </summary> | ||
[VkDepends("VK_KHR_get_physical_device_properties2")] | ||
public static unsafe class VkKhrCooperativeMatrix | ||
{ | ||
/// <summary> The spec version. </summary> | ||
public const uint VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION = 2; | ||
|
||
/// <summary> The extension name. </summary> | ||
public const string VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME = "VK_KHR_cooperative_matrix"; | ||
|
||
/// <summary> | ||
/// An UTF8 null terminated version of <see cref="VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME" /> represented by an | ||
/// UTF16 string. | ||
/// </summary> | ||
/// <remarks> | ||
/// Example usage:<br /> | ||
/// <br /> | ||
/// fixed(char* ptr = VK_KHR_COOPERATIVE_MATRIX_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_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME_UTF8_NT = | ||
"\u4b56\u4b5f\u5248\u435f\u4f4f\u4550\u4152\u4954\u4556\u4d5f\u5441\u4952\u5f58\u5845\u4554\u534e\u4f49\u5f4e\u414e\u454d\u0000"; | ||
|
||
/// <summary> | ||
/// vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR - Returns properties describing what cooperative matrix types are | ||
/// supported - | ||
/// <a | ||
/// href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.html"> | ||
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.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 VkCooperativeMatrixPropertiesKHR | ||
/// 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*/, | ||
VkCooperativeMatrixPropertiesKHR* /*pProperties*/, | ||
VkResult> vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = 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>vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR</description> | ||
/// </item> | ||
/// </list> | ||
/// </remarks> | ||
public static void Load(VkInstance instance) | ||
{ | ||
fixed (delegate*<VkPhysicalDevice, uint*, VkCooperativeMatrixPropertiesKHR*, VkResult>* pvkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = &vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR) | ||
{ | ||
*pvkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = (delegate*<VkPhysicalDevice, uint*, VkCooperativeMatrixPropertiesKHR*, VkResult>)GetVkFunction( | ||
instance, "\u6b76\u6547\u5074\u7968\u6973\u6163\u446c\u7665\u6369\u4365\u6f6f\u6570\u6172\u6974\u6576\u614d\u7274\u7869\u7250\u706f\u7265\u6974\u7365\u484b\u0052"); | ||
} | ||
} | ||
} |
52 changes: 52 additions & 0 deletions
52
.../Extensions/KHR/VK_KHR_cooperative_matrix/VkPhysicalDeviceCooperativeMatrixFeaturesKHR.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,52 @@ | ||
#region License | ||
|
||
// Copyright (c) 2018-2023, 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> | ||
/// VkPhysicalDeviceCooperativeMatrixFeaturesKHR - 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/VkPhysicalDeviceCooperativeMatrixFeaturesKHR.html"> | ||
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCooperativeMatrixFeaturesKHR.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 VkPhysicalDeviceCooperativeMatrixFeaturesKHR | ||
{ | ||
/// <summary> The stype of this structure. </summary> | ||
public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR; | ||
|
||
/// <summary>sType is the type of this structure.</summary> | ||
public VkStructureType sType; | ||
|
||
/// <summary>pNext is NULL or a pointer to a structure extending this structure.</summary> | ||
public void* pNext; | ||
|
||
/// <summary> cooperativeMatrix indicates that the implementation supports the CooperativeMatrixKHR SPIR-V capability.</summary> | ||
public VkBool32 cooperativeMatrix; | ||
|
||
/// <summary> | ||
/// cooperativeMatrixRobustBufferAccess indicates that the implementation supports robust buffer access for SPIR-V | ||
/// OpCooperativeMatrixLoadKHR and OpCooperativeMatrixStoreKHRinstructions. | ||
/// </summary> | ||
public VkBool32 cooperativeMatrixRobustBufferAccess; | ||
} |
53 changes: 53 additions & 0 deletions
53
...xtensions/KHR/VK_KHR_cooperative_matrix/VkPhysicalDeviceCooperativeMatrixPropertiesKHR.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,53 @@ | ||
#region License | ||
|
||
// Copyright (c) 2018-2023, 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> | ||
/// VkPhysicalDeviceCooperativeMatrixPropertiesKHR - Structure describing cooperative matrix properties supported by an | ||
/// implementation - | ||
/// <a | ||
/// href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCooperativeMatrixPropertiesKHR.html"> | ||
/// https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkPhysicalDeviceCooperativeMatrixPropertiesKHR.html | ||
/// </a> | ||
/// </summary> | ||
/// <remarks> | ||
/// <list type="table"> | ||
/// <item> | ||
/// <term>structextends</term><description>VkPhysicalDeviceProperties2</description> | ||
/// </item> | ||
/// <item> | ||
/// <term>returnedonly</term><description>true</description> | ||
/// </item> | ||
/// </list> | ||
/// </remarks> | ||
[VkStructExtends("VkPhysicalDeviceProperties2")] | ||
[StructLayout(LayoutKind.Sequential)] | ||
public unsafe struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR | ||
{ | ||
/// <summary> The stype of this structure. </summary> | ||
public const VkStructureType STYPE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR; | ||
|
||
/// <summary>sType is the type of this structure.</summary> | ||
public VkStructureType sType; | ||
|
||
/// <summary>pNext is NULL or a pointer to a structure extending this structure.</summary> | ||
public void* pNext; | ||
|
||
/// <summary> | ||
/// cooperativeMatrixSupportedStages is a bitfield of VkShaderStageFlagBits describing the shader stages that | ||
/// cooperative matrix instructions are supported in. cooperativeMatrixSupportedStages will have the | ||
/// VK_SHADER_STAGE_COMPUTE_BIT bit set if any of the physical device’s queues support VK_QUEUE_COMPUTE_BIT. | ||
/// </summary> | ||
public VkShaderStageFlags cooperativeMatrixSupportedStages; | ||
} |
33 changes: 33 additions & 0 deletions
33
src/Exomia.Vulkan.Api.Core/Extensions/KHR/VK_KHR_cooperative_matrix/VkScopeKHR.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,33 @@ | ||
#region License | ||
|
||
// Copyright (c) 2018-2023, 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> | ||
/// VkScopeKHR - Specify SPIR-V scope - | ||
/// <a href="https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkScopeKHR.html">https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VkScopeKHR.html</a> | ||
/// </summary> | ||
public enum VkScopeKHR | ||
{ | ||
/// <summary>VK_SCOPE_DEVICE_KHR corresponds to SPIR-V Device scope.</summary> | ||
VK_SCOPE_DEVICE_KHR = 1, | ||
|
||
/// <summary>VK_SCOPE_WORKGROUP_KHR corresponds to SPIR-V Workgroup scope.</summary> | ||
VK_SCOPE_WORKGROUP_KHR = 2, | ||
|
||
/// <summary>VK_SCOPE_SUBGROUP_KHR corresponds to SPIR-V Subgroup scope.</summary> | ||
VK_SCOPE_SUBGROUP_KHR = 3, | ||
|
||
/// <summary>VK_SCOPE_QUEUE_FAMILY_KHR corresponds to SPIR-V QueueFamilyscope.</summary> | ||
VK_SCOPE_QUEUE_FAMILY_KHR = 5 | ||
} |
Oops, something went wrong.