System Environment: -------------------------- Platform: Ironlake/Sandybridge Libdrm: (master)libdrm-2.4.53 Mesa: (master)6d0e30c6a332de9ea7ab00e1fd303df2fb337c64 Xserver: (master)xorg-server-1.15.99.902-2-g3028ae6c9aa37168e249e0d847b29f8e3efb05b2 Xf86_video_intel:(master)2.99.911-80-gfd0579016be9e0385c0cdd07a9f9e17f93b93a4f Cairo: (master)bb17403622e9ea474017e0039af8ee48b2b285db Libva: (staging)960352aaf1e11891a533ce2c98b16edde24d6851 Libva_intel_driver:(staging)782b8afdda14f000874d8acf51c3e8c490d55773 Kernel: (drm-intel-nightly) 45912bd2d9d3d8f8e78e81bbab25251c6b17c5f8 Bug detailed description: ----------------------------- It fails on Ironlake and Sandybrisge with mesa master branch, works well on 10.1 branch, spec_EXT_texture_array_copyteximage_1D_ARRAY and spec_EXT_texture_array_copyteximage_2D_ARRAY also fail with same bisect commit. Bisect shows: 234db609544ee521458ce8b648e70cffe2fda6f9 is the first bad commit. commit 234db609544ee521458ce8b648e70cffe2fda6f9 Author: Eric Anholt <eric@anholt.net> AuthorDate: Fri Feb 28 13:23:25 2014 -0800 Commit: Eric Anholt <eric@anholt.net> CommitDate: Tue Apr 15 14:34:22 2014 -0700 meta: Add an accelerated glCopyTexSubImage using glBlitFramebuffer. You'll note from the previous commits that there's something of a loop here: You call CTSI, which calls BlitFB, then if things go wrong that falls back to CTSI. As a result, meta CTSI reaches over into blitfb to tell it "no, don't try that fallback". v2: Drop the _mesa_update_state(), which was only necessary due to use of _mesa_clip_blit() in _mesa_meta_BlitFramebuffer() in another patch series. v3: Drop an _EXT suffix I copy-and-pasted. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> (v2) Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> output: Testing GL_TEXTURE_CUBE_MAP Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RED Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RG Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB8 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB16 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB16F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB32F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA8 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA16 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA16F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA32F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RED Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RG Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RGB Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RGBA Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_LUMINANCE Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_LUMINANCE_ALPHA Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_INTENSITY Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT16 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT24 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT32F WARNING: Depth/stencil buffer needs alignment to 8-pixel boundaries. Truncating offset, bad rendering may occur. WARNING: Depth/stencil buffer needs alignment to 8-pixel boundaries. Truncating offset, bad rendering may occur. Probe color at (336,12) Expected: 0.637500 0.637500 0.637500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (348,0) Expected: 0.412500 0.412500 0.412500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (336,12) Expected: 0.187500 0.187500 0.187500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH24_STENCIL8 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH32F_STENCIL8 Probe color at (368,12) Expected: 0.637500 0.637500 0.637500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (380,0) Expected: 0.412500 0.412500 0.412500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (368,12) Expected: 0.187500 0.187500 0.187500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 PIGLIT: {'result': 'fail' } Reproduce steps: ---------------------------- 1. xinit 2. ./bin/copyteximage CUBE -auto
Commit 234db609544ee521458ce8b648e70cffe2fda6f9 also regressed VTK tests that use transparency (depth peeling), with mesa configured as: ./autogen.sh --prefix=... --disable-dri --disable-egl --disable-shared-glapi --enable-xlib-glx --enable-osmesa --without-gallium-drivers The problem goes away if I remove the call to copytexsubimage_using_blit_framebuffer added by that commit. I'm happy to provide more information about the tests if needed.
It also fails on Mesa 10.2 branch.
Previously, the Meta CopyTexSubImage path would do ReadPixels and TexImage. The TexImage was done via CPU mappings. With this patch, it uses Meta BlitFramebuffer, which does texturing and rendering. Unfortunately, it hits a limitation in our Gen4-6 rendering path: the hardware ignores the low bits of the surface tile offsets. So, we get bad rendering. Jordan's gen6-layered series fixes this on Sandybridge. Thus, reassigning to him. I'm not sure what to do about Ironlake.
For SNB only, this should be resolved in master a1dca7069bd46074f43658c87d396bff8cd4dffd. Please verify.
Fixed on SNB with latest master branch.It still fails on ILK. output on SNB: Testing GL_TEXTURE_CUBE_MAP Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RED Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RG Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB8 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB16 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB16F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB32F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA8 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA16 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA16F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA32F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RED Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RG Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RGB Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RGBA Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_LUMINANCE Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_LUMINANCE_ALPHA Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_INTENSITY Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT16 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT24 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT32F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH24_STENCIL8 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH32F_STENCIL8 PIGLIT: {"result": "pass" } output on ILK: Testing GL_TEXTURE_CUBE_MAP Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RED Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RG Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB8 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB16 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB16F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGB32F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA8 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA16 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA16F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_RGBA32F Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RED Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RG Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RGB Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_COMPRESSED_RGBA Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_LUMINANCE Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_LUMINANCE_ALPHA Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_INTENSITY Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT WARNING: Depth/stencil buffer needs alignment to 8-pixel boundaries. Truncating offset, bad rendering may occur. Probe color at (288,10) Expected: 0.637500 0.637500 0.637500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (288,12) Expected: 0.525000 0.525000 0.525000 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (302,0) Expected: 0.412500 0.412500 0.412500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (288,10) Expected: 0.187500 0.187500 0.187500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT16 Probe color at (304,10) Expected: 0.637500 0.637500 0.637500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (304,12) Expected: 0.525000 0.525000 0.525000 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (318,0) Expected: 0.412500 0.412500 0.412500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (304,10) Expected: 0.187500 0.187500 0.187500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT24 Probe color at (320,10) Expected: 0.637500 0.637500 0.637500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (320,12) Expected: 0.525000 0.525000 0.525000 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (334,0) Expected: 0.412500 0.412500 0.412500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (320,10) Expected: 0.187500 0.187500 0.187500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH_COMPONENT32F Probe color at (336,10) Expected: 0.637500 0.637500 0.637500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (336,12) Expected: 0.525000 0.525000 0.525000 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (350,0) Expected: 0.412500 0.412500 0.412500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Probe color at (336,10) Expected: 0.187500 0.187500 0.187500 1.000000 Observed: 0.000000 0.000000 0.000000 1.000000 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH24_STENCIL8 Texture target = GL_TEXTURE_CUBE_MAP, Internal format = GL_DEPTH32F_STENCIL8 PIGLIT: {"result": "fail" }
Lowering the priority of this bug, since it only shows up on ILK.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1440.
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.