Allow linear swizzle mode with tiled image requests.

Mesa address lib faults if the only acceptable swizzle modes are
forbidden.  The old address lib simply ignored the forbidden list
in this case.  Mesa addrlib will not select linear unless there
is no other option so allowing linear mode for tiled images will
still use tiled modes when possible.

Change-Id: I1aa44d072db902c968484dbff67b482af03b45d9
Este cometimento está contido em:
Sean Keely cometeu 2020-05-11 23:34:44 -04:00
1 ascendente 9c9064c2b7
cometimento c60364e1e0
3 ficheiros modificados
+5 -16

Não existem ficheiros que correspondam à sua pesquisa

+3 -4
Ver ficheiro
@@ -629,8 +629,8 @@ uint32_t ImageManagerNv::GetAddrlibSurfaceInfoNv(
prefSettingsInput.resourceLoction = ADDR_RSRC_LOC_UNDEF;
prefSettingsInput.resourceType = in.resourceType;
// Disallow all swizzles but linear.
if (tileMode == Image::TileMode::LINEAR) {
// this should force linear.
prefSettingsInput.forbiddenBlock.macroThin4KB = 1;
prefSettingsInput.forbiddenBlock.macroThick4KB = 1;
prefSettingsInput.forbiddenBlock.macroThin64KB = 1;
@@ -638,9 +638,8 @@ uint32_t ImageManagerNv::GetAddrlibSurfaceInfoNv(
prefSettingsInput.forbiddenBlock.micro = 1;
prefSettingsInput.forbiddenBlock.var = 1;
} else {
// this should not allow linear.
prefSettingsInput.forbiddenBlock.linear = 1;
// Debug setting, simplifies buffer alignment.
// Debug setting, simplifies buffer alignment until language runtimes have official gfx10
// support.
prefSettingsInput.forbiddenBlock.macroThin64KB = 1;
prefSettingsInput.forbiddenBlock.macroThick64KB = 1;
}