diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2019-08-28 11:59:29 +0200 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2019-08-28 12:05:59 +0200 |
| commit | 9c166c3c6ed7239e0743049f753426cc2730dc4b (patch) | |
| tree | 5f49ee10a230d129ef4fe821b6fa7085a0181a11 | |
| parent | 81a7e4d09b32b1485a24526ac2fc1633411177aa (diff) | |
debug resize in deferred
| -rw-r--r-- | samples/deferred/DeferredPbrRenderer.cs (renamed from samples/deferred/deferredPbrRenderer.cs) | 30 | ||||
| -rw-r--r-- | samples/hdr/Program.cs | 35 | ||||
| -rw-r--r-- | vke/src/base/RenderPass.cs | 16 | ||||
| -rw-r--r-- | vke/src/base/SubPass.cs | 7 |
4 files changed, 24 insertions, 64 deletions
diff --git a/samples/deferred/deferredPbrRenderer.cs b/samples/deferred/DeferredPbrRenderer.cs index 0a898da..bab629f 100644 --- a/samples/deferred/deferredPbrRenderer.cs +++ b/samples/deferred/DeferredPbrRenderer.cs @@ -32,6 +32,7 @@ namespace deferred { public int lightNumDebug = 0; public int debugMip = 0; public int debugFace = 0; + const float lightMoveSpeed = 0.1f; public float exposure = 2.0f; public float gamma = 1.2f; @@ -367,6 +368,7 @@ namespace deferred { cmd.BindDescriptorSet (gBuffPipeline.Layout, dsMain); envCube.RecordDraw (cmd); + renderPass.BeginSubPass (cmd); if (model != null) { @@ -394,29 +396,10 @@ namespace deferred { cmd.Draw (3, 1, 0, 0); //renderPass.BeginSubPass (cmd); - //toneMappingPipeline.Bind (cmd); //cmd.Draw (3, 1, 0, 0); renderPass.End (cmd); - - /*downSamp.SetLayout (cmd, VkImageAspectFlags.Color, VkImageLayout.ShaderReadOnlyOptimal, VkImageLayout.TransferDstOptimal, - VkPipelineStageFlags.FragmentShader, VkPipelineStageFlags.Transfer);*/ - - /*===== - =========*/ - - /* - */ - - /*====== - downSamp.SetLayout (cmd, VkImageAspectFlags.Color, - VkAccessFlags.ShaderWrite, VkAccessFlags.ShaderRead, - VkImageLayout.General, VkImageLayout.ShaderReadOnlyOptimal, - VkPipelineStageFlags.ComputeShader, VkPipelineStageFlags.FragmentShader); - =======*/ - - } public void MoveLight (Vector4 dir) { @@ -446,7 +429,6 @@ namespace deferred { #endregion - const int blurScale = 4; void createGBuff () { gbColorRough?.Dispose (); @@ -495,6 +477,9 @@ namespace deferred { } public void Resize (uint width, uint height) { + this.width = width; + this.height = height; + frameBuffer?.Dispose (); createGBuff (); @@ -517,11 +502,6 @@ namespace deferred { hdrImgMS?.Dispose (); hdrImgResolved.Dispose (); - //downSamp.Dispose (); - //downSamp2.Dispose (); - //plBlur.Dispose (); - //dsLayoutBlur.Dispose (); - gBuffPipeline.Dispose (); composePipeline.Dispose (); //toneMappingPipeline.Dispose (); diff --git a/samples/hdr/Program.cs b/samples/hdr/Program.cs index 0f34ddf..2f030a7 100644 --- a/samples/hdr/Program.cs +++ b/samples/hdr/Program.cs @@ -13,42 +13,8 @@ namespace tests { } } - DebugReport dbgReport; - CVKL.DebugUtils.Messenger msg; - - Image img; Program () : base () { - msg = new CVKL.DebugUtils.Messenger (instance); - - dbgReport = new DebugReport (instance, - VkDebugReportFlagsEXT.DebugEXT | - VkDebugReportFlagsEXT.ErrorEXT | - VkDebugReportFlagsEXT.WarningEXT | - VkDebugReportFlagsEXT.PerformanceWarningEXT | - VkDebugReportFlagsEXT.InformationEXT); - - - CommandBuffer cmd = cmdPool.AllocateAndStart (VkCommandBufferUsageFlags.OneTimeSubmit); - - using (StbImage stbi = new StbImage ("data/textures/texture.jpg")) { - - img = new Image (dev, VkFormat.R8g8b8a8Unorm, VkImageUsageFlags.TransferSrc | VkImageUsageFlags.TransferDst, - VkMemoryPropertyFlags.DeviceLocal, (uint)stbi.Width, (uint)stbi.Height, VkImageType.Image2D, - VkSampleCountFlags.SampleCount1, VkImageTiling.Optimal, Image.ComputeMipLevels (stbi.Width, stbi.Height)); - - using (HostBuffer stag = new HostBuffer (dev, VkBufferUsageFlags.TransferSrc, (ulong)stbi.Size, stbi.Handle)) { - - stag.CopyTo (cmd, img, VkImageLayout.TransferSrcOptimal); - img.BuildMipmaps (cmd); - - cmd.End (); - presentQueue.Submit (cmd); - presentQueue.WaitIdle (); - cmd.Free (); - - } - } } @@ -57,7 +23,6 @@ namespace tests { protected override void Dispose (bool disposing) { if (disposing) { if (!isDisposed) { - dbgReport?.Dispose (); } } base.Dispose (); diff --git a/vke/src/base/RenderPass.cs b/vke/src/base/RenderPass.cs index 69203aa..40401d5 100644 --- a/vke/src/base/RenderPass.cs +++ b/vke/src/base/RenderPass.cs @@ -44,6 +44,7 @@ namespace CVKL { => new VkDebugMarkerObjectNameInfoEXT(VkDebugReportObjectTypeEXT.RenderPassEXT, handle.Handle); #region CTORS + public RenderPass (Device device, VkSampleCountFlags samples = VkSampleCountFlags.SampleCount1) : base(device) { Samples = samples; } @@ -175,8 +176,16 @@ namespace CVKL { finalLayout = finalLayout, }); } + //public void AddDependency (SubPass srcSubpass, SubPass dstSubpass, + // VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, + // VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, + // VkDependencyFlags dependencyFlags = VkDependencyFlags.ByRegion) { + + // AddDependency (srcSubpass.Index, dstSubpass.Index, srcStageMask, dstStageMask, + // srcAccessMask, dstAccessMask, dependencyFlags); + //} - public void AddDependency (uint srcSubpass, uint dstSubpass, + public void AddDependency (uint srcSubpass, uint dstSubpass, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkDependencyFlags dependencyFlags = VkDependencyFlags.ByRegion) { @@ -191,7 +200,10 @@ namespace CVKL { }); } public void AddSubpass (params SubPass[] subPass) { - subpasses.AddRange (subPass); + for (uint i = 0; i < subPass.Length; i++) { + subPass[i].Index = (uint)subpasses.Count + i; + subpasses.Add (subPass[i]); + } } /// <summary> /// Begin Render pass with framebuffer extent dimensions diff --git a/vke/src/base/SubPass.cs b/vke/src/base/SubPass.cs index e0998e8..2396cdb 100644 --- a/vke/src/base/SubPass.cs +++ b/vke/src/base/SubPass.cs @@ -28,7 +28,8 @@ using VK; namespace CVKL { public class SubPass { - List<VkAttachmentReference> colorRefs = new List<VkAttachmentReference>(); + public uint Index { get; internal set; } + List<VkAttachmentReference> colorRefs = new List<VkAttachmentReference>(); List<VkAttachmentReference> inputRefs = new List<VkAttachmentReference>(); MarshaledObject<VkAttachmentReference> depthRef; List<VkAttachmentReference> resolveRefs = new List<VkAttachmentReference>(); @@ -113,5 +114,7 @@ namespace CVKL { if (resolveRefs.Count > 0) resolveRefs.Unpin (); } - } + + public static implicit operator uint(SubPass sp) => sp.Index; + } } |