System Environment: -------------------------- Platform: Ironlake/Sandybridge/Ivybridge/Haswell/Baytrail Libdrm: (master)libdrm-2.4.52 Mesa: (master)ded56746890ea826a32d763b2fe2af9a16755e87 Xserver: (master)xorg-server-1.15.0-1-ga92c6406e7f6c0b74fb1cb9361ad904facc0f722 Xf86_video_intel:(master)2.99.907-40-gf7121bf733e9b02248fa0b7bb62a902622dd8f10 Cairo: (master)2a7f133639bed86a29dd9693cb78c0aa42eaff30 Libva: (staging)79ddde6bab54618046f136471c020c08ff4fde50 Libva_intel_driver:(staging)6736a39fce442a8e5abb2a2e99adf56e3965d35f Kernel: (drm-intel-nightly) 164a4cb4c1431a0689f85507868356fae24da638 Bug detailed description: ----------------------------- It core dumped on Ironlake/Sandybridge/Ivybridge/Haswell/Baytrail with mesa master branch. It doesn't happen on 10.0 branch. spec_ARB_map_buffer_range_MAP_INVALIDATE_RANGE_BIT_increment-offset and spec_ARB_map_buffer_range_MAP_INVALIDATE_RANGE_BIT_offset=0 also core dumped by same bisect commit. Bisect shows:1ec663ab193e3dc87eb8729de4f0ecee7027961b is the first bad commit. commit 1ec663ab193e3dc87eb8729de4f0ecee7027961b Author: Ian Romanick <ian.d.romanick@intel.com> AuthorDate: Fri Dec 20 12:42:33 2013 -0800 Commit: Ian Romanick <ian.d.romanick@intel.com> CommitDate: Mon Jan 20 11:40:34 2014 -0800 i965: Ensure that intel_bufferobj_map_range meets alignment guarantees No piglit regressions on IVB. With minor tweaks to the arb_map_buffer_alignment-map-invalidate-range test (disable the extension check, set alignment to 64 instead of querying), the i965 driver would fail the test without this patch (as predicted by Eric). With this patch, it passes. v2: Remove MAX2(64, ...). Suggested by Ken. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> Cc: Siavash Eliasi <siavashserver@gmail.com> output: Testing GL_MAP_INVALIDATE_RANGE_BIT. Offset is decremented. Floating point exception (core dumped) (gdb) bt #0 0xb7a1bfe6 in intel_bufferobj_map_range (ctx=0xb771801c, offset=16776, length=24, access=6, obj=0x83072d8) at intel_buffer_objects.c:367 #1 0xb778d31d in _mesa_MapBufferRange (target=34962, offset=16776, length=24, access=6) at main/bufferobj.c:1939 #2 0x080492dc in upload (buffer=1, slot=699, x1=0, y1=0, x2=20, y2=20) at /GFX/Test/Piglit/piglit/tests/spec/arb_map_buffer_range/invalidate.c:141 #3 0x0804960e in piglit_display () at /GFX/Test/Piglit/piglit/tests/spec/arb_map_buffer_range/invalidate.c:214 #4 0xb7f09aaf in run_test (gl_fw=0x804b008, argc=3, argv=0xbffff344) at /GFX/Test/Piglit/piglit/tests/util/piglit-framework-gl/piglit_fbo_framework.c:52 #5 0xb7f07954 in piglit_gl_test_run (argc=3, argv=0xbffff344, config=0xbffff268) at /GFX/Test/Piglit/piglit/tests/util/piglit-framework-gl.c:191 #6 0x08048e7d in main (argc=3, argv=0xbffff344) at /GFX/Test/Piglit/piglit/tests/spec/arb_map_buffer_range/invalidate.c:46 Reproduce steps: ---------------------------- 1. xinit 2. bin/map_buffer_range-invalidate MAP_INVALIDATE_RANGE_BIT decrement-offset -fbo -auto
Patch sent to the mailing list: http://lists.freedesktop.org/archives/mesa-dev/2014-January/052219.html
Fixed by: commit e4fcae0755d8a369b657f2ada22815ea77312fbe Author: Ian Romanick <ian.d.romanick@intel.com> Date: Wed Jan 22 08:28:49 2014 -0800 mesa: Set gl_constants::MinMapBufferAlignment Leaving it set to zero isn't really correct since every allocation has at least an alignment of 1 byte. It also caused a problem in the i965 driver after I removed the MAX(64, ...) from the alignment calculation. That's what I get for changing a patch without retesting it. :( Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=73907 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org> Cc: Lu Hua <huax.lu@intel.com>
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.