Bug 22288

Summary: [bisected OGLC] oglc cases blendfunc.c/blend-constcolor.c regression
Product: xorg Reporter: liuhaien <haien.liu>
Component: Server/GeneralAssignee: Ian Romanick <idr>
Status: VERIFIED FIXED QA Contact:
Severity: major    
Priority: high Keywords: regression
Version: git   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description liuhaien 2009-06-14 23:18:09 UTC
System Environment:
--------------------------
Host:		x-g45b
Arch:		x86_64
Platform:		G45
Libdrm:		(master)3d4bfe8c893d016ef43d1ebf28e4607aa1f540a4
Mesa:		(mesa_7_5_branch)fb64365642be82ac0dc0d43452afc4650d309b53
Xserver:	(server-1.6-branch)6be19e8f43086fb4b7fb30a47b89b5f3eed798ef
Xf86_video_intel:		(master)cdbf84f20295c8a78624318aa6fdfff3f5c8ce27
Kernel:       (for-linus)0e7ddf7eeeef5aea85412120539ab5369577faeb


Bug detailed description:
--------------------------
It is a regression on server-1.6-branch of Xserver. oglc cases blendfunc.c/blend-constcolor.c fail due to Ian's commit as below:

d7277296ed7aea7bd41b3489d4ceef750d400206 is first bad commit
commit d7277296ed7aea7bd41b3489d4ceef750d400206
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Thu Apr 9 14:38:24 2009 -0700

	DRI2: Synchronize the contents of the real and fake front-buffers

	Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
	(cherry picked from commit 567cf67959b30432ae30f4851ec17b3a375ab838)

Reproduce Steps:
----------------------------------
1.xinit&
2. run oglc case
Comment 1 liuhaien 2009-06-15 01:03:34 UTC
this issue also happens with xserver master.
commit 567cf67959b30432ae30f4851ec17b3a375ab838
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Thu Apr 9 14:38:24 2009 -0700

    DRI2: Synchronize the contents of the real and fake front-buffers

    Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Comment 2 Ian Romanick 2009-06-26 12:08:35 UTC
It looks like all the single buffered visuals that have a depth buffer fail, but all of the other visuals, even other single buffered visuals, pass.
Comment 3 Ian Romanick 2009-06-26 13:34:06 UTC
This should be fixed by this commit:

commit 2d86503471cb8691ce266342810237fc1b15a7b2
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Fri Jun 26 13:30:16 2009 -0700

    intel / DRI2: Additional flush of fake front-buffer to real front-buffer
    
    To maintain correctness, the server will copy the real front-buffer to
    a newly allocated fake front-buffer in DRI2GetBuffersWithFormat.
    However, if the DRI2GetBuffersWithFormat is triggered by glViewport,
    this will copy stale data into the new buffer.  Fix this by flushing
    the current fake front-buffer to the real front-buffer in
    intel_viewport.
    
    Fixes bug #22288.
Comment 4 liuhaien 2009-06-28 18:51:58 UTC
verified with below commits:
Libdrm:		(master)790097c51330090b2b7b90429b9ab8ddf259fd8e
Mesa:		(mesa_7_5_branch)418987ff05f892d3c33ed4ddbe856c496b05ea14
Xserver:	(server-1.6-branch)dbac41b624e4aa86a6a184b7ebb52bfdd367bbf0
Xf86_video_intel:		(master)f0270bbb47baed78a0ff6189ae20d3ac322ec02b

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.