aboutsummaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2019-08-28 06:44:40 +0200
committerj-p <jp_bruyere@hotmail.com>2019-08-28 11:32:06 +0200
commit81a7e4d09b32b1485a24526ac2fc1633411177aa (patch)
treebca3b8606f9877502d88be4103c54acb2f48adcd
parent804b9b713e0324aa93fc2f6545d0b8ad13deec38 (diff)
debug resources
-rw-r--r--samples/Directory.Build.props2
-rw-r--r--samples/Model/main.cs3
-rw-r--r--samples/Model/shaders/model.vert2
-rw-r--r--samples/deferred/main.cs19
-rw-r--r--testGlslc/Program.cs70
-rw-r--r--testGlslc/testGlslc.csproj8
-rw-r--r--vk.net.sln2
-rw-r--r--vke/src/MemoryPool.cs4
-rw-r--r--vke/src/base/FrameBuffer.cs1
-rw-r--r--vke/src/base/Image.cs2
-rw-r--r--vke/src/base/Resource.cs6
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>
diff --git a/vk.net.sln b/vk.net.sln
index 0a5b91e..c4e2cba 100644
--- a/vk.net.sln
+++ b/vk.net.sln
@@ -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