This fixes an assertion failure in [at least] one of the Unreal Engine Linux demo/games that uses DXT1 compression. Specifically, the "Vehicle Game". Upstream: cgit.freedesktop.org
At some point, the game ends up trying to blit mip level whose size is 2x2, which is smaller than a DXT1 block. As a result, the assertion in the blit path is triggered. It should be safe to simply make sure we align the width and height, which is sadly an example of compression being less efficient.
NOTE: The demo seems to work fine without the assert, and therefore release builds of mesa wouldn't stumble over this. Perhaps there is some unnoticeable corruption, but I had trouble spotting it.
Thanks to Jason for looking at my backtrace and figuring out what was going on.
v2: Use NPOT alignment to make sure ASTC is handled properly (Ilia) Remove comment about how this doesn't fix other bugs, because it does.
Cc: "11.0 11.1" 088280e i965: Make sure we blit a full compressed block
src/mesa/drivers/dri/i965/intel_copy_image.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)Related Mesa Activity
Eleni Maria Stea
Sergii Romantsov
Dave Airlie
Andres GomezShare
Recent Mesa Activity
Emma Anholt
Eric Anholt
Jason Ekstrand
Erik Faye-Lund
Mike Blumenkrantz