void buildCommandBuffers() { dev.WaitIdle(); for (int i = 0; i < swapChain.ImageCount; ++i) { cmds[i]?.Free(); cmds[i] = cmdPool.AllocateAndStart(); renderer.buildCommandBuffers(cmds[i]); plToneMap.RenderPass.Begin(cmds[i], frameBuffers[i]); cmds[i].SetViewport(frameBuffers[i].Width, frameBuffers[i].Height); cmds[i].SetScissor(frameBuffers[i].Width, frameBuffers[i].Height); plToneMap.Bind(cmds[i]); plToneMap.BindDescriptorSet(cmds[i], descriptorSet); cmds[i].PushConstant(plToneMap.Layout, VkShaderStageFlags.Fragment, 8, new float[] { renderer.exposure, renderer.gamma }, 0); cmds[i].Draw(3, 1, 0, 0); plToneMap.RenderPass.End(cmds[i]); cmds[i].End(); } }
void buildCommandBuffers() { for (int i = 0; i < swapChain.ImageCount; ++i) { cmds[i]?.Free(); cmds[i] = cmdPool.AllocateAndStart(); renderer.buildCommandBuffers(cmds[i], i); cmds[i].End(); } }
protected override void recordDraw(CommandBuffer cmd, int imageIndex) { statPool.Begin(cmd); renderer.buildCommandBuffers(cmd, imageIndex); statPool.End(cmd); }