Bug 72654

Summary: [llvmpipe] piglit arb_color_buffer_float-render GL_RGBA16F fog regression
Product: Mesa Reporter: Vinson Lee <vlee>
Component: OtherAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: jfonseca, sroland, zackr
Version: gitKeywords: regression
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2013-12-13 00:42:20 UTC
mesa: e84a1ab3c400f819408a7ebe01c2325cd59d94d3 (master)

$ ./bin/arb_color_buffer_float-render GL_RGBA16F fog -auto
Testing 16-bit floating-point FBO
Intrinsic has incorrect argument type!
void (i32*)* @llvm.x86.sse.stmxcsr
Intrinsic has incorrect argument type!
void (i32*)* @llvm.x86.sse.stmxcsr
Intrinsic has incorrect argument type!
void (i32*)* @llvm.x86.sse.ldmxcsr
Intrinsic has incorrect argument type!
void (i32*)* @llvm.x86.sse.ldmxcsr
Broken module found, verification continues.


155139059ba588da1161eaa692515cacdead9f4e is the first bad commit
commit 155139059ba588da1161eaa692515cacdead9f4e
Author: Zack Rusin <zackr@vmware.com>
Date:   Fri Dec 6 01:28:25 2013 -0500

    llvmpipe: fix blending with half-float formats
    
    The fact that we flush denorms to zero breaks our half-float
    conversion and blending. This patches enables denorms for
    blending. It's a little tricky due to the llvm bug that makes
    it incorrectly reorder the mxcsr intrinsics:
    http://llvm.org/bugs/show_bug.cgi?id=6393
    
    Signed-off-by: Zack Rusin <zackr@vmware.com>
    Reviewed-by: José Fonseca <jfonseca@vmware.com>
    Reviewed-by: Roland Scheidegger <sroland@vmware.com>
    Signed-off-by: Zack Rusin <zackr@vmware.com>

:040000 040000 5564b14ae9b7870ae8f4845f2069878c0752d5bc 84eb2a43a71956a57817e373117c2e2952a058d2 M	src
bisect run success
Comment 1 Vinson Lee 2014-01-01 02:25:17 UTC
commit 27d47bd42f417db96842c9453092acf68944a4c8
Author: Roland Scheidegger <sroland@vmware.com>
Date:   Fri Dec 13 21:20:05 2013 +0100

    gallivm: fix pointer type for stmxcsr/ldmxcsr
    
    The argument is a i8 pointer not a i32 pointer (even though the value actual
    stored/loaded IS i32). Older llvm versions didn't care but 3.2 and newer do
    leading to crashes.
    
    Reviewed-by: Zack Rusin <zackr@vmware.com>

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.