radeonsi: support per-sample gl_FragCoord

Cc: 10.4 <mesa-stable@lists.freedesktop.org>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
radeonsi: support gl_FragCoord at integer pixel center

No known benefit for OpenGL, but it doesn't hurt.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
gallivm: fix alignment issue for vertex data fetch

We cannot guarantee that vertex buffers have the necessary alignment for
fetching all AoS members at once (for instance 4x32bit XYZW data). We can
however guarantee that for textures. This did not cause errors for older
llvm versions but it now matters and will cause segfaults if the data
happens to not be aligned. Thus we need to set alignment manually.
(Note that we can't actually really guarantee data to be even element aligned
due to offsets in vertex buffers being bytes and OpenGL allowing this, but
it does not matter for x86 as alignment is only required for sse vectors -
not sure what happens on other archs, however.)

This fixes https://bugs.freedesktop.org/show_bug.cgi?id=85467.
gallium/auxiliary: add dump functions for bind and transfer flags

v2: rename and extend support with code for C11 and MSVC (thanks to Brian)

Signed-off-by: David Heidelberg <david@ixit.cz>
gallium/auxiliary: Prefer intrinsics to handrolled atomic ops for Linux (v2)

v2: enable it only for Linux at this moment, where we expected it's
    build for >= i486.

[1] https://bugs.freedesktop.org/show_bug.cgi?id=30514

Signed-off-by: David Heidelberger <david.heidelberger@ixit.cz>
gallium/draw: support hack to disable clipping (v2)

v2: drop ifdef change, which may be send later in separate commit
nvc0: define numbers, make code better readable

Signed-off-by: David Heidelberger <david.heidelberger@ixit.cz>
mesa/gallium: API settings / rasterization rules
nvc0: use API settings / rasterization rules (v2)

v2: dropped part of clip_halfz handling implemented in upstream commit
    3bc42a09e2d13c42e15423a17b5c571049a11224
nv50,nvc0: handle TGSI_PROPERTY_VS_WINDOW_SPACE_POSITION

Allow viewport bypass used by D3D9 applications.
nv50,nvc0: handle NULL vertex elements without fallback

This makes Gallium Nine faster.
nv50/ir/tgsi: implement TGSI_OPCODE_NRM,DP2A

Used by d3d9 st.
hack/nv50: don't emit buffer for skipped vertex elements

Grr, should forbid that and insert dummy elements in nine.
hack/nvc0: avoid fault in get_query_result if there was no begin_query
nv50: support for hackish viewport bypass
nv50,nvc0: d3d9 requires transfer stride to be aligned to 4
gallium: add blending to pipe blit

Following nouveau commit make use of these.

Signed-off-by: David Heidelberger <david.heidelberger@ixit.cz>
nvc0: use blending to pipe blit
nvc0: NULL vertex buffers are allowed
nv50/ir/tgsi: handle TGSI_OPCODE_CND