gallium,nvc0: add blending to pipe blit
mesa/st: initialize blit.alpha_blend
nvc0: NULL vertex buffers are allowed
nv50/ir/tgsi: handle TGSI_OPCODE_CND
nvc0: reset constant vertex attribute data after blit

To make wine's test_vshader_input happy.
nvc0: SQUASH y-flip does affect FragCoord shader input after all
nvc0: add fast-path for constant buffer upload

Saves a memcpy, and increased threshold for push method, which is
usually better because there's no subchannel switch.
nvc0: don't update vbufs that aren't being accessed
nv50: record CB slot for bound constant buffers

So we don't have to re-bind every time a transfer on a bound buffer
is performed, i.e. on all constant uploads with d3d9.
nv50/ir/tgsi: support TGSI_OPCODE_ARR
nv50,nvc0: handle TGSI_PROPERTY_VS_WINDOW_SPACE_POSITION
nv50/ir/tgsi: implement TGSI_OPCODE_BREAKC
nine: Add state tracker nine for Direct3D9
nine/state: add state update mask, clear shader const dirty bits

AND THE LIGHTS ARE ON!

nine/pipe: don't fill disabled stencil state

nine/winsys: try to fix cursor position

nine/basetexture: fix sampler view swizzle

nine: hook up the HUD

nine/device: de-stub SetGammaRamp

nine/pipe: fix sampler border color swapped R/B

nine/state: fix FF state update

nine/basetexture: fix SV swizzle more

nine/state: fix float constant update

nine/device: allocate space for int and bool consts, too

nine/pipe: fixup for D3DBLEND_BOTH[INV]SRCALPHA

nine/state: OOPS add header update for 3 commits earlier

That is 1f82f8162098c9...

nine/ff: fix FVF key comparison

nine/pipe: fix inverted user_warn condition

nine/device: don't reset pipe context in dtor if we don't have one

nine/basetexture: fix GenerateMipSubLevels

nine/state: better guard against leaving destroyed shader csos in the pipe

nine/shaders: die on predicated instructions for now

nine/state: validate textures before setting states

Because mipmap generation can clobber state again.

nine/caps: we support D3DPMISCCAPS_TSSARGTEMP

nine/shader: make MOVA use round to nearest

nine/shader: initialize lconsti,lconstb

nine/device: SetStreamSourceFreq setting may not be 0

nine/shader: make TEXCOORD, EXPP, CND work

nine/device: don't use rcr in StretchRect for up/downsample

nine/vertexdeclaration: add missing NINE_DECLUSAGE_FOG

nine/device: only apply scissor rect to Clear if test is enabled

nine/vertexdeclaration: fix FVF texcount

nine/ff: fix ordering issue with cleaning out shader cache

nine/ff: upload VS/PS constants should clobber FF constants

nine/pipe: MAXMIPLEVEL is min_lod, not max_lod

nine/basetexture: mark as dirty on SetLOD

nine/shader: fix check for SAT dst mod - AND NOW SC2 LOGIN LOOKS OK

Too much red, too much green, and too much blue ? That just had to
be saturation.

nine/device: blit dst.box in StretchRect may not have negative dims

So flip source instead, and also, reject StretRect with flipping
altogether because that's what wine's tests want.

nine/state: fix interaction between SetLod and D3DSAMP_MAXMIPLEVEL

nine/basetexture: fix SetLOD update

nine/debug: warn on SRGB write/texture enable

nine/device: support drivers that don't support user vbufs/ibufs

nine/unknown: prevent use after free

nine/ff: don't use TGSI_SEMANTIC_TEXCOORD driver doesn't support it

nine/shader: always declare VS position output first

nine/shader: CMP is backwards

nine/shader: set fragment coord conventions

nine/state: catch some missing sampler state propagation cases

nine/state: control color clamping

Not sure this is right ... but would float render targets make
sense if the output got clamped ?

nine/shader: record PSIZE and COLOROUT usage

nine/state: set point_size_per_vertex only if VS writes PSIZE

nine/query: never let driver wait for query to finish

D3D9 queries don't have that option, so if we wait we deny the app
the possibility to not wait.

nine/shader: fix BREAKC source count

nine/shader: handle TEXKILL in PS < 1.4 and fix for PS >= 2.0

nine/shader: PS < 2.0 have COLOROUT in TEMP[0]

nv50/ir/opt: fix constant folding with saturate modifier

nine/device: only add MANAGED textures to the bound list

Because we don't have to validate DEFAULT textures and because they
can be bound as RT and the bind counting won't work.

nine/device: match levels in UpdateTexture

nine/ff: handle TEXTURETRANSFORMFLAGS

But it still doesn't work.

nine/state: update samplers of the right stage

Fixes regression from 09282720703d46f088b4af98d1de980644cc98b6.

nine/shader: VS 1.x mov to address register uses floor

nine/state: fix intconst upload

nine/shader: fix LOOP,ENDLOOP

nine/shader: fix SINCOS,SGN parsing of extra sources

nine/state: set stream_usage_mask to make instancing work

nine/pipe: fix setting of clamp_vertex_color

nine/state: warn when unbound textures are being used

nine/device: shut up TestCooperativeLevel

nine/state: warn when writing undefined values to cbufs

nine/device: more depth/stencil StretchRect error cases

nine: fix depth texture sampling, part 1

nine: add shader variants

SC2 renders correctly now, as far as I can see.

nine/device: catch no-op VertexDeclaration change early

SC2 does that often.

nine/surface: add support for D3DFMT_NULL

nine/device: compare against old values in SetIndices,StreamSource

nine/buffer: improve lock flags translation

nine/vertexdeclaration: check D3DDECLUSAGE index

nine: extend NINE_DECLUSAGE for Civ5

nine/wine: add missing ReleaseDC

nine: add hardware cursor support

nine: locking for D3DCREATE_MULTITHREADED

That is for buggy applications that fail at doing synchronization
themselves. We need to lock everything for them.

nine/pipe: optimize convert_dsa_state a bit

nine/buffer: use PIPE_USAGE_STREAM for D3DUSAGE_DYNAMIC

Which is the usual use case and also what wine picks.
We have have to refine that at some point, but seems to work nicely
for SC2.

nine/pipe: scale DEPTHBIAS value

Fixes zfighting of pebbles on the floor in Skyrim.

nine: fix non-debug builds

nine/winsys: GetWindowRect

nine: use a range list for tracking dirty float constants

This should be reasonably fast for most apps, at least for SC2 and
Skyrim the list will have at most 2 entries.

nine/state: clear texture list on nine_state_clear

Fixes infinite loop after Reset.

nine/state: clear stream_freq dirty mask after validation

nine/device: compare with old value on SetRenderState

Wine does this, too, and SC2 has a run where it does no-op blend
changes.

pipe/nine: ATOMICS !

nine/shader: be nice to r600g part 1 (TGSI_OPCODE_DP2A)

nine/shader: be nice to r600g part 2 (use user constant buffers)

nine/ff: fix for user constant buffers

nine/device: initialize pipe_draw_info.restart_index

Even if it's invalid because primitive_restart is always FALSE, but
some drivers compare it anyway *cough* r600 *cough*.

nine/device: fix float const dirty setting in CreateStateBlock

nine/stateblock: refcounting fixes

nine/vertexdeclaration: more DECLUSAGEs

For Drakensang.

nine/stateblock: fix bound textures list update on Apply

nine: set VS_WINDOW_SPACE_POSITION TGSI property

TODO: Remove viewport hack when I fixed up nouveau.

nine/shader: shift vPos if driver doesn't support integer coords

nine/state: insert lconstf into CB for indirect access

nine/device: fix draw index bounds and indexed UP vertex upload

Fix rebase accidents.

nine/swapchain: set PIPE_BIND_SAMPLER_VIEW on back and DS buffers

nine/pipe: don't vary rasterizer.point_size if point_size_per_vertex

nine/state: D3DRS_CLIPPING only affects software vertex processing

nine/state: only SM < 3 vertex colors have to be clamped

And fixed-point PS outputs are supposed to be clamped independently
of the rasterizer setting.

R600g doesn't support clamp controls so just keep it simple.

nine: fix llvmpipe as ref rasterizer build

nine/texture: fix/improve texture validation, MIPGEN on RTs

nine: add support for sRGB samplers

nine/stateblock: silence pesky warning

nine/shader: permit out of range local constants

So that Anno 1404 can work.

nine: handle D3DRS_SRGBWRITEENABLE

pipe-loader: support explicitly wrapped sw screens

util/u_dl: use local/now binding

We seem to mostly use this to load drivers. After multiple problems
with silent symbol clashing, especially in applications that load more
than one type of API with some drivers from the system and some from
the temporary dev directory, this change seems very sane.

nine: improve and simplify driver loading architecture

Nine now works as a standalone library using pipe-loader to get
the appropriate drivers loaded. A new library has been introduced
for this called libd3dadapter9.so

To create a final d3d9.dll equivalent now is simply a matter of
linking with -ld3dadapter9 and implementing the interfaces found
in d3dadapter9/d3dadapter.h to integrate with the window system.

nine/shader: use TGSI_OPCODE_ARR instead of ROUND,ARL

nine/state: more sampler state update filtering

nine/state: remove viewport hack

configure: nine counts as an API

nine/shader: use TGSI_OPCODE_BREAKC

nine/device9: fix cube texture updating

nine/basetexture: add texture to dirty list on SetLOD

nine: cleanup public headers a bit

d3dadapter9: use correct library dependencies

libd3d9-wine: port to Xlib

This will inevitable make it slower, but this is just staging for
direct wine integration.

nine: hook up GetDisplayMode

nine/shader: don't abort on encountering the coissue flag

nine/ff: don't use initialized local ureg_src variables

nine/ff: don't use TGSI_OPCODE_NRM

nine/device: don't set non-existent RS dirty bits in CreateSB

nine/stateblock: partially optimize D3DSBT_ALL

nine/shader: don't use TGSI_OPCODE_CND

nine/ff: don't die on CAMERASPACEREFLECTIONVECTOR

nine/stateblock: unref textures, free lights and transforms in dtor

nine/state: clear index buffer in nine_state_clear

nine: StateBlocks don't hold user-visible references

Fixes Civ4 crash.

nine/state: remove MANAGED pool condition for texture list_delinit

nv50: count wrapped textures towards the tex_obj count

But don't count their size towards the allocated memory, since that
belongs to whoever created it.

nine/shader: record used constbuf size

nine/shader: fix semantic assignment

nine/pipe: only set max_anisotropy if D3DTEXF_ANISOTROPIC is used

nine/shader: POSITION1 varying is allowed as well

nine/shader: partially handle PS1.4 TEXLD

nine/ff: fix vertex blending, support tweening

nine/ff: fix lighting alpha factor

nine/shader: compactify lconstf locations

nine/shader: support texture target varyings for PS1.x

nine/ff: fog fixes

nine/ff: fix texture transforms

nine/ff: initialize w component of generated texcoords

nine/stateblock: fix check for capturing FF state for NINESBT_ALL

Fixes automap and globe in Civ4.

libd3d9: remove all trace of these backends

pipe-loader: add dl as a dependency

nine: add readme

nine/shader: gallivm doesn't support BREAKC, don't use it for now

d3dadapter9: install header files

pipe-loader: add configure flag to set install/search path

d3dadapter9: use new pipe-loader search path

nine/cubetexture: fix error check for LockRect with AUTOGENMIPMAP

nine/shader: support D3DSPR_INPUT on TEXKILL

nine/shader: handle dst shift

nine/ff: clamp vertex color

We don't use the rasterizer clamp feature since some drivers don't
support it.

nine: update for rebase (KILL_IF and translate change)

Why did you have to pick such an ugly name ?
It's called KIL, it works like KIL.
Opcodes with IF execute if the source is != 0, not < 0.
And the unconditional one is called DISCARD.

nine/device: fix cursor visibility in World of Warcraft

nine/state: fix vs/ps typo and thus a very busy memory leak

nine/stateblock: free dirty ranges in StateBlock dtor

nine/vertexdeclaration: allow TANGENT,BINORMAL index 1

Slowly running out of slots, and we really want fixed slots because
otherwise we'll need a linkage step.

nine/shader: use UIF for native integers with D3DSPR_CONSTBOOL

nine/vertexshader: initialize sampler_mask_shadow

nine/adapter: lie about caps to make CoD4 start

nine/shader: implement TEXM3x3, TEXM3x3TEX

nine/shader: fix TXD source order

nine/buffer: allow D3DLOCK_DONOTWAIT

nine/device: fix copy/paste error on StretchRect assertion

nine: allow POSITION and COLOR declaration usage index up to 4

nine/shader: initialize ps1x sampler types on initial translation

Fix issues after rebase. SQUASH

nine: hook up basic SwapChain9Ex

nine/device9: create SwapChain9Ex when applicable

nine: Implement GetDisplayModeEx

pipe-loader: Only compile DRI in when --enable-dri

nine: fix uninitialized data in constructor

Fixes wine d3d9/tests/d3d9ex, line 587

nine: add few checks to pass more tests

Fixes few wine tests.