private void Send(object sender, EventArgs e)
        {
            DebugReport report = new DebugReport("Crash log generated by " + iProduct + " ver " + iVersion);

            report.Post(iTitle, iReportText);
            Close();
        }
예제 #2
0
        Program() : base(true)
        {
            if (Instance.DEBUG_UTILS)
            {
                dbgRepport = new DebugReport(instance,
                                             VkDebugReportFlagsEXT.ErrorEXT
                                             | VkDebugReportFlagsEXT.DebugEXT
                                             | VkDebugReportFlagsEXT.WarningEXT
                                             | VkDebugReportFlagsEXT.PerformanceWarningEXT
                                             );
            }

            camera = new Camera(Utils.DegreesToRadians(45f), 1f, 0.1f, 16f);
            camera.SetPosition(0, 0, 2);

            renderer = new DeferredPbrRenderer(dev, swapChain, presentQueue, cubemapPathes[2], camera.NearPlane, camera.FarPlane);
            renderer.LoadModel(transferQ, modelPathes[curModelIndex]);
            camera.Model = Matrix4x4.CreateScale(1f / Math.Max(Math.Max(renderer.modelAABB.Width, renderer.modelAABB.Height), renderer.modelAABB.Depth));

            statPool = new PipelineStatisticsQueryPool(dev,
                                                       VkQueryPipelineStatisticFlags.InputAssemblyVertices |
                                                       VkQueryPipelineStatisticFlags.InputAssemblyPrimitives |
                                                       VkQueryPipelineStatisticFlags.ClippingInvocations |
                                                       VkQueryPipelineStatisticFlags.ClippingPrimitives |
                                                       VkQueryPipelineStatisticFlags.FragmentShaderInvocations);

            timestampQPool = new TimestampQueryPool(dev);

            init_crow_commands();

            crow.Load("#deferred.menu.crow").DataSource = this;
        }
예제 #3
0
        void SaveInternal <T>(string fileName, T results)
        {
            StreamWriter writer = null;

            try
            {
                DebugReport <T> report = new DebugReport <T>();
                report.ExecutionTime = DateTime.Now;
                report.DeviceInfo    = ContextController.GetSetupInfo().DevInfo;

                report.Results = results;

                writer = new StreamWriter(fileName);
                XmlSerializer s = new XmlSerializer(typeof(DebugReport <T>));
                s.Serialize(writer, report);
            }
            catch (Exception exc)
            {
                View.ReportError("An error occurred: " + exc.Message);
            }
            finally
            {
                if (writer != null)
                {
                    writer.Close();
                }
            }
        }
        public void keep_the_newest_reports()
        {
            MockFor <IRequestHistoryCacheFilter>()
            .Expect(c => c.Exclude(theCurrentRequest))
            .Return(false)
            .Repeat
            .Any();

            for (int i = 0; i < _configuration.MaxRequests; i++)
            {
                ClassUnderTest.AddReport(new DebugReport(), theCurrentRequest);
            }

            var report1 = new DebugReport();
            var report2 = new DebugReport();
            var report3 = new DebugReport();

            ClassUnderTest.AddReport(report1, theCurrentRequest);
            ClassUnderTest.AddReport(report2, theCurrentRequest);
            ClassUnderTest.AddReport(report3, theCurrentRequest);

            ClassUnderTest
            .RecentReports()
            .Take(3)
            .ShouldHaveTheSameElementsAs(report3, report2, report1);
        }
 /// <summary>
 /// 填充页面数据
 /// </summary>
 public void FillViewData(DebugReport debugReport, string searchKeyWord)
 {
     _debugReport = debugReport;
     _assetListView.Clear();
     _assetListView.ClearSelection();
     _assetListView.itemsSource = FilterViewItems(debugReport, searchKeyWord);
     _assetListView.Rebuild();
 }
예제 #6
0
        public void ExceptionClassTests()
        {
            var debugReport = new DebugReport();

            debugReport.Exception(new Exception("Should appead in output"));
            //If you got this far it passed.
            Assert.Pass();
        }
        private void buttonReport_Click(object sender, RoutedEventArgs e)
        {
            // post data to Linn
            DebugReport report = new DebugReport("Crash log generated by " + iProduct + " ver " + iVersion);

            report.Post(iTitle, iReportText);
            Close();
        }
예제 #8
0
        public static void Send(string aCrashLog, string aProduct, string aVersion, string aTitle)
        {
            Thread t = new Thread(new ThreadStart(() =>
            {
                UserLog.WriteLine("Sending crash log...");
                DebugReport report = new DebugReport("Crash log generated by " + aProduct + " ver " + aVersion);
                report.Post(aTitle, aCrashLog);
            }));

            t.Start();
        }
예제 #9
0
 private void btnSendReport_Click(object sender, RoutedEventArgs e)
 {
     // post data to Linn
     try
     {
         DebugReport report = new DebugReport("Crash log generated by " + iProduct + " ver " + iVersion);
         report.Post(iProduct, txtErrorDetails.Text);
     }
     catch { } //failed to send debug report, nothing we can do...
     Close();
 }
예제 #10
0
        public CpDeviceDiagnosticsReportList(DebugReport aReport, ChangeHandler aAdded, ChangeHandler aRemoved)
        {
            iLock     = new object();
            iDisposed = false;

            iReport = aReport;

            iAdded   = aAdded;
            iRemoved = aRemoved;

            iDeviceListDiagnosticsItem = new List <CpDeviceDiagnosticsItem>();

            iDeviceList = new CpDeviceDiagnosticsList(Added, Removed);
        }
예제 #11
0
        public void Dump(CrashLog aCrashLog)
        {
            // include some system details in report
            string reportText = aCrashLog.ToString();
            // show crash form
            FormCrashLogDumper form   = new FormCrashLogDumper(iTitle, iIcon, reportText);
            DialogResult       result = form.ShowDialog();

            if (result == DialogResult.OK)
            {
                // post data to Linn
                DebugReport report = new DebugReport("Crash log generated by " + iProduct + " ver " + iVersion);
                report.Post(iTitle, reportText);
            }
        }
예제 #12
0
        public DiagnosticsPage(IInvoker aInvoker, IHelper aHelper, Preferences aPreferences, string aId, string aViewId)
            : base(aId, aViewId)
        {
            iLock = new object();

            iInvoker     = aInvoker;
            iPreferences = aPreferences;
            iPreferences.EventSendDsCrashDataChanged += HandleEventSendDsCrashDataChanged;

            DebugReport report = new DebugReport(string.Format("Crash log generated by {0} ver {1}", aHelper.Product, aHelper.Version));

            iDiagnosticsList       = new CpDeviceDiagnosticsReportList(report, Added, Removed);
            iDeviceListDiagnostics = new List <CpDeviceDiagnosticsItem>();

            CheckAllowSendAll();
        }
예제 #13
0
        public override void Send(DebugReport aReport)
        {
            byte[] crashData = iDevice.CrashData;
            if (crashData != null)
            {
                string response;
                bool   failed = aReport.Post(string.Format("{0}_{1}", iDevice.Model.Replace(" ", ""), iDevice.Udn), string.Empty, crashData, iDevice.ElfFingerprint, out response);

                UserLog.WriteLine(response);

                if (!failed)
                {
                    iDevice.ClearCrashData();
                }
            }
        }
예제 #14
0
        public void Dump(CrashLog aCrashLog)
        {
            // include some system details in report
            string reportText = aCrashLog.ToString();

            DebugReport report = new DebugReport("Crash log generated by " + iProduct + " ver " + iVersion);

            /*iDelegate = new Delegate(report, iTitle, reportText);
             * UIAlertView alert = new UIAlertView(iTitle, "The application " + iTitle + " quit unexpectedly", iDelegate,
             *                                  "Close", new string[] { "Report and Close" });
             * alert.Show();*/

            if (iAutoSend)
            {
                report.Post(iTitle, reportText);
            }
        }
예제 #15
0
파일: test.cs 프로젝트: Svengali/vk.net
        public Program()
        {
            instance = new Instance();

#if DEBUG
            dbgReport = new DebugReport(instance,
                                        VkDebugReportFlagsEXT.ErrorEXT
                                        | VkDebugReportFlagsEXT.DebugEXT
                                        | VkDebugReportFlagsEXT.WarningEXT
                                        | VkDebugReportFlagsEXT.PerformanceWarningEXT

                                        );
#endif

            phy      = instance.GetAvailablePhysicalDevice().FirstOrDefault();
            dev      = new Device(phy);
            computeQ = new Queue(dev, VkQueueFlags.Compute);
            dev.Activate(enabledFeatures, enabledExtensions);

            datas = new float[data_size];
            Random rnd = new Random();
            for (uint i = 0; i < data_size; i++)
            {
                datas[i] = (float)rnd.NextDouble();
            }

            inBuff  = new HostBuffer <float> (dev, VkBufferUsageFlags.StorageBuffer, datas);
            outBuff = new HostBuffer <float> (dev, VkBufferUsageFlags.StorageBuffer, data_size);

            dsPool          = new DescriptorPool(dev, 2, new VkDescriptorPoolSize(VkDescriptorType.StorageBuffer, 4));
            dsLayoutCompute = new DescriptorSetLayout(dev,
                                                      new VkDescriptorSetLayoutBinding(0, VkShaderStageFlags.Compute, VkDescriptorType.StorageBuffer),
                                                      new VkDescriptorSetLayoutBinding(1, VkShaderStageFlags.Compute, VkDescriptorType.StorageBuffer)
                                                      );

            plCompute = new ComputePipeline(
                new PipelineLayout(dev, new VkPushConstantRange(VkShaderStageFlags.Compute, sizeof(int)), dsLayoutCompute),
                "shaders/computeTest.comp.spv");

            dsetPing = dsPool.Allocate(dsLayoutCompute);
            dsetPong = dsPool.Allocate(dsLayoutCompute);
            DescriptorSetWrites dsUpdate = new DescriptorSetWrites(dsetPing, dsLayoutCompute);
            dsUpdate.Write(dev, inBuff.Descriptor, outBuff.Descriptor);

            dsUpdate.Write(dev, dsetPong, outBuff.Descriptor, inBuff.Descriptor);
        }
예제 #16
0
        public void Dump(CrashLog aCrashLog)
        {
            int result = AppKitFramework.NSRunCriticalAlertPanel("The application " + iTitle + " quit unexpectedly",
                                                                 "Mac OS X and other applications are not affected.\n\n" +
                                                                 "Click Report to send a report to Linn",
                                                                 "Report",
                                                                 "Ignore",
                                                                 null);

            // show crash form
            if (result == 1)
            {
                // post data to Linn
                DebugReport report = new DebugReport("Crash log generated by " + iProduct + " ver " + iVersion);
                report.Post(iTitle, aCrashLog.ToString());
            }
        }
        private List <DebugProviderInfo> FilterViewItems(DebugReport debugReport, string searchKeyWord)
        {
            var result = new List <DebugProviderInfo>(debugReport.ProviderInfos.Count);

            foreach (var providerInfo in debugReport.ProviderInfos)
            {
                if (string.IsNullOrEmpty(searchKeyWord) == false)
                {
                    if (providerInfo.AssetPath.Contains(searchKeyWord) == false)
                    {
                        continue;
                    }
                }
                result.Add(providerInfo);
            }
            return(result);
        }
        public void keep_the_newest_reports()
        {
            var history = new RequestHistoryCache();
            for (int i = 0; i < 50; i++)
            {
                history.AddReport(new DebugReport());
            }

            var report1 = new DebugReport();
            var report2 = new DebugReport();
            var report3 = new DebugReport();

            history.AddReport(report1);
            history.AddReport(report2);
            history.AddReport(report3);

            history.RecentReports().Take(3).ShouldHaveTheSameElementsAs(report3, report2, report1);
        }
예제 #19
0
        public void keep_the_newest_reports()
        {
            var history = new RequestHistoryCache();

            for (int i = 0; i < 50; i++)
            {
                history.AddReport(new DebugReport());
            }

            var report1 = new DebugReport();
            var report2 = new DebugReport();
            var report3 = new DebugReport();

            history.AddReport(report1);
            history.AddReport(report2);
            history.AddReport(report3);

            history.RecentReports().Take(3).ShouldHaveTheSameElementsAs(report3, report2, report1);
        }
예제 #20
0
파일: main.cs 프로젝트: Svengali/vk.net
        Deferred() : base(true)
        {
            if (Instance.DEBUG_UTILS)
            {
                dbgRepport = new DebugReport(instance,
                                             VkDebugReportFlagsEXT.ErrorEXT
                                             | VkDebugReportFlagsEXT.DebugEXT
                                             | VkDebugReportFlagsEXT.WarningEXT
                                             | VkDebugReportFlagsEXT.PerformanceWarningEXT
                                             );
            }

            camera = new Camera(Utils.DegreesToRadians(45f), 1f, 0.1f, 16f);
            camera.SetPosition(0, 0, 2);

            renderer = new DeferredPbrRenderer(dev, swapChain, presentQueue, cubemapPathes[2], camera.NearPlane, camera.FarPlane);
            renderer.LoadModel(transferQ, modelPathes[curModelIndex]);
            camera.Model = Matrix4x4.CreateScale(1f / Math.Max(Math.Max(renderer.modelAABB.Width, renderer.modelAABB.Height), renderer.modelAABB.Depth));
        }
예제 #21
0
        /// <summary>
        /// Common "Save" procedure
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="fileName"></param>
        /// <param name="results"></param>
        void SaveInternal <T>(string fileName, T results)
        {
            StreamWriter writer = null;

            try
            {
                DebugReport <T> report = new DebugReport <T>();
                report.ExecutionTime = DateTime.Now;

                DeviceInfo info = new DeviceInfo();
                if (_initializationData != null && _initializationData.DeviceInformation != null)
                {
                    info.FirmwareVersion = _initializationData.DeviceInformation.FirmwareVersion;
                    info.HardwareID      = _initializationData.DeviceInformation.HardwareID;
                    info.Manufacturer    = _initializationData.DeviceInformation.Manufacturer;
                    info.Model           = _initializationData.DeviceInformation.Model;
                    info.SerialNumber    = _initializationData.DeviceInformation.SerialNumber;
                }
                report.DeviceInfo = info;

                report.Results = results;

                {
                    Data.Log.ManagementSettings settings = ContextController.GetManagementSettings();
                    report.ManagementSettings = settings;
                }
                writer = new StreamWriter(fileName);
                XmlSerializer s = new XmlSerializer(typeof(DebugReport <T>));
                s.Serialize(writer, report);
            }
            catch (Exception exc)
            {
                View.ShowError(exc);
            }
            finally
            {
                if (writer != null)
                {
                    writer.Close();
                }
            }
        }
        private List <DebugBundleInfo> FilterViewItems(DebugReport debugReport, string searchKeyWord)
        {
            Dictionary <string, DebugBundleInfo> result = new Dictionary <string, DebugBundleInfo>(debugReport.ProviderInfos.Count);

            foreach (var providerInfo in debugReport.ProviderInfos)
            {
                foreach (var bundleInfo in providerInfo.BundleInfos)
                {
                    if (string.IsNullOrEmpty(searchKeyWord) == false)
                    {
                        if (bundleInfo.BundleName.Contains(searchKeyWord) == false)
                        {
                            continue;
                        }
                    }
                    if (result.ContainsKey(bundleInfo.BundleName) == false)
                    {
                        result.Add(bundleInfo.BundleName, bundleInfo);
                    }
                }
            }
            return(result.Values.ToList());
        }
예제 #23
0
 public void setup()
 {
     _handler = new get_Id_handler(null, null);
     _report  = new DebugReport();
     _model   = getModel();
 }
예제 #24
0
 public abstract void Send(DebugReport aReport);
예제 #25
0
 public void setup()
 {
     _handler = new get_Id_handler(null, null);
     _report = new DebugReport();
     _model = getModel();
 }
예제 #26
0
 public void SetUp()
 {
     report = new DebugReport(null, null);
     inner = new FakeBehavior();
 }
예제 #27
0
 public Delegate(DebugReport aDebugReport, string aTitle, string aReportText)
 {
     iDebugReport = aDebugReport;
     iTitle       = aTitle;
     iReportText  = aReportText;
 }
예제 #28
0
        public Program() : base()
        {
            if (Instance.DEBUG_UTILS)
            {
                dbgReport = new DebugReport(instance,
                                            VkDebugReportFlagsEXT.ErrorEXT
                                            | VkDebugReportFlagsEXT.DebugEXT
                                            | VkDebugReportFlagsEXT.WarningEXT
                                            | VkDebugReportFlagsEXT.PerformanceWarningEXT

                                            );
            }
            imgResult = new Image(dev, VkFormat.R32g32b32a32Sfloat, VkImageUsageFlags.TransferDst | VkImageUsageFlags.Sampled, VkMemoryPropertyFlags.DeviceLocal,
                                  imgDim, imgDim);
            imgResult.CreateView();
            imgResult.CreateSampler(VkFilter.Nearest, VkFilter.Nearest, VkSamplerMipmapMode.Nearest, VkSamplerAddressMode.ClampToBorder);
            imgResult.Descriptor.imageLayout = VkImageLayout.ShaderReadOnlyOptimal;

            datas = new float[data_size];

            addSeed(imgDim / 2 - 1, imgDim / 2 - 1);


            stagingDataBuff = new HostBuffer <float> (dev, VkBufferUsageFlags.TransferSrc, datas);
            stagingDataBuff.Map();

            inBuff  = new GPUBuffer <float> (dev, VkBufferUsageFlags.StorageBuffer | VkBufferUsageFlags.TransferSrc | VkBufferUsageFlags.TransferDst, (int)data_size);
            outBuff = new GPUBuffer <float> (dev, VkBufferUsageFlags.StorageBuffer | VkBufferUsageFlags.TransferSrc, (int)data_size);

            dsPool = new DescriptorPool(dev, 3,
                                        new VkDescriptorPoolSize(VkDescriptorType.CombinedImageSampler),
                                        new VkDescriptorPoolSize(VkDescriptorType.StorageBuffer, 4));
            dslImage = new DescriptorSetLayout(dev,
                                               new VkDescriptorSetLayoutBinding(0, VkShaderStageFlags.Fragment, VkDescriptorType.CombinedImageSampler)
                                               );
            dslCompute = new DescriptorSetLayout(dev,
                                                 new VkDescriptorSetLayoutBinding(0, VkShaderStageFlags.Compute, VkDescriptorType.StorageBuffer),
                                                 new VkDescriptorSetLayoutBinding(1, VkShaderStageFlags.Compute, VkDescriptorType.StorageBuffer)
                                                 );

            GraphicPipelineConfig cfg = GraphicPipelineConfig.CreateDefault(VkPrimitiveTopology.TriangleList, VkSampleCountFlags.SampleCount1);

            cfg.Layout     = new PipelineLayout(dev, dslImage);
            cfg.RenderPass = new RenderPass(dev, swapChain.ColorFormat, dev.GetSuitableDepthFormat(), VkSampleCountFlags.SampleCount1);
            cfg.RenderPass.ClearValues[0] = new VkClearValue {
                color = new VkClearColorValue(0.0f, 0.1f, 0.0f)
            };

            cfg.ResetShadersAndVerticesInfos();
            cfg.AddShader(VkShaderStageFlags.Vertex, "shaders/FullScreenQuad.vert.spv");
            cfg.AddShader(VkShaderStageFlags.Fragment, "shaders/simpletexture.frag.spv");

            cfg.blendAttachments[0] = new VkPipelineColorBlendAttachmentState(true);

            grPipeline = new GraphicPipeline(cfg);

            plCompute = new ComputePipeline(
                new PipelineLayout(dev, new VkPushConstantRange(VkShaderStageFlags.Compute, 2 * sizeof(int)), dslCompute),
                "shaders/computeTest.comp.spv");
            plNormalize = new ComputePipeline(
                plCompute.Layout,
                "shaders/normalize.comp.spv");

            dsImage  = dsPool.Allocate(dslImage);
            dsetPing = dsPool.Allocate(dslCompute);
            dsetPong = dsPool.Allocate(dslCompute);

            DescriptorSetWrites dsUpdate = new DescriptorSetWrites(dsetPing, dslCompute);

            dsUpdate.Write(dev, inBuff.Descriptor, outBuff.Descriptor);
            dsUpdate.Write(dev, dsetPong, outBuff.Descriptor, inBuff.Descriptor);
            dsUpdate = new DescriptorSetWrites(dsImage, dslImage);
            dsUpdate.Write(dev, imgResult.Descriptor);

            UpdateFrequency = 5;
        }
예제 #29
0
 public override void Send(DebugReport aReport)
 {
 }
예제 #30
0
파일: test2.cs 프로젝트: jpbruyere/vke.net
        public Program() : base()
        {
#if DEBUG
            dbgReport = new DebugReport(instance,
                                        VkDebugReportFlagsEXT.ErrorEXT
                                        | VkDebugReportFlagsEXT.DebugEXT
                                        | VkDebugReportFlagsEXT.WarningEXT
                                        | VkDebugReportFlagsEXT.PerformanceWarningEXT

                                        );
#endif
            imgResult = new Image(dev, VkFormat.R32g32b32a32Sfloat, VkImageUsageFlags.TransferDst | VkImageUsageFlags.Sampled, VkMemoryPropertyFlags.DeviceLocal,
                                  IMG_DIM, IMG_DIM);
            imgResult.CreateView();
            imgResult.CreateSampler(VkFilter.Nearest, VkFilter.Nearest, VkSamplerMipmapMode.Nearest, VkSamplerAddressMode.ClampToBorder);
            imgResult.Descriptor.imageLayout = VkImageLayout.ShaderReadOnlyOptimal;


            staggingVBO = new HostBuffer <Vector2> (dev, VkBufferUsageFlags.TransferSrc, MAX_VERTICES);
            staggingVBO.Map();

            vbo = new GPUBuffer <Vector2> (dev, VkBufferUsageFlags.VertexBuffer | VkBufferUsageFlags.StorageBuffer | VkBufferUsageFlags.TransferDst, MAX_VERTICES);
            ibo = new GPUBuffer <uint> (dev, VkBufferUsageFlags.IndexBuffer | VkBufferUsageFlags.StorageBuffer, MAX_VERTICES * 3);

            inBuff  = new GPUBuffer <float> (dev, VkBufferUsageFlags.StorageBuffer | VkBufferUsageFlags.TransferSrc | VkBufferUsageFlags.TransferDst, (int)data_size);
            outBuff = new GPUBuffer <float> (dev, VkBufferUsageFlags.StorageBuffer | VkBufferUsageFlags.TransferSrc | VkBufferUsageFlags.TransferDst, (int)data_size);

            dsPool = new DescriptorPool(dev, 4,
                                        new VkDescriptorPoolSize(VkDescriptorType.CombinedImageSampler),
                                        new VkDescriptorPoolSize(VkDescriptorType.StorageBuffer, 6));
            dslImage = new DescriptorSetLayout(dev,
                                               new VkDescriptorSetLayoutBinding(0, VkShaderStageFlags.Fragment, VkDescriptorType.CombinedImageSampler)
                                               );
            dslCompute = new DescriptorSetLayout(dev,
                                                 new VkDescriptorSetLayoutBinding(0, VkShaderStageFlags.Compute, VkDescriptorType.StorageBuffer),
                                                 new VkDescriptorSetLayoutBinding(1, VkShaderStageFlags.Compute, VkDescriptorType.StorageBuffer)
                                                 );
            dslVAO = new DescriptorSetLayout(dev,
                                             new VkDescriptorSetLayoutBinding(0, VkShaderStageFlags.Compute, VkDescriptorType.StorageBuffer),
                                             new VkDescriptorSetLayoutBinding(1, VkShaderStageFlags.Compute, VkDescriptorType.StorageBuffer)
                                             );

            plInit = new ComputePipeline(
                new PipelineLayout(dev, new VkPushConstantRange(VkShaderStageFlags.Compute, 3 * sizeof(int)), dslCompute, dslVAO),
                "shaders/init.comp.spv");
            plCompute   = new ComputePipeline(plInit.Layout, "shaders/computeTest.comp.spv");
            plNormalize = new ComputePipeline(plInit.Layout, "shaders/normalize.comp.spv");

            GraphicPipelineConfig cfg = GraphicPipelineConfig.CreateDefault(VkPrimitiveTopology.TriangleList, VkSampleCountFlags.SampleCount1);

            cfg.Layout     = new PipelineLayout(dev, dslImage);
            cfg.RenderPass = new RenderPass(dev, swapChain.ColorFormat, dev.GetSuitableDepthFormat(), VkSampleCountFlags.SampleCount1);
            cfg.RenderPass.ClearValues[0] = new VkClearValue {
                color = new VkClearColorValue(0.1f, 0.1f, 0.1f)
            };
            cfg.AddShader(VkShaderStageFlags.Vertex, "shaders/FullScreenQuad.vert.spv");
            cfg.AddShader(VkShaderStageFlags.Fragment, "shaders/simpletexture.frag.spv");

            cfg.blendAttachments[0] = new VkPipelineColorBlendAttachmentState(true);

            grPipeline = new GraphicPipeline(cfg);

            cfg.ResetShadersAndVerticesInfos();
            cfg.Layout = new PipelineLayout(dev, new VkPushConstantRange(VkShaderStageFlags.Vertex, 4 * sizeof(int)));
            cfg.inputAssemblyState.topology = VkPrimitiveTopology.LineStrip;
            cfg.AddVertexBinding <Vector2> (0);
            cfg.SetVertexAttributes(0, VkFormat.R32g32Sfloat);
            cfg.AddShader(VkShaderStageFlags.Vertex, "shaders/triangle.vert.spv");
            cfg.AddShader(VkShaderStageFlags.Fragment, "shaders/triangle.frag.spv");

            trianglesPipeline = new GraphicPipeline(cfg);

            dsImage = dsPool.Allocate(dslImage);
            dsPing  = dsPool.Allocate(dslCompute);
            dsPong  = dsPool.Allocate(dslCompute);
            dsVAO   = dsPool.Allocate(dslCompute);


            DescriptorSetWrites dsUpdate = new DescriptorSetWrites(dsPing, dslCompute);
            dsUpdate.Write(dev, inBuff.Descriptor, outBuff.Descriptor);
            dsUpdate.Write(dev, dsPong, outBuff.Descriptor, inBuff.Descriptor);
            dsUpdate = new DescriptorSetWrites(dsImage, dslImage);
            dsUpdate.Write(dev, imgResult.Descriptor);
            dsUpdate = new DescriptorSetWrites(dsVAO, dslVAO);
            dsUpdate.Write(dev, vbo.Descriptor, ibo.Descriptor);

            UpdateFrequency = 5;

            addPoint(IMG_DIM / 2 - 1, IMG_DIM / 2 - 1);
        }
예제 #31
0
 public void SetUp()
 {
     report = new DebugReport(null, null);
     inner  = new FakeBehavior();
 }