Bug 73907 - [i965 Bisected]Piglit/spec/ARB_map_buffer_range/MAP_INVALIDATE_RANGE_BIT decrement-offset core dumped
Summary: [i965 Bisected]Piglit/spec/ARB_map_buffer_range/MAP_INVALIDATE_RANGE_BIT decr...
Status: VERIFIED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: unspecified
Hardware: All Linux (All)
: high major
Assignee: Ian Romanick
QA Contact: Intel 3D Bugs Mailing List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-22 01:52 UTC by lu hua
Modified: 2014-01-29 02:38 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments

Description lu hua 2014-01-22 01:52:47 UTC
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
Comment 1 Ian Romanick 2014-01-22 16:33:12 UTC
Patch sent to the mailing list:

http://lists.freedesktop.org/archives/mesa-dev/2014-January/052219.html
Comment 2 Ian Romanick 2014-01-27 15:52:17 UTC
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>
Comment 3 lu hua 2014-01-29 02:38:25 UTC
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.