[Mesa-dev] [PATCH 00/71] New Gallium Nine Fixes and Improvements

Axel Davy axel.davy at ens.fr
Sun Aug 16 07:27:16 PDT 2015

Some patches we had in our pending queue for quite some time.

Overall not quite interesting set of patches, just minor
fixes or improvements.

As usual you can find the patch serie there:

Patch 2 is an interesting feature since instead of
advertizing gallium card names, we do advertize
the ones they have on win. Wine does the same.

Patches 3-7 are fixes

Patches 8-13 finish our implementation of software
cursor (used when hw cursor can't be used)

Patches 14-23 implement correct surface dirty region
tracking, and use it to avoid useless updates, like
specified in the documentation.

Patches 24-36 are fixes to our checks, and do solve
several Wine tests.

Patches 37-60 are several patches to rework how
we do handle state changes, and add support
for bumpmats and fog.
Initially the state rework was designed to simplify and
improve performance and there was a big switch where you'd
update only the corresponding gallium struct field
depending on the d3d9 state you'd change.
However it was not good for performance afterall.
As a result two or three of the patches are not
very useful for now, as they are just useless refactoring.
I hesitated to send them, but I'd still like have them

Patches 61-67 are some more fixes or improvements

Patches 68-71 do silent some compilation warnings

Axel Davy (55):
  st/nine: Fix Swizzle for ATI2 format
  st/nine: Always set point_quad_rasterization to 1
  st/nine: fix D3DRS_DITHERENABLE wrong state group
  st/nine: Hide hardware cursor when we don't use it
  st/nine: Force hw cursor for Windowed mode
  st/nine: Do not call ID3DPresent_GetCursorPos for sw cursor
  st/nine: Revert to sw cursor in case of failure to set hw cursor
  st/nine: Simplify Volume9 dirty region tracking
  st/nine: Split NineSurface9_CopySurface
  st/nine: Simplify NineVolume9_CopyVolume
  st/nine: SetAutoGenFilterType should regenerate the sublevels
  st/nine: Add missing BASETEX_REGISTER_UPDATE calls
  st/nine: Track dirty region for SYSTEMMEM too
  st/nine: Textures start dirty
  st/nine: Only update dirty rect for UpdateTexture
  st/nine: Track managed textures
  st/nine: Implement EvictManagedResources
  st/nine: Fix StretchRect checks
  st/nine: Fix FillColor Flag check
  st/nine: Impose restrictions on DXTN texture sizes
  st/nine: Fix Lock Checks for Compressed textures
  st/nine: Remove group_mask argument from nine_update_state
  st/nine: Reorder nine_state.
  st/nine: Reorder DSA state settings
  st/nine: Rework rasterizer states
  st/nine: Avoid useless updates in SetSamplerState
  st/nine: Improve fallback when driver doesn't support user buffers.
  st/nine: Rework blend states
  st/nine: Rework constant buffer state handling
  st/nine: Rework ff constant buffers
  st/nine: Fix fixed function fog support
  st/nine: Begin programmable shader fog support
  st/nine: Fix nine_ff_ps_key padding
  st/nine: Remove useless variables
  st/nine: Rework shader states
  st/nine: Finish Fog implementation
  st/nine: Revert to userbuf path when needed
  st/nine: Advertise Fog flags
  st/nine: Change a few advertised caps
  st/nine: Complete ff texture transform implementation
  st/nine: Programmable ps D3DTTSS_PROJECTED support
  st/nine: Change nine_state_update order
  st/nine: Implement ff vertex data passthrough
  st/nine: Implement special DOTPRODUCT3 behaviour
  st/nine: Remove NINED3DRS_ZBIASSCALE
  st/nine: Better check shader constant limits
  st/nine: Calculate dummy sampler state only once
  st/nine: Use CSO cache for sampler views
  st/nine: Fix the number of texture stages
  st/nine: Avoid Constant upload when there is no change
  st/nine: Catch setting the same shader
  st/nine: Silent warning in update_vertex_buffer
  st/nine: Silent warning in NineCubeTexture9_ctor
  st/nine: Silent warning in sm1_declusage_to_tgsi
  st/nine: Silent warning in nine_ff

Christoph Bumiller (1):
  gallium: Add blending to pipe blit

David Heidelberg (1):
  st/nine: Require gcc >= 4.6

Marek Olšák (1):
  util/u_blitter: implement alpha blending for pipe->blit

Patrick Rudolph (12):
  target/d3dadapter9: Return Windows like card names
  st/nine: Align texture memory
  st/nine: Account POINTSIZE_MIN and POINTSIZE_MAX for point size
  st/nine: Fix GenerateMipSubLevels potential crash
  st/nine: fix failing wine test device.c test_lockrect_invalid()
  st/nine: Clean GetPrivateData
  st/nine: Fix resource SetPriority/GetPriority
  st/nine: Return NULL pointer in lock error cases
  st/nine: Fail on D3DUSAGE_DYNAMIC for D3DPOOL_SCRATCH textures
  st/nine: Return correct error codes in NineDevice9_Reset
  st/nine: Prevent possible crash
  st/nine: Fix use of uninitialized values

Tiziano Bacocco (1):
  st/nine: Implement TEXBEM,TEXBEML and BEM

 configure.ac                                     |    4 +
 src/gallium/auxiliary/util/u_blitter.c           |   54 +-
 src/gallium/auxiliary/util/u_blitter.h           |    3 +-
 src/gallium/auxiliary/util/u_surface.c           |    3 +
 src/gallium/drivers/i915/i915_surface.c          |    3 +-
 src/gallium/drivers/r300/r300_blit.c             |    3 +-
 src/gallium/drivers/r600/r600_blit.c             |    3 +-
 src/gallium/drivers/radeonsi/si_blit.c           |    3 +-
 src/gallium/include/pipe/p_state.h               |    1 +
 src/gallium/state_trackers/nine/adapter9.c       |   38 +-
 src/gallium/state_trackers/nine/basetexture9.c   |   46 +-
 src/gallium/state_trackers/nine/basetexture9.h   |    6 +-
 src/gallium/state_trackers/nine/cubetexture9.c   |   27 +-
 src/gallium/state_trackers/nine/device9.c        |  432 +++++--
 src/gallium/state_trackers/nine/device9.h        |   13 +-
 src/gallium/state_trackers/nine/nine_ff.c        |  381 ++++---
 src/gallium/state_trackers/nine/nine_ff.h        |   81 ++
 src/gallium/state_trackers/nine/nine_pipe.c      |   43 +-
 src/gallium/state_trackers/nine/nine_pipe.h      |   67 +-
 src/gallium/state_trackers/nine/nine_shader.c    |  307 ++++-
 src/gallium/state_trackers/nine/nine_shader.h    |   49 +
 src/gallium/state_trackers/nine/nine_state.c     | 1324 ++++++++++++----------
 src/gallium/state_trackers/nine/nine_state.h     |   64 +-
 src/gallium/state_trackers/nine/pixelshader9.c   |   42 +-
 src/gallium/state_trackers/nine/pixelshader9.h   |   57 +-
 src/gallium/state_trackers/nine/resource9.c      |   20 +-
 src/gallium/state_trackers/nine/stateblock9.c    |    2 +-
 src/gallium/state_trackers/nine/surface9.c       |  213 ++--
 src/gallium/state_trackers/nine/surface9.h       |   14 +-
 src/gallium/state_trackers/nine/swapchain9.c     |   23 +-
 src/gallium/state_trackers/nine/texture9.c       |   31 +-
 src/gallium/state_trackers/nine/vertexshader9.c  |   33 +-
 src/gallium/state_trackers/nine/vertexshader9.h  |   34 +-
 src/gallium/state_trackers/nine/volume9.c        |  193 +---
 src/gallium/state_trackers/nine/volume9.h        |   19 +-
 src/gallium/state_trackers/nine/volumetexture9.c |   18 +-
 src/gallium/targets/d3dadapter9/Makefile.am      |    1 +
 src/gallium/targets/d3dadapter9/description.c    |  324 ++++++
 src/gallium/targets/d3dadapter9/drm.c            |   76 +-
 src/mesa/state_tracker/st_cb_blit.c              |    1 +
 40 files changed, 2673 insertions(+), 1383 deletions(-)
 create mode 100644 src/gallium/targets/d3dadapter9/description.c


More information about the mesa-dev mailing list