mesa: e84a1ab3c400f819408a7ebe01c2325cd59d94d3 (master) $ ./bin/copyteximage 2D -auto Testing GL_TEXTURE_2D Texture target = GL_TEXTURE_2D, Internal format = GL_RED Illegal sampler view creation without bind flag Texture target = GL_TEXTURE_2D, Internal format = GL_RG Illegal sampler view creation without bind flag Texture target = GL_TEXTURE_2D, Internal format = GL_RGB8 Illegal sampler view creation without bind flag Texture target = GL_TEXTURE_2D, Internal format = GL_RGB16 Illegal sampler view creation without bind flag Texture target = GL_TEXTURE_2D, Internal format = GL_RGB16F Illegal sampler view creation without bind flag 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
Hmm works for me, with llvm 3.1 Though looking at the intrinsics code I believe the pointer should be i8 type, not i32. Hence should probably allocate i32 var then cast the pointer to i8* type for stmxcsr/ldmxcsr. I suspect newer llvm versions are more strict with using right pointer type.
Created attachment 90688 [details] [review] use i8 ptr instead of i32 ptr for load/store of mxcsr Could you try this patch? Still works with llvm 3.1 with this, and I don't know what llvm versions are affected.
The bug can be reproduced with llvm 3.2 and newer.
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 actually 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.