Add @mike29 to authors list
driver: state caching

Keep a context. Write only state that changed actually changed
to command buffer.
driver: reduce number of etna_reserve calls
driver: state caching

Keep a context. Write only state that changed actually changed
to command buffer.

Also reduce number of etna_reserve calls.
driver: merge consecutive state updates
driver: build context

First step towards support for multiple concurrent rendering programs
with v2 driver (v4 driver requires different approach with state deltas,
but that can be done in a similar way later).
driver: set GL_API_MODE

On GC2000 there is a register GL_API_MODE that sets the global API mode
for the context. I do not know what it does, but if another application
left it at OPENVG/OPENCL that could have unpredictable consequences.
Set it to OPENGL at context creation.
driver: don't forget to update context for vertex elements / shader data

FE_VERTEX_ELEMENT_CONFIG / shader INST_MEM / shader UNIFORMS are
handled specially, but still need to update the context object otherwise
latter updates assume the wrong state.
driver: remove dirty bit for base setup

No need to even have a dirty bit for ETNA_STATE_BASE_SETUP,
those bits are set up on context creation and guaranteed to never
changed.
tools: output statistics from gen_weave_state

Also do a few comment clarifications.
fb: link with CXX instead of CC

This solves the linking problem when compiling with ETNAVIV_HOOK=1
driver: use mesa's MIN2/MAX2 instead of our own

Trivial code style change.
driver: null handling on binding

No longer segfault when binding NULL shader or sampler view.
driver: add PIPE_SHADER_CAP_TGSI_(POW|LRP)_SUPPORTED

We need lowering for these instructions as they're not in the
ISA. As Mesa can do this for us, expose them as shader capabilities.
driver: implement SIN and COS instructions

This commit implements the TGSI SIN and COS instructions.

There is still an unhandled case on cubox, which has a gc600
without trigonometric instructions support. For this GPU
we will need to fall back on a Taylor expansion.
driver: allocate TS only when needed

TS (Tile Status) keeps track of the clear status per tile.
Thus it is only needed when a resource is bound to a surface,
not for normal textures.
This used to be switched on PIPE_BIND_RENDER_TARGET, but mesa
creates *every* texture with this bit set if possible so we were
wasting some precious consecutive memory here.
GC880 - replay/cube_etna2 - draw interleaved vertices
etnaviv: prevent false positive about cmd buffer overflow

After a flush, the next start offset may be beyond the end of the
buffer. This is harmless as it makes the next etna_reserve cycle to the next
buffer, but it resulted in a false positive error about a buffer oveflow.
driver: put compiler debug messages behind debug flag

More spam reduction...
Add support for rendering using unified memmory on GC880 (similar to GC2000).