Beispiel #1
0
        public void EndCmdBuffer(string CmdBuffer)
        {
            Util.check(CmdBuffers.ContainsKey(CmdBuffer), "Couldn't find CmdBuffer " + CmdBuffer);

            FCmdBuffer CB = CmdBuffers[CmdBuffer];

            Util.check(CB.IsInsideBegin(), "No begin for CmdBuffer " + CmdBuffer);
            CB.State = FCmdBuffer.EState.Ended;
        }
Beispiel #2
0
        public FCmdBuffer GetCmdBufferForAdd(string CmdBuffer)
        {
            Util.check(CmdBuffers.ContainsKey(CmdBuffer), "Couldn't find CmdBuffer " + CmdBuffer);

            FCmdBuffer CB = CmdBuffers[CmdBuffer];

            Util.check(CB.IsInsideBegin(), "Haven't started CmdBuffer " + CmdBuffer);

            return(CB);
        }
Beispiel #3
0
 public void BeginCmdBuffer(string CmdBuffer)
 {
     if (CmdBuffers.ContainsKey(CmdBuffer))
     {
         FCmdBuffer CB = CmdBuffers[CmdBuffer];
         Util.check(CB.IsReadyToBegin(), "Already begun CmdBuffer " + CmdBuffer);
         CB.State = FCmdBuffer.EState.Begun;
         return;
     }
     else
     {
         var NewCmdBuffer = new FCmdBuffer(CmdBuffer);
         CmdBuffers.Add(CmdBuffer, NewCmdBuffer);
     }
 }
Beispiel #4
0
        void ParseCommand()
        {
            try
            {
                SkipWhitespace();
                if (PeekAndAdvance("vkBeginCommandBuffer("))
                {
                    ReadLine();
                    //var CmdBuffer = new FBeginCmdBuffer();
                    string CmdBuffer = ParseCommandBuffer();
                    ReadLine();
                    ReadLine();
                    ReadLine();
                    ReadLine();
                    ReadLine();

                    CurrentFTEntry.BeginCmdBuffer(CmdBuffer);
                }
                else if (PeekAndAdvance("vkEndCommandBuffer("))
                {
                    ReadLine();

                    //var CmdBuffer = new FEndCmdBuffer();
                    //CurrentFTEntry.Items.Add(CmdBuffer);
                    string CmdBuffer = ParseCommandBuffer();
                    CurrentFTEntry.EndCmdBuffer(CmdBuffer);
                }
                else if (PeekAndAdvance("vkCmdWriteTimestamp("))
                {
                    ReadLine();

                    var WT = new FWriteTimestamp();

                    string CmdBuffer = ParseCommandBuffer();
                    WT.PipelineState = ParsePipelineStageBits();
                    WT.QueryPool     = ParseQueryPool();
                    WT.Query         = ParseQuery();

                    FCmdBuffer CB = CurrentFTEntry.GetCmdBufferForAdd(CmdBuffer);
                    CB.Commands.Add(WT);
                }
                else if (PeekAndAdvance("vkCmdBindPipeline("))
                {
                    ReadLine();

                    var WT = new FBindPipeline();

                    string CmdBuffer = ParseCommandBuffer();
                    WT.BindPoint = ParsePipelineBindPoint();
                    WT.Pipeline  = ParsePipeline();

                    FCmdBuffer CB = CurrentFTEntry.GetCmdBufferForAdd(CmdBuffer);
                    CB.Commands.Add(WT);
                }
                else if (PeekAndAdvance("vkCmdBeginRenderPass("))
                {
                    ReadLine();

                    //var WT = new FBindPipeline();
                    string CmdBuffer = ParseCommandBuffer();
                    ReadLine();
                    ReadLine();
                    ReadLine();
                    string RP = ParseSimpleAssignmentHandle("renderPass", "VkRenderPass");
                    string FB = ParseSimpleAssignmentHandle("framebuffer", "VkFramebuffer");
                    ReadLine();
                    ReadLine();
                    ReadLine();
                    ReadLine();
                    ReadLine();
                    ReadLine();
                    ReadLine();
                    int ClearValueCount = ParseSimpleAssignmentInt("clearValueCount", "uint32_t");
                    ReadLine();
                    for (int Index = 0; Index < ClearValueCount; ++Index)
                    {
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                        ReadLine();
                    }
                    ReadLine();

                    FCmdBuffer CB = CurrentFTEntry.GetCmdBufferForAdd(CmdBuffer);
                    Util.check(CB.IsOutsideRenderPass());
                    var BRP = new FBeginRP();
                    BRP.RenderPass = RP;
                    CB.Commands.Add(BRP);
                    CB.State = FCmdBuffer.EState.InsideRenderPass;
                }
                else if (PeekAndAdvance("vkCmdEndRenderPass("))
                {
                    ReadLine();
                    string     CmdBuffer = ParseCommandBuffer();
                    FCmdBuffer CB        = CurrentFTEntry.GetCmdBufferForAdd(CmdBuffer);
                    CB.Commands.Add(new FEndRP());
                    CB.State = FCmdBuffer.EState.Begun;
                }
                ReadLine();
            }
            catch (Exception E)
            {
                throw E;
            }
        }