amdgpu/addrlib: add equation generation
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Wed, 20 Jul 2016 18:25:15 +0000 (20:25 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 30 Mar 2017 12:44:33 +0000 (14:44 +0200)
commit10f7d1cb0321c5c15b9eb318c2c59ea0d9ac14db
treebb3d234784c0d7a142cd3adedfaaefaf8d6fad45
parent3e44337bd6314056b5c0d18e99754993f872c19e
amdgpu/addrlib: add equation generation

1. Add new surface flags needEquation for client driver use to force
the surface tile setting equation compatible. Override 2D/3D macro
tile mode to PRT_* tile mode if this flag is TRUE and num slice > 1.
2. Add numEquations and pEquationTable in ADDR_CREATE_OUTPUT structure
to return number of equations and the equation table to client driver
3. Add equationIndex in ADDR_COMPUTE_SURFACE_INFO_OUTPUT structure to
return the equation index to client driver

Please note the use of address equation has following restrictions:
1) The surface can't be splitable
2) The surface can't have non zero tile swizzle value
3) Surface with > 1 slices must have PRT tile mode, which disable
slice rotation
12 files changed:
src/amd/addrlib/addrinterface.h
src/amd/addrlib/core/addrcommon.h
src/amd/addrlib/core/addrlib.cpp
src/amd/addrlib/core/addrlib.h
src/amd/addrlib/core/addrlib1.cpp
src/amd/addrlib/core/addrlib1.h
src/amd/addrlib/r800/ciaddrlib.cpp
src/amd/addrlib/r800/ciaddrlib.h
src/amd/addrlib/r800/egbaddrlib.cpp
src/amd/addrlib/r800/egbaddrlib.h
src/amd/addrlib/r800/siaddrlib.cpp
src/amd/addrlib/r800/siaddrlib.h