title: How does windowed rendering work without a compositor?
body: <p>On systems with a compositor, a windowed application must render into an off-screen buffer, which is then submitted to the compositor for composition and presentation. How does displaying a windowed desktop work <em>without</em> a compositor?</p>
  <p>Suppose we have a 3D application using double buffering to render into a window, fully redrawing on each frame. This is my understanding of the process of presenting a new frame:</p>
  <ol>
  <li>Application submits a frame buffer for presentation.</li>
  <li>Compositor receives the buffer.</li>
  <li>Later, the compositor composites all the windows into the screen's back buffer.</li>
  <li>Compositor swaps the screen's buffers.</li>
  </ol>
  <p>What happens after step 1 if there is no compositor? (For example, on Windows without DWM, or on an X server.) Clearly, something is laying out the windows and making sure they render in the correct position and order. How is that different from compositing?</p>