210f4aff1e
As we recently discovered, the layout of level L of a mipmapped 2D image of size WxH is /not/ the same as the layout of a non-mipmapped 2D image of size minify(W, L) x minify(H, L). The difference occurs due to subtleties of the "power of two" miptrees which can force a level to use a larger tile size than it would have required at root level. To handle this quirk correctly, the driver must not implement texture views with address arithmetic -- it must supply instead the base width/height of a texture and use first/last level fields on the texture descriptor to map it. Similar issues occur when writing a particular level of a mipmapped texture, which was handled correctly in the colour case but not the Z/S case. Fixes dEQP-GLES2.functional.texture.mipmap.cube.generate.* Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18380>