Bug 22344

Summary: [regression OGLC] 7 cases failed
Product: Mesa Reporter: Shuang He <shuang.he>
Component: Drivers/DRI/i915Assignee: Ian Romanick <idr>
Status: VERIFIED FIXED QA Contact:
Severity: major    
Priority: high CC: brian.paul
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Shuang He 2009-06-17 22:53:03 UTC
System Environment:
--------------------------
Arch:           i386
Platform:       945GM
Libdrm 	(master)2fa2db138ba989bfa1a8cd9ab66d83fb7369249e
Mesa 	(master)77506dac8e81e9548a7e9680ce367175fe5747af
Xserver 	(master)14581afb474552716c02ca15220ca7050123c375
Xf86_video_intel 	(master)b5cd2130f97591f4a387db1b98c940c30bc6404c
Kernel 	(for-linus)0e7ddf7eeeef5aea85412120539ab5369577faeb 

Bug detailed description:
-------------------------
many OGLC case (like pxconv-read.c, pxconv-gettex.c, pixel-invar.c, pxstore-gettex.c, pxstore-read.c, pxtrans-gettex.c, pxtrans-read.c) don't
run now. This is caused by following commit:

6214c7262fe2d31553a4974022e08a7715693014 is first bad commit
commit 6214c7262fe2d31553a4974022e08a7715693014
Author: Jos茅 Fonseca <jfonseca@vmware.com>
Date:   Mon Jun 15 19:19:29 2009 +0100

    mesa: Use type modifier for float constants.


Reproduce steps:
----------------
1.xinit&
2. run olgc/pxconv-read.c ...
Comment 1 Ian Romanick 2009-06-22 16:46:52 UTC
The problem with this commit is that some of the constants, such as 4294967295.0 and 2147483647.0, have mantissas that are too large to fit in a 32-bit float.  I suspect removing the "F" from the instances of those values will eliminate the problems in the pixel transfer paths.
Comment 2 Ian Romanick 2009-06-22 18:36:07 UTC
I went a head and pushed a fix for this.  If Jose wants to do something different here, I'm fine with that.  I can't find his bugzilla account, so I can't CC him.  Brian, can you ping him?

commit 70e72070fce6aa1e0918dcc62c1949465cee69f7
Author: Ian Romanick <ian.d.romanick@intel.com>
Date:   Mon Jun 22 18:22:51 2009 -0700

    mesa: From float type modifier from values to large for singles
    
    The values 2147483648.0 and 4294967294.0 are too larget to be stored in sing
    precision floats.  Forcing these to be singles causes bits to be lost, which
    results in errors in some pixel transfer tests.
    
    This fixes bug #22344.
Comment 3 Shuang He 2009-06-22 22:04:27 UTC
verified against following configuration on Q35:
mesa: (master)	70e72070fce6aa1e0918dcc62c1949465cee69f7
Comment 4 Adam Jackson 2009-08-24 12:32:28 UTC
Mass version move, cvs -> git

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.