iris: Disable CCS_E for 32-bit floating point textures.
authorKenneth Graunke <kenneth@whitecape.org>
Thu, 29 Aug 2019 07:38:15 +0000 (00:38 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 30 Sep 2019 17:44:52 +0000 (10:44 -0700)
commita0a93763fba18ce3c9c90a0f939005f0b594e27c
tree98e4b537e0a8d05506e960ab514cfaec94a3ca56
parent4a0d2e2880fb4752666bbd4faaf340437aea1a04
iris: Disable CCS_E for 32-bit floating point textures.

A while back, Michael Larabel noticed that Paraview's Wavelet Volume
case runs significantly slower on iris than i965.  It turns out this
is because we enable CCS_E for 32-bit floating point formats, while
i965 disables it, with an oblique comment saying that we benchmarked
it (on what exactly?) and determined that it was a loss.

Paraview uses both R32_FLOAT and R32G32B32A32_FLOAT, and I observed
large framerate drops when enabling CCS_E for either format.  However,
several other benchmarks (Aztec Ruins, many Synmark cases) use 16-bit
floating point formats, with no apparent ill effects.

So, disable compression for 32-bit float formats for now, but leave it
enabled for 16-bit float formats as they seem to be working fine.

Improves performance in Paraview's Wavelet Volume test by 62% on a
Skylake GT4e.

Fixes: 3cfc6a207bd ("iris: Fill out res->aux.possible_usages")
src/gallium/drivers/iris/iris_resource.c