Latest Mesa from git (a1652a0) aborts at UnrealEngine v4 demos [1] startup to: ----------- $ INTEL_DEBUG=perf SunTemple/Binaries/Linux/SunTemple ... 128x51744 miptree too large to blit, falling back to untiled SIMD16 shader failed to compile: CS compile failed: Failure to register allocate. Reduce number of live scalar values to avoid this. Multi-LOD fast clear - giving up (2048x1024x11). Multi-LOD fast clear - giving up (2048x1024x11). SunTemple: ../../../src/intel/blorp/blorp_blit.c:1767: surf_convert_to_uncompressed: Assertion `*height % fmtl->bh == 0 || *y + *height == info->surf.logical_level0_px.height' failed. Aborted (core dumped) ----------- Assert happens for Stylized, Sun Temple, Light Room Interior Day, Subway Reflections and Effects Cave demos. They work fine with Mesa 12.0.3. There's no assert in Atlantis demo. [1] https://wiki.unrealengine.com/Linux_Demos Note: in Effects cave & Reflections Subway demos the compilation of CS shaders (using "Unsupported form of variable indexing") takes so much time (tens of minutes?) that I didn't have patience to wait for them to start, but used MESA_GL_VERSION_OVERRIDE=4.2 to disable CS use.
Demos start and work seemingly fine if one disables debug config option (but it doesn't significantly speed up CS compile). Mesa 12.0.3 didn't have the failing assert, or the function in which it is, that came in: commit 5ae8043fed264997e75b480dd30aa6ef44aae4e6 Author: Jason Ekstrand <jason.ekstrand@intel.com> AuthorDate: Tue Aug 30 13:13:43 2016 -0700 Commit: Jason Ekstrand <jason.ekstrand@intel.com> CommitDate: Mon Sep 12 19:42:57 2016 -0700 intel/blorp: Add an entrypoint for doing bit-for-bit copies
Filed bug 98455 for CS compilation issue.
Fixed by the following commit: commit 4964a5149b7776ce27aaeab2be0c2ebf41ded740 Author: Jason Ekstrand <jason.ekstrand@intel.com> Date: Tue Oct 25 22:47:21 2016 -0700 intel/blorp: Fix a couple asserts around image copy rectangles With dealing with rectangles in compressed images, you can have a width or height that isn't a multiple of the corresponding compression block dimension but only if that edge of your rectangle is on the edge of the image. When we call convert_to_single_slice, it creates an 2-D image and a set of tile offsets into that image. When detecting the right-edge and bottom-edge cases, we weren't including the tile offsets so the assert would misfire. This caused crashes in a few UE4 demos Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reported-by: "Eero Tamminen" <eero.t.tamminen@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98431 Cc: "13.0" <mesa-stable@lists.freedesktop.org> Tested-by: "Eero Tamminen" <eero.t.tamminen@intel.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.