mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-07 19:30:12 +01:00
amd/addrlib: Apply input pitch after internal pitch aligning
This commit is contained in:
parent
11f1306207
commit
588e5bbf3d
1 changed files with 33 additions and 12 deletions
|
|
@ -240,18 +240,6 @@ BOOL_32 EgBasedLib::ComputeSurfaceInfoLinear(
|
|||
&pOut->pitchAlign,
|
||||
&pOut->heightAlign);
|
||||
|
||||
if (pIn->pitchAlign != 0)
|
||||
{
|
||||
ADDR_ASSERT((pIn->pitchAlign % pOut->pitchAlign) == 0);
|
||||
pOut->pitchAlign = pIn->pitchAlign;
|
||||
}
|
||||
|
||||
if (pIn->heightAlign != 0)
|
||||
{
|
||||
ADDR_ASSERT((pIn->heightAlign % pOut->heightAlign) == 0);
|
||||
pOut->heightAlign = pIn->heightAlign;
|
||||
}
|
||||
|
||||
if ((pIn->tileMode == ADDR_TM_LINEAR_GENERAL) && pIn->flags.color && (pIn->height > 1))
|
||||
{
|
||||
#if !ALT_TEST
|
||||
|
|
@ -297,6 +285,39 @@ BOOL_32 EgBasedLib::ComputeSurfaceInfoLinear(
|
|||
&expHeight,
|
||||
&pOut->heightAlign);
|
||||
|
||||
if (pIn->pitchAlign != 0)
|
||||
{
|
||||
ADDR_ASSERT((pIn->pitchAlign % pOut->pitchAlign) == 0);
|
||||
pOut->pitchAlign = pIn->pitchAlign;
|
||||
|
||||
if (IsPow2(pOut->pitchAlign))
|
||||
{
|
||||
expPitch = PowTwoAlign(expPitch, pOut->pitchAlign);
|
||||
}
|
||||
else
|
||||
{
|
||||
expPitch += pOut->pitchAlign - 1;
|
||||
expPitch /= pOut->pitchAlign;
|
||||
expPitch *= pOut->pitchAlign;
|
||||
}
|
||||
}
|
||||
|
||||
if (pIn->heightAlign != 0)
|
||||
{
|
||||
ADDR_ASSERT((pIn->heightAlign % pOut->heightAlign) == 0);
|
||||
pOut->heightAlign = pIn->heightAlign;
|
||||
|
||||
if (IsPow2(pOut->heightAlign))
|
||||
{
|
||||
expHeight = PowTwoAlign(expHeight, pOut->heightAlign);
|
||||
}
|
||||
else
|
||||
{
|
||||
expHeight += pOut->heightAlign - 1;
|
||||
expHeight /= pOut->heightAlign;
|
||||
expHeight *= pOut->heightAlign;
|
||||
}
|
||||
}
|
||||
|
||||
pOut->pitch = expPitch;
|
||||
pOut->height = expHeight;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue