title: Rendering in DirectX 11
body: <p>When frame starts, I do my logical update and render after that.
  In my render code I do usual stuff. I set few states, buffors, textures, and end by calling Draw.</p>
  
  <pre><code>m_deviceContext-&gt;Draw(
          nbVertices,
          0);
  </code></pre>
  
  <p>At frame end I call present to show rendered frame.</p>
  
  <pre><code>// Present the back buffer to the screen since rendering is complete.
  if(m_vsync_enabled)
  {
      // Lock to screen refresh rate.
      m_swapChain-&gt;Present(1, 0);
  }
  else
  {
      // Present as fast as possible.
      m_swapChain-&gt;Present(0, 0);
  }
  </code></pre>
  
  <p>Usual stuff. Now, when I call Draw, according to MSDN</p>
  
  <blockquote>
    <p>Draw submits work to the rendering pipeline.</p>
  </blockquote>
  
  <p>Does it mean that data is send to GPU and main thread (the one called Draw) continues? Or does it wait for rendering to finish?</p>
  
  <p>In my opinion, only Present function should make main thread wait for rendering to finish.</p>