diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2019-08-28 06:44:40 +0200 |
|---|---|---|
| committer | j-p <jp_bruyere@hotmail.com> | 2019-08-28 11:32:06 +0200 |
| commit | 81a7e4d09b32b1485a24526ac2fc1633411177aa (patch) | |
| tree | bca3b8606f9877502d88be4103c54acb2f48adcd | |
| parent | 804b9b713e0324aa93fc2f6545d0b8ad13deec38 (diff) | |
debug resources
| -rw-r--r-- | samples/Directory.Build.props | 2 | ||||
| -rw-r--r-- | samples/Model/main.cs | 3 | ||||
| -rw-r--r-- | samples/Model/shaders/model.vert | 2 | ||||
| -rw-r--r-- | samples/deferred/main.cs | 19 | ||||
| -rw-r--r-- | testGlslc/Program.cs | 70 | ||||
| -rw-r--r-- | testGlslc/testGlslc.csproj | 8 | ||||
| -rw-r--r-- | vk.net.sln | 2 | ||||
| -rw-r--r-- | vke/src/MemoryPool.cs | 4 | ||||
| -rw-r--r-- | vke/src/base/FrameBuffer.cs | 1 | ||||
| -rw-r--r-- | vke/src/base/Image.cs | 2 | ||||
| -rw-r--r-- | vke/src/base/Resource.cs | 6 |
11 files changed, 99 insertions, 20 deletions
diff --git a/samples/Directory.Build.props b/samples/Directory.Build.props index 67822eb..483cac6 100644 --- a/samples/Directory.Build.props +++ b/samples/Directory.Build.props @@ -26,7 +26,7 @@ <Reference Include="System" /> </ItemGroup> - <ItemGroup> + <ItemGroup> <ProjectReference Include="$(RootDirectory)vke\CVKL.csproj" /> </ItemGroup> diff --git a/samples/Model/main.cs b/samples/Model/main.cs index 93d5d72..02dc7be 100644 --- a/samples/Model/main.cs +++ b/samples/Model/main.cs @@ -50,8 +50,7 @@ namespace ModelSample { CVKL.DebugUtils.Messenger dbgmsg; Program () : base () { - if (Instance.DEBUG_UTILS) - dbgmsg = new CVKL.DebugUtils.Messenger (instance); + descriptorPool = new DescriptorPool (dev, 2, new VkDescriptorPoolSize (VkDescriptorType.UniformBuffer), diff --git a/samples/Model/shaders/model.vert b/samples/Model/shaders/model.vert index fae6be3..c4dbfb8 100644 --- a/samples/Model/shaders/model.vert +++ b/samples/Model/shaders/model.vert @@ -28,7 +28,7 @@ layout(push_constant) uniform PushConsts { mat4 model; } pc; -vec3 light = vec3(10.0,.0,-10.0); +vec3 light = vec3(2.0,2.0,-2.0); void main() { diff --git a/samples/deferred/main.cs b/samples/deferred/main.cs index 8f59c11..d3c78de 100644 --- a/samples/deferred/main.cs +++ b/samples/deferred/main.cs @@ -9,16 +9,16 @@ namespace deferred { class Deferred : VkWindow { static void Main (string[] args) { - Instance.VALIDATION = true; - Instance.DEBUG_UTILS = true; - Instance.RENDER_DOC_CAPTURE = true; + //Instance.VALIDATION = true; + //Instance.DEBUG_UTILS = true; + //Instance.RENDER_DOC_CAPTURE = true; DeferredPbrRenderer.TEXTURE_ARRAY = true; - DeferredPbrRenderer.NUM_SAMPLES = VkSampleCountFlags.SampleCount2; + DeferredPbrRenderer.NUM_SAMPLES = VkSampleCountFlags.SampleCount1; DeferredPbrRenderer.HDR_FORMAT = VkFormat.R16g16b16a16Sfloat; DeferredPbrRenderer.MRT_FORMAT = VkFormat.R32g32b32a32Sfloat; - PbrModelTexArray.TEXTURE_DIM = 512; + PbrModelTexArray.TEXTURE_DIM = 1024; using (Deferred vke = new Deferred ()) { vke.Run (); @@ -71,7 +71,6 @@ namespace deferred { GraphicPipeline plToneMap; Framebuffer[] frameBuffers; DescriptorPool descriptorPool; - DescriptorSetLayout dsLayout; DescriptorSet descriptorSet; @@ -176,7 +175,7 @@ namespace deferred { plBlur.Bind (cmd); pcBloom.dir = 0; - + /* plBlur.BindDescriptorSet (cmd, dsetBlurPing); cmd.PushConstant (plBlur.Layout, VkShaderStageFlags.Compute, pcBloom); cmd.Dispatch (downSamp.Width / 16, downSamp.Height / 16); @@ -191,13 +190,13 @@ namespace deferred { downSamp.SetLayout (cmd, VkImageAspectFlags.Color, VkAccessFlags.MemoryWrite, VkAccessFlags.ShaderRead, VkImageLayout.General, VkImageLayout.ShaderReadOnlyOptimal, - VkPipelineStageFlags.ComputeShader, VkPipelineStageFlags.FragmentShader); - /* + VkPipelineStageFlags.ComputeShader, VkPipelineStageFlags.FragmentShader);*/ + downSamp.SetLayout (cmd, VkImageAspectFlags.Color, VkAccessFlags.TransferWrite, VkAccessFlags.ShaderRead, VkImageLayout.TransferDstOptimal, VkImageLayout.ShaderReadOnlyOptimal, VkPipelineStageFlags.Transfer, VkPipelineStageFlags.FragmentShader); - */ + cmd.End (); } diff --git a/testGlslc/Program.cs b/testGlslc/Program.cs new file mode 100644 index 0000000..0aee4a1 --- /dev/null +++ b/testGlslc/Program.cs @@ -0,0 +1,70 @@ +using System; +using System.Diagnostics; +using System.IO; + +namespace testGlslc { + class Program { + static void Main (string[] args) { + + string SourceFile = "/mnt/devel/gts/vk.net/samples/Triangle/shaders/triangle.frag"; + string DestinationFile = "/tmp/triangle.frag.spv"; + + + string glslcPath = Path.Combine (Environment.GetEnvironmentVariable ("VULKAN_SDK"), "bin"); + glslcPath = Path.Combine (glslcPath, "glslc"); + + + + Process glslc = new Process (); + glslc.StartInfo.StandardOutputEncoding = System.Text.Encoding.ASCII; + glslc.StartInfo.StandardErrorEncoding = System.Text.Encoding.ASCII; + glslc.StartInfo.UseShellExecute = false; + glslc.StartInfo.RedirectStandardOutput = true; + glslc.StartInfo.RedirectStandardError = true; + glslc.StartInfo.FileName = glslcPath; + glslc.StartInfo.Arguments = $"{SourceFile} -o {DestinationFile}"; + glslc.StartInfo.CreateNoWindow = true; + + glslc.EnableRaisingEvents = true; + glslc.OutputDataReceived += Glslc_OutputDataReceived; + glslc.ErrorDataReceived += Glslc_ErrorDataReceived; + + glslc.Start (); + + + + glslc.BeginErrorReadLine (); + glslc.BeginOutputReadLine (); + + + glslc.WaitForExit (); + + + } + + static void Glslc_ErrorDataReceived (object sender, DataReceivedEventArgs e) { + if (e.Data == null) + return; + if (string.Equals (e.Data, "(0)", StringComparison.Ordinal)) + return; + string[] tmp = e.Data.Split (':'); + if (tmp.Length == 5) { + int line = int.Parse (tmp[1]); + Console.WriteLine ($"file: {tmp[0]} line:{line}"); + } else { + tmp = e.Data.Split (' '); + Console.WriteLine ($"error count = {int.Parse (tmp[0])}"); + } + Console.WriteLine ($"=> {e.Data}"); + } + + + static void Glslc_OutputDataReceived (object sender, DataReceivedEventArgs e) { + if (e.Data == null) + return; + if (string.Equals (e.Data, "(0)", StringComparison.Ordinal)) + return; + Console.WriteLine (e.Data); + } + } +} diff --git a/testGlslc/testGlslc.csproj b/testGlslc/testGlslc.csproj new file mode 100644 index 0000000..5d175c8 --- /dev/null +++ b/testGlslc/testGlslc.csproj @@ -0,0 +1,8 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>net471</TargetFramework> + </PropertyGroup> + +</Project> @@ -31,7 +31,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "datas", "samples\datas\data EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "compute", "samples\compute\compute.csproj", "{D6B4200E-25FA-4AFD-BD9E-4240BAF1AFE4}" EndProject -Project("{9344BDBB-3E7F-41FC-A0DD-8665D75EE146}") = "Model", "samples\Model\Model.csproj", "{F134D6DF-893C-41B0-85FC-82E30773F3D5}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Model", "samples\Model\Model.csproj", "{F134D6DF-893C-41B0-85FC-82E30773F3D5}" EndProject Project("{9344BDBB-3E7F-41FC-A0DD-8665D75EE146}") = "tests", "samples\tests\tests.csproj", "{3FE2F866-C21D-4FED-B2F3-3385789165A2}" EndProject diff --git a/vke/src/MemoryPool.cs b/vke/src/MemoryPool.cs index 297b61a..1c5e3ab 100644 --- a/vke/src/MemoryPool.cs +++ b/vke/src/MemoryPool.cs @@ -86,7 +86,7 @@ namespace CVKL { previous.next = previous.previous = resource; } else { resource.next = previous.next; - previous.next = resource; + previous.next = resource.next.previous = resource; } } lastResource = resource; @@ -111,7 +111,7 @@ namespace CVKL { resource.next.previous = resource.previous; } } - resource.next = resource.previous = null; + resource.next = resource.previous = null; } public void Map (ulong size = Vk.WholeSize, ulong offset = 0) { diff --git a/vke/src/base/FrameBuffer.cs b/vke/src/base/FrameBuffer.cs index df608fd..2f668e0 100644 --- a/vke/src/base/FrameBuffer.cs +++ b/vke/src/base/FrameBuffer.cs @@ -73,6 +73,7 @@ namespace CVKL { v = new Image (renderPass.Dev, ad.format, usage, VkMemoryPropertyFlags.DeviceLocal, _width, _height, VkImageType.Image2D, ad.samples, VkImageTiling.Optimal, 1, createInfo.layers); + v.SetName ($"fbImg{i}"); v.CreateView (VkImageViewType.ImageView2D, aspectFlags); } else v.Activate ();//increase ref and create handle if not already activated diff --git a/vke/src/base/Image.cs b/vke/src/base/Image.cs index 797eb84..3787e3c 100644 --- a/vke/src/base/Image.cs +++ b/vke/src/base/Image.cs @@ -35,7 +35,7 @@ namespace CVKL { /// created for the same vkImage, you may call the constructor accepting a vkImage as parameter to import an existing one. vkImage handle of /// such imported image will not be disposed with the sampler and the view. /// </summary> - public class Image : Resource { + public class Image : Resource { public static VkFormat DefaultTextureFormat = VkFormat.R8g8b8a8Unorm; internal VkImage handle; diff --git a/vke/src/base/Resource.cs b/vke/src/base/Resource.cs index ebde92b..f5b4c87 100644 --- a/vke/src/base/Resource.cs +++ b/vke/src/base/Resource.cs @@ -1,4 +1,5 @@ using System; +using System.Diagnostics; using System.IO; using System.Runtime.InteropServices; using VK; @@ -6,7 +7,8 @@ using VK; using static VK.Vk; namespace CVKL { - public abstract class Resource : Activable { + [DebuggerDisplay ("{previous.name} <- {name} -> {next.name}")] + public abstract class Resource : Activable { protected VkMemoryRequirements memReqs; #if MEMORY_POOLS internal MemoryPool memoryPool; @@ -102,5 +104,5 @@ namespace CVKL { base.Dispose (disposing); } #endregion - } + } }
\ No newline at end of file |