FUCK YOU BUILD SYSTEM
mesa: implement GL_ARB_draw_indirect

I have 1 piglit test to check drawing with several combinations of
parameters (using transform feedback to write the commands), but
will make some more tests for various things like interaction with
PrimitiveRestart or error conditions.

(http://people.freedesktop.org/~chrisbmr/0001-arb_draw_indirect-add-initial-test.patch)

The gallium interface specifies a start_instance parameter that the
GL extension doesn't have (it's reservedMustBeZero instead, but,
seriously, why ? D3D does have it. Because making yet another
extension will be so much fun ?)

Not sure if we want to expose this with the compatibilit profile.
gallium: add facilities for indirect drawing
st/mesa: add support for indirect drawing
nvc0: add support for indirect drawing
nouveau: set GPU_WRITING flag in buffers' nouveau_transfer_write

To make sure we wait for the GPU to write the data before doing
things like indirect drawing.
gallium: add PIPE_BIND_COMMAND_BUFFER

Intend to merge this into the previous ARB_draw_indirect patches.
Just in case there's any complaints ...

Needed to add this so the DRAW_INDIRECT_BUFFER doesn't get placed
into a non-GPU accessible domain. Besides, this seems reasonable,
and D3D11 has it, too (albeit a specialized version, called
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS).
nvc0: PIPE_BIND_COMMAND_BUFFER
st/mesa: prim restart for draw_indirect
nvc0: always check prim restart
nv50,nvc0: identify PRIM_RESTART_WITH_DRAW_ARRAYS
nvc0: reorder draw thingie
nvc0: restore checks to avoid revalidation in set_vertex_buffers
nvc0: translate and PRIM_RESTART_WITH_DRAW_ARRAYS