From 76327261c36184681dae42cdc3999620264f2a78 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Sun, 9 Oct 2022 18:32:59 +0200 Subject: [PATCH] compute shader debug --- .vscode/launch.json | 33 ++++++++++++++++++++++++++ .vscode/tasks.json | 42 +++++++++++++++++++++++++++++++++ Directory.Build.props | 2 +- samples/compute/delaunay.cs | 9 ++++--- samples/compute/main.cs | 2 +- samples/compute/test2.cs | 4 ++-- vke/src/ShaderInfo.cs | 1 + vke/src/base/ComputePipeline.cs | 2 +- 8 files changed, 85 insertions(+), 10 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 39584b8..541a0b7 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -43,6 +43,17 @@ "stopAtEntry": false, "console": "internalConsole" }, + { + "name": ".NET Core Launch (Compute)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build Compute", + "program": "${workspaceFolder}/build/Debug/netcoreapp3.1/compute", + "args": [], + "cwd": "${workspaceFolder}/build/Debug/netcoreapp3.1/", + "stopAtEntry": false, + "console": "internalConsole" + }, { "name": ".NET Core Launch (ExternalMemmories)", "type": "coreclr", @@ -109,6 +120,28 @@ "console": "internalConsole", "stopAtEntry": false }, + { + "name": ".NET Core Launch (Multithreading)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build Multithreading", + "program": "${workspaceFolder}/build/Debug/netcoreapp3.1/Multithreading", + "args": [], + "cwd": "${workspaceFolder}/build/Debug/netcoreapp3.1/", + "console": "internalConsole", + "stopAtEntry": false + }, + { + "name": ".NET Core Launch (Multithreading2)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build Multithreading2", + "program": "${workspaceFolder}/build/Debug/netcoreapp3.1/Multithreading2", + "args": [], + "cwd": "${workspaceFolder}/build/Debug/netcoreapp3.1/", + "console": "internalConsole", + "stopAtEntry": false + }, { "name": ".NET Core Attach", "type": "coreclr", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index b58cf5b..504ba80 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -43,6 +43,20 @@ ], "problemMatcher": "$msCompile" }, + { + "label": "build Compute", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/samples/compute/compute.csproj", + "/property:GenerateFullPaths=true", + "/property:SolutionDir=${workspaceFolder}/", + "/property:Configuration=Debug", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, { "label": "build Textured", "command": "dotnet", @@ -127,6 +141,34 @@ ], "problemMatcher": "$msCompile" }, + { + "label": "build Multithreading", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/samples/Multithreading/Multithreading.csproj", + "/property:GenerateFullPaths=true", + "/property:SolutionDir=${workspaceFolder}/", + "/property:Configuration=Debug", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "build Multithreading2", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/samples/Multithreading2/Multithreading2.csproj", + "/property:GenerateFullPaths=true", + "/property:SolutionDir=${workspaceFolder}/", + "/property:Configuration=Debug", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, { "label": "publish", "command": "dotnet", diff --git a/Directory.Build.props b/Directory.Build.props index c3ea0bb..022e6ea 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -4,7 +4,7 @@ $(SolutionDir)build\$(Configuration)\ 0.1.45 $(SpirVTasksReleaseVersion) - 0.2.6 + 0.2.7 $(VkeReleaseVersion)-beta true false diff --git a/samples/compute/delaunay.cs b/samples/compute/delaunay.cs index be01407..d404ce1 100644 --- a/samples/compute/delaunay.cs +++ b/samples/compute/delaunay.cs @@ -95,7 +95,7 @@ namespace delaunay { grPipeline = new GraphicPipeline (cfg); - cfg.DisposeShaders (); + //cfg.DisposeShaders (); plCompute = new ComputePipeline ( new PipelineLayout (dev, new VkPushConstantRange (VkShaderStageFlags.Compute, 2 * sizeof (int)), dslCompute), @@ -192,7 +192,7 @@ namespace delaunay { cmd.Dispatch (imgDim, imgDim); - VkMemoryBarrier memBar = VkMemoryBarrier.New (); + VkMemoryBarrier memBar = new VkMemoryBarrier(); memBar.srcAccessMask = VkAccessFlags.ShaderWrite; memBar.dstAccessMask = VkAccessFlags.ShaderRead; Vk.vkCmdPipelineBarrier (cmd.Handle, VkPipelineStageFlags.ComputeShader, VkPipelineStageFlags.ComputeShader, VkDependencyFlags.ByRegion, @@ -219,8 +219,7 @@ namespace delaunay { printResults (); } - - protected override void onMouseButtonDown (MouseButton button) { + protected override void onMouseButtonDown(MouseButton button, Modifier mods) { int xPad = (int)swapChain.Width / 2 - (int)imgDim * (int)zoom / 2; int yPad = (int)swapChain.Height / 2 - (int)imgDim * (int)zoom / 2; @@ -228,7 +227,7 @@ namespace delaunay { int localY = (int)((lastMouseY - yPad) / zoom); if (localX < 0 || localY < 0 || localX >= imgDim || localY >= imgDim) - base.onMouseButtonDown (button); + base.onMouseButtonDown (button, mods); else { addSeed ((uint)localX, (uint)localY); stagingDataBuff.Update (datas); diff --git a/samples/compute/main.cs b/samples/compute/main.cs index e91ccd9..29b244d 100644 --- a/samples/compute/main.cs +++ b/samples/compute/main.cs @@ -45,7 +45,7 @@ namespace SimpleCompute { dev = new Device (phy); computeQ = new Queue (dev, VkQueueFlags.Compute); - dev.Activate (default (VkPhysicalDeviceFeatures)); + dev.Activate (IntPtr.Zero, default (VkPhysicalDeviceFeatures)); createRandomDatas (); diff --git a/samples/compute/test2.cs b/samples/compute/test2.cs index 689e7e8..7b46d9f 100644 --- a/samples/compute/test2.cs +++ b/samples/compute/test2.cs @@ -2,8 +2,8 @@ using System.Numerics; using System.Runtime.InteropServices; using Glfw; -using VK; -using CVKL; +using Vulkan; +using vke; namespace triangulation { class Program : VkWindow { diff --git a/vke/src/ShaderInfo.cs b/vke/src/ShaderInfo.cs index 34138b5..b192a1a 100644 --- a/vke/src/ShaderInfo.cs +++ b/vke/src/ShaderInfo.cs @@ -56,6 +56,7 @@ namespace vke { /// destroyed on Dispose. /// public ShaderInfo (VkShaderStageFlags stageFlags, VkShaderModule module, SpecializationInfo specializationInfo = null, string entryPoint = "main") { + info = VkPipelineShaderStageCreateInfo.New; info.stage = stageFlags; info.pName = entryPoint; info.module = module; diff --git a/vke/src/base/ComputePipeline.cs b/vke/src/base/ComputePipeline.cs index efea103..492b6ad 100644 --- a/vke/src/base/ComputePipeline.cs +++ b/vke/src/base/ComputePipeline.cs @@ -33,7 +33,7 @@ namespace vke { Cache?.Activate (); using (ShaderInfo shader = new ShaderInfo (Dev, VkShaderStageFlags.Compute, SpirVPath)) { - VkComputePipelineCreateInfo info = default; + VkComputePipelineCreateInfo info = new VkComputePipelineCreateInfo(); info.layout = layout.Handle; info.stage = shader.Info; info.basePipelineHandle = 0; -- 2.47.3