| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|
|
|
|
| |
1) dccCompatible for padding MSAA surface to support fast clear
2) dccPipeWorkaround for padding surface to support dcc
|
|
|
|
| |
calculated correctly
|
|
|
|
|
|
|
| |
tile index is for PRT on SI
If this flag is set for mip0, client should set prt flag for sub mips,
so that address lib can select the correct tile index for sub mips.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The usage should be client first call AddrComputeSurfaceInfo() on
depth surface with flag "matchStencilTilecfg", AddrLib will use
2DThin1 tile index for depth as much as possible and do not down grade
unless alignment requirement cannot be met.
1. If there is a matched 2DThin1 tile index for stencil which make
sure they will share same tile config parameters, then return the
stencil 2DThin1 tile index as well.
2. If using 2DThin1 tile mode cannot make sure such thing happen, and
TcCompatible flag was set, then ignore this flag then try 2DThin1 tile
mode for depth and stencil again.
3. If 2DThin1 tile mode cannot make sure depth and stencil to have
same tile config parameters, then down grade depth surface tile mode
to 1DThin1.
4. If depth surface's tile mode was 1DThin1, then return 1DThin1 tile
index for stencil.
5. If depth surface's tile mode is PRT, then return invalid tile index
to stencil since their tile config parameters will never be met.
Client driver then check the returned tile index of stencil -- if it
is not invalid tile index, then call AddrComputeSurfaceInfo() on
stencil surface with the returned stencil tile index to get full
output information. Please note, client needs to set flag
"useTileIndex" when AddrLib get created.
|
|
|
|
|
|
|
|
| |
ratio settings
By this way, we can have valid equation for 2D_THIN1 tile mode.
Add flag "preferEquation" to return equation index without adjusting
input tile mode.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
1) minimizePadding - Use 1D tile mode if padded size of 2D is bigger
than 1D
2) maxBaseAlign - Force PRT tile mode if macro block size is bigger than
requested alignment.
Also, related changes to tile mode optimization for needEquation.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|
|
|
|
| |
The change also modifies function CiLib::HwlPadDimensions to report
adjusted pitch alignment.
|
|
|
|
|
|
| |
Find ^/{80,99}$ and replace them to 100 "/"
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|
|
|
| |
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|
|
|
| |
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|
|
|
| |
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|
|
|
|
| |
This can be used by address lib client to ask address lib to select
tile mode.
|
|
|
|
| |
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|
|
|
| |
Experiment show 1D tiling + TcCompatible cannot work together.
|
| |
|
|
|
|
|
| |
This is useful for debugging and special cases for stencil surfaces
do not require texture fetch compatible.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Sometimes client driver passes valid tile info into address library,
in this case, the tile index is computed in function
HwlPostCheckTileIndex instead of CiAddrLib::HwlSetupTileCfg.
We need to call HwlPostCheckTileIndex to calculate the correct tile
index to get tile split bytes for this case.
|
|
|
|
| |
It helps fix analysis warnings in MSC.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
and AddrConvertTileInfoToHW
When clients queries tile Info from tile index and expects accurate
tileSplit info, bits per pixel info is required to be provided since
this is necessary for computing tileSplitBytes; otherwise Addrlib will
return value of "tileBytes" instead if bpp is 0 - which is also
current logic. If clients don't need tileSplit info, it's OK to pass
bpp with value 0.
|
|
|
|
|
| |
Switch the tile index based on logic instead of hardcoded threshold
for different ASIC.
|
|
|
|
|
| |
This flag indicates to the client if this level's DCC memory is aligned
or not. No aligned means there are padding to the end.
|
|
|
|
| |
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|
|
|
| |
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|
|
|
|
|
| |
Add one more abstraction layer into inheritance system.
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|
|
|
|
|
| |
No code changes.
Signed-off-by: Nicolai Hähnle <[email protected]>
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Kaveri (2-pipe) macro tiling mode table was initially set to all
4-aspect-ratio so the swizzling path did not work for it and then we
chose to pad the offset. We now discover the root cause is that if
ratio > 2, the swizzling path does not work. So we can safely use the
same path for Kaveri.
|
|
|
|
| |
Note: remove reference to degrade4Space and use opt4Space instead.
|
|
|
|
|
|
|
| |
Even if surface info input flag "tcComaptible" is enabled, tc
compatible may be not supported if tile split happens for depth
surfaces. Add a new flag in output structure to notify client to
disable tc compatible in this case.
|
|
|
|
| |
Signed-off-by: Nicolai Hähnle <[email protected]>
|
|
|
|
|
| |
Flag tcCompatible has different usage in CI and VI. Add a new flag
"nonSplit" for CI.
|
|
|
|
|
|
|
| |
Carrizo row size is 1K, while tileSplitBytes is 2K for a 4xAA 32bpp
depth surface. Remove the sanity check that tileSplitBytes must be
greater than row size. There could be performance loss but may be
covered by non-split depth which enables tc-compatible read.
|