Mesa (master): r600g: add support for common surface allocator for tiling v13

Jerome Glisse glisse at kemper.freedesktop.org
Mon Feb 6 23:36:53 UTC 2012


Module: Mesa
Branch: master
Commit: c0c979eebc076b95cc8d18a013ce2968fe6311ad
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c0c979eebc076b95cc8d18a013ce2968fe6311ad

Author: Jerome Glisse <jglisse at redhat.com>
Date:   Mon Jan 30 17:22:13 2012 -0500

r600g: add support for common surface allocator for tiling v13

Tiled surface have all kind of alignment constraint that needs to
be met. Instead of having all this code duplicated btw ddx and
mesa use common code in libdrm_radeon this also ensure that both
ddx and mesa compute those alignment in the same way.

v2 fix evergreen
v3 fix compressed texture and workaround cube texture issue by
   disabling 2D array mode for cubemap (need to check if r7xx and
   newer are also affected by the issue)
v4 fix texture array
v5 fix evergreen and newer, split surface values computation from
   mipmap tree generation so that we can get them directly from the
   ddx
v6 final fix to evergreen tile split value
v7 fix mipmap offset to avoid to use random value, use color view
   depth view to address different layer as hardware is doing some
   magic rotation depending on the layer
v8 fix COLOR_VIEW on r6xx for linear array mode, use COLOR_VIEW on
   evergreen, align bytes per pixel to a multiple of a dword
v9 fix handling of stencil on evergreen, half fix for compressed
   texture
v10 fix evergreen compressed texture proper support for stencil
    tile split. Fix stencil issue when array mode was clear by
    the kernel, always program stencil bo. On evergreen depth
    buffer bo need to be big enough to hold depth buffer + stencil
    buffer as even with stencil disabled things get written there.
v11 rebase on top of mesa, fix pitch issue with 1d surface on evergreen,
    old ddx overestimate those. Fix linear case when pitch*height < 64.
    Fix r300g.
v12 Fix linear case when pitch*height < 64 for old path, adapt to
    libdrm API change
v13 add libdrm check

Signed-off-by: Jerome Glisse <jglisse at redhat.com>

---

 configure.ac                                      |    4 +-
 src/gallium/drivers/r300/r300_texture.c           |    2 +-
 src/gallium/drivers/r600/evergreen_state.c        |  352 ++++++++++++++++++---
 src/gallium/drivers/r600/evergreend.h             |   22 ++
 src/gallium/drivers/r600/r600_blit.c              |   27 ++-
 src/gallium/drivers/r600/r600_hw_context.c        |    3 +
 src/gallium/drivers/r600/r600_pipe.h              |    1 +
 src/gallium/drivers/r600/r600_resource.h          |    1 +
 src/gallium/drivers/r600/r600_state.c             |  256 ++++++++++++----
 src/gallium/drivers/r600/r600_texture.c           |  198 +++++++++++-
 src/gallium/targets/dri-r300/Makefile             |    2 +
 src/gallium/targets/dri-r600/Makefile             |    2 +-
 src/gallium/targets/egl-static/Makefile           |    2 +
 src/gallium/targets/va-r300/Makefile              |    2 +-
 src/gallium/targets/va-r600/Makefile              |    2 +-
 src/gallium/targets/vdpau-r300/Makefile           |    2 +-
 src/gallium/targets/vdpau-r600/Makefile           |    2 +-
 src/gallium/targets/xorg-r300/Makefile            |    2 +-
 src/gallium/targets/xorg-r600/Makefile            |    2 +-
 src/gallium/winsys/radeon/drm/radeon_drm_bo.c     |   29 ++-
 src/gallium/winsys/radeon/drm/radeon_drm_winsys.c |   26 ++
 src/gallium/winsys/radeon/drm/radeon_drm_winsys.h |    1 +
 src/gallium/winsys/radeon/drm/radeon_winsys.h     |   25 ++-
 23 files changed, 832 insertions(+), 133 deletions(-)

Diff:   http://cgit.freedesktop.org/mesa/mesa/diff/?id=c0c979eebc076b95cc8d18a013ce2968fe6311ad



More information about the mesa-commit mailing list