Skip to content

Commit 35aa4d7

Browse files
authored
Add support for parsing array parameters in Vulkan commands (#432)
1 parent e609f2a commit 35aa4d7

File tree

13 files changed

+81
-5
lines changed

13 files changed

+81
-5
lines changed

build/cache/cl.json.gz

0 Bytes
Binary file not shown.

build/cache/gl.json.gz

4.3 KB
Binary file not shown.

build/cache/glcore.json.gz

4.98 KB
Binary file not shown.

build/cache/gles2.json.gz

3.87 KB
Binary file not shown.

build/cache/openxr.json.gz

0 Bytes
Binary file not shown.

build/cache/vulkan.json.gz

3.61 KB
Binary file not shown.

src/Core/Silk.NET.BuildTools/Converters/Khronos/ParameterDefinition.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,17 @@ public static ParameterDefinition CreateFromXml(XElement xe)
102102
}
103103
}
104104

105+
if (count == 0 && xe.Value.EndsWith(']'))
106+
{
107+
var val = xe.Value;
108+
var idx = val.LastIndexOf('[') + 1;
109+
if (idx != -1 && int.TryParse(val.Substring(idx, val.Length - idx - 1), out count))
110+
{
111+
// array parameters are pointers in disguise
112+
pointerLevel++;
113+
}
114+
}
115+
105116
var type = new TypeSpec(typeName, pointerLevel);
106117

107118
return new ParameterDefinition

src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.KHR/KhrFragmentShadingRate.gen.cs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,19 @@ public unsafe partial class KhrFragmentShadingRate : NativeExtension<Vk>
2222
public const string ExtensionName = "VK_KHR_fragment_shading_rate";
2323
/// <summary>To be documented.</summary>
2424
[NativeApi(EntryPoint = "vkCmdSetFragmentShadingRateKHR")]
25-
public unsafe partial void CmdSetFragmentShadingRate([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] Extent2D* pFragmentSize, [Count(Count = 0)] FragmentShadingRateCombinerOpKHR combinerOps);
25+
public unsafe partial void CmdSetFragmentShadingRate([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] Extent2D* pFragmentSize, [Count(Count = 2), Flow(FlowDirection.In)] FragmentShadingRateCombinerOpKHR* combinerOps);
2626

2727
/// <summary>To be documented.</summary>
2828
[NativeApi(EntryPoint = "vkCmdSetFragmentShadingRateKHR")]
29-
public partial void CmdSetFragmentShadingRate([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] in Extent2D pFragmentSize, [Count(Count = 0)] FragmentShadingRateCombinerOpKHR combinerOps);
29+
public unsafe partial void CmdSetFragmentShadingRate([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] Extent2D* pFragmentSize, [Count(Count = 2), Flow(FlowDirection.In)] in FragmentShadingRateCombinerOpKHR combinerOps);
30+
31+
/// <summary>To be documented.</summary>
32+
[NativeApi(EntryPoint = "vkCmdSetFragmentShadingRateKHR")]
33+
public unsafe partial void CmdSetFragmentShadingRate([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] in Extent2D pFragmentSize, [Count(Count = 2), Flow(FlowDirection.In)] FragmentShadingRateCombinerOpKHR* combinerOps);
34+
35+
/// <summary>To be documented.</summary>
36+
[NativeApi(EntryPoint = "vkCmdSetFragmentShadingRateKHR")]
37+
public partial void CmdSetFragmentShadingRate([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] in Extent2D pFragmentSize, [Count(Count = 2), Flow(FlowDirection.In)] in FragmentShadingRateCombinerOpKHR combinerOps);
3038

3139
/// <summary>To be documented.</summary>
3240
[NativeApi(EntryPoint = "vkGetPhysicalDeviceFragmentShadingRatesKHR")]

src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.KHR/KhrFragmentShadingRateOverloads.gen.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,26 @@ namespace Silk.NET.Vulkan.Extensions.KHR
1717
public static class KhrFragmentShadingRateOverloads
1818
{
1919
/// <summary>To be documented.</summary>
20-
public static unsafe void CmdSetFragmentShadingRate(this KhrFragmentShadingRate thisApi, [Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan<Extent2D> pFragmentSize, [Count(Count = 0)] FragmentShadingRateCombinerOpKHR combinerOps)
20+
public static unsafe void CmdSetFragmentShadingRate(this KhrFragmentShadingRate thisApi, [Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] Extent2D* pFragmentSize, [Count(Count = 2), Flow(FlowDirection.In)] ReadOnlySpan<FragmentShadingRateCombinerOpKHR> combinerOps)
21+
{
22+
// SpanOverloader
23+
thisApi.CmdSetFragmentShadingRate(commandBuffer, pFragmentSize, in combinerOps.GetPinnableReference());
24+
}
25+
26+
/// <summary>To be documented.</summary>
27+
public static unsafe void CmdSetFragmentShadingRate(this KhrFragmentShadingRate thisApi, [Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan<Extent2D> pFragmentSize, [Count(Count = 2), Flow(FlowDirection.In)] FragmentShadingRateCombinerOpKHR* combinerOps)
2128
{
2229
// SpanOverloader
2330
thisApi.CmdSetFragmentShadingRate(commandBuffer, in pFragmentSize.GetPinnableReference(), combinerOps);
2431
}
2532

33+
/// <summary>To be documented.</summary>
34+
public static unsafe void CmdSetFragmentShadingRate(this KhrFragmentShadingRate thisApi, [Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0), Flow(FlowDirection.In)] ReadOnlySpan<Extent2D> pFragmentSize, [Count(Count = 2), Flow(FlowDirection.In)] ReadOnlySpan<FragmentShadingRateCombinerOpKHR> combinerOps)
35+
{
36+
// SpanOverloader
37+
thisApi.CmdSetFragmentShadingRate(commandBuffer, in pFragmentSize.GetPinnableReference(), in combinerOps.GetPinnableReference());
38+
}
39+
2640
/// <summary>To be documented.</summary>
2741
public static unsafe Result GetPhysicalDeviceFragmentShadingRates(this KhrFragmentShadingRate thisApi, [Count(Count = 0)] PhysicalDevice physicalDevice, [Count(Count = 0)] uint* pFragmentShadingRateCount, [Count(Computed = "pFragmentShadingRateCount"), Flow(FlowDirection.Out)] Span<PhysicalDeviceFragmentShadingRateKHR> pFragmentShadingRates)
2842
{

src/Vulkan/Extensions/Silk.NET.Vulkan.Extensions.NV/NVFragmentShadingRateEnums.gen.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@ public unsafe partial class NVFragmentShadingRateEnums : NativeExtension<Vk>
2222
public const string ExtensionName = "VK_NV_fragment_shading_rate_enums";
2323
/// <summary>To be documented.</summary>
2424
[NativeApi(EntryPoint = "vkCmdSetFragmentShadingRateEnumNV")]
25-
public partial void CmdSetFragmentShadingRateEnum([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0)] FragmentShadingRateNV shadingRate, [Count(Count = 0)] FragmentShadingRateCombinerOpKHR combinerOps);
25+
public unsafe partial void CmdSetFragmentShadingRateEnum([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0)] FragmentShadingRateNV shadingRate, [Count(Count = 2), Flow(FlowDirection.In)] FragmentShadingRateCombinerOpKHR* combinerOps);
26+
27+
/// <summary>To be documented.</summary>
28+
[NativeApi(EntryPoint = "vkCmdSetFragmentShadingRateEnumNV")]
29+
public partial void CmdSetFragmentShadingRateEnum([Count(Count = 0)] CommandBuffer commandBuffer, [Count(Count = 0)] FragmentShadingRateNV shadingRate, [Count(Count = 2), Flow(FlowDirection.In)] in FragmentShadingRateCombinerOpKHR combinerOps);
2630

2731
public NVFragmentShadingRateEnums(INativeContext ctx)
2832
: base(ctx)

0 commit comments

Comments
 (0)