[Mesa-dev] [PATCH 00/53] Gallium Nine fixes

Axel Davy axel.davy at ens.fr
Wed Jan 7 08:36:10 PST 2015


Most of the patches of this serie are fixes,
that's why most of them are CC 10.4

The patches can be retrived here:
https://github.com/iXit/Mesa-3D/tree/submit_mesa

Some of them may not appear directly as fixes, so little
explanation is required:

"st/nine: Add ATI1 and ATI2 support"

These two compression formats are supported by all three
vendors since very long ago. Some apps like Mass Effect 2
just use them without checking their support, and crash.
This patch adds support for these format, and then fixes
these games. It makes however a little difference for Unigine
Heaven which was checking properly the support of the format and
that uses it after the patch.

"st/nine: Fix POW implementation" and other similar short patches to nine_shader

On some games, a little difference on the behaviour of corner cases of the
instructions will make some textures black, some shadows red, etc.
Several games are fixed by these patches (Though we still have some games with
black textures or red shadows :-) )

"st/nine: implement TEXM3x2DEPTH" and similar

These are ps 1.X instructions. Few games (mostly old ones) use these
instructions. All graphic cards are supposed to support them, and
any game trying to use them before these patches will result in a crash.
So implementing these missing instructions is a fix.


The patches of this series have been tested by several testers the last
few months. We do not expect any regression. That doesn't mean there is
no mistake in these patches, so please review :-)

Axel Davy (48):
  st/nine: Fix clip state logic
  st/nine: Add new texture format strings
  st/nine: Correctly advertise D3DPMISCCAPS_CLIPTLVERTS
  st/nine: NineBaseTexture9: fix setting of last_layer
  st/nine: CubeTexture: fix GetLevelDesc
  st/nine: Fix crash when deleting non-implicit swapchain
  st/nine: Return D3DERR_INVALIDCALL when trying to create a texture of
    bad format
  st/nine: NineBaseTexture9: update sampler view creation
  st/nine: Check if srgb format is supported before trying to use it.
  st/nine: Add ATI1 and ATI2 support
  st/nine: Rework of boolean constants
  st/nine: Convert integer constants to floats before storing them when
    cards don't support integers
  st/nine: Remove some shader unused code
  st/nine: Clamp color inputs for ps <= 2.0 at ps level instead of vs
  st/nine: Saturate oFog and oPts vs outputs
  st/nine: Correctly declare NineTranslateInstruction_Mkxn inputs
  st/nine: Fix typo for M4x4
  st/nine: Fix POW implementation
  st/nine: Handle RSQ special cases
  st/nine: Handle NRM with input of null norm
  st/nine: Correct LOG on negative values
  st/nine: Rewrite LOOP implementation, and a0 aL handling
  st/nine: Match REP implementation to LOOP
  st/nine: Fix CND implementation
  st/nine: Remove duplicated code for ps texcoord input declaration
  st/nine: Clamp ps 1.X constants
  st/nine: Fix some fixed function pipeline operation
  st/nine: Fix CALLNZ implementation
  st/nine: Implement TEXCOORD special behaviours
  st/nine: Fill missing dst and src number for some instructions.
  st/nine: Fix TEXM3x3 and implement TEXM3x3VSPEC
  st/nine: implement TEXM3x2DEPTH
  st/nine: Implement TEXM3x2TEX
  st/nine: Implement TEXM3x3SPEC
  st/nine: Implement TEXDEPTH
  st/nine: Implement TEXDP3
  st/nine: Implement TEXDP3TEX
  st/nine: Implement TEXREG2AR, TEXREG2GB and TEXREG2RGB
  st/nine: Implement ps3 advanced input definition feature
  st/nine: Correct rules for relative adressing and constants.
  st/nine: Remove unused code for ps
  st/nine: Fix sm3 relative addressing for non-debug build
  st/nine: Add variables containing the size of the constant buffers
  st/nine: Allocate the correct size for the user constant buffer
  st/nine: Allocate vs constbuf buffer for indirect addressing once.
  st/nine: Explicit nine requirements
  st/nine: Change comment relating to vertex shader inputs not matching
    declaration
  st/nine: Correctly handle when ff vs should have no texture coord
    input/output

David Heidelberg (1):
  st/nine: query: remove unused variable (trivial)

Stanislaw Halik (1):
  st/nine: Hack to generate resource if it doesn't exist when getting
    view

xavier (3):
  st/nine: Additional defines to d3dtypes.h
  st/nine: Add missing c++ declaration for IDirect3DVolumeTexture9
  st/nine: Fix D3DRS_POINTSPRITE support

 include/D3D9/d3d9.h                              |  10 +
 include/D3D9/d3d9types.h                         |  13 +
 src/gallium/state_trackers/nine/adapter9.c       | 113 ++--
 src/gallium/state_trackers/nine/basetexture9.c   |  60 +-
 src/gallium/state_trackers/nine/cubetexture9.c   |  14 +-
 src/gallium/state_trackers/nine/device9.c        | 130 +++--
 src/gallium/state_trackers/nine/device9.h        |   8 +-
 src/gallium/state_trackers/nine/nine_ff.c        |  37 +-
 src/gallium/state_trackers/nine/nine_pipe.h      |   5 +
 src/gallium/state_trackers/nine/nine_shader.c    | 699 ++++++++++++++++-------
 src/gallium/state_trackers/nine/nine_state.c     |  87 +--
 src/gallium/state_trackers/nine/nine_state.h     |   3 +-
 src/gallium/state_trackers/nine/pixelshader9.c   |  10 +-
 src/gallium/state_trackers/nine/pixelshader9.h   |   2 -
 src/gallium/state_trackers/nine/query9.c         |   1 -
 src/gallium/state_trackers/nine/stateblock9.c    |   4 +-
 src/gallium/state_trackers/nine/surface9.c       |  29 +-
 src/gallium/state_trackers/nine/swapchain9.c     |   2 +-
 src/gallium/state_trackers/nine/texture9.c       |   9 +-
 src/gallium/state_trackers/nine/volumetexture9.c |  14 +-
 20 files changed, 842 insertions(+), 408 deletions(-)

-- 
2.1.3



More information about the mesa-dev mailing list