Created attachment 95696 [details] output System Environment: -------------------------- Platform: Broadwell Libdrm: (master)libdrm-2.4.52-8-gee8c9a1383d4a50871e146ade2fe15b25f3377d4 Mesa: (master)2c886eba7820f7e3e965dd16b786b0a412d8ef11 Xserver: (master)xorg-server-1.15.99.901-62-g81a4952d3dcab9ca3a1ee399c773f5ac352036c4 Xf86_video_intel:(master)2.99.910-90-g20026626d28b304a6156fb2c49752e18f2498de5 Cairo: (master)ed175b2a2bebb6def85133257bc11a875d13b0dd Libva: (staging)bf2e1773d4373619232c4c653b8cda19ea329441 Libva_intel_driver:(staging)6e1baecded9d23b32daa8e34828b6a5d32a27c46 Kernel: (drm-intel-nightly) cbaedf0017fb0adcbabf57d38e52aa8bd815b9b6 Bug detailed description: ------------------------- It fails on BDW with Mesa master branch. Following cases also fail and have same bisect commit: (GLES20)GL_atan_atan_float_vert_xvary.test (GLES20)GL_atan_atan_float_vert_xvaryyvary.test (GLES20)GL_atan_atan_vec2_vert_xvaryyvary.test (GLES20)GL_atan_atan_vec3_vert_xvary.test (GLES20)GL_atan_atan_vec3_vert_xvaryyvary.test Bisect shows: c10896b593720457e99a731e9493ce8d6c497fab is the first bad commit commit c10896b593720457e99a731e9493ce8d6c497fab Author: Eric Anholt <eric@anholt.net> Date: Tue Mar 4 15:52:05 2014 -0800 i965: Fix render-to-texture in non-FinishRenderTexture cases. We've had several problems now with FinishRenderTexture not getting called enough, and we're ready to just give up on it ever doing what we need. In particular, an upcoming Steam title had rendering bugs that could be fixed by always_flush_cache=true. Instead of hoping Mesa core can figure out when we need to flush our caches, just track what BOs we've rendered to in a set, and when we render from a BO in that set, emit a flush and clear the set. There's some overhead to keeping this set, but most of that is just hashing the pointer -- it turns out our set never even gets very large, because cache flushes are so common (even on cairo-gl). No statistically significant performance difference in cairo-gl (n=100), despite spending ~.5% CPU in these set operations. v1: (Original patch by Eric Anholt.) v2: (Changes by Ken Graunke.) - Rebase forward from May 7th 2013 -> March 4th 2014. - Drop the FinishRenderTexture hook entirely; after rebasing the patch, the hook was just an empty function. - Move the brw_render_cache_set_clear() call from intel_batchbuffer_emit_flush() to brw_emit_pipe_control_flush(). In theory, this could catch more cases where we've flushed. - Consider stencil as a possible texturing source. v3: (changes by anholt): - Move set_clear() back to emit_mi_flush() -- it means we can drop more forced flushes from the code. In the previous location, it wouldn't have been called when we wanted pre-gen6. - Move the set clear from batch init to reset -- it should be empty at the start of every batch, since the kernel handled any inter-batch flush for us. v4: Drop the debug code in set.c that I accidentally committed. Signed-off-by: Eric Anholt <eric@anholt.net> Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Tested-by: Dylan Baker <baker.dylan.c@gmail.com> [v2] Reproduce steps: ---------------------------- 1. xinit 2. ./GTF -width=64 -height=64 -run=GL/atan/atan_vec2_vert_xvary.test
The bisected commit seems unrelated. I believe it may have passed by luck before. I'm seeing GPU hangs. Disabling opt_copy_propagation in brw_vec4.cpp makes the test pass without hangs.
This is passing for Topi, and I believe it passed last I ran it as well. Marking fixed (I think it was my control flow fix, but it might've been something else).
Verified.Fixed.
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.