[Mesa-dev] [Bug 42628] [llvmpipe] SIGFPE Crash

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Sun Nov 6 01:32:29 PST 2011


https://bugs.freedesktop.org/show_bug.cgi?id=42628

José Fonseca <jfonseca at vmware.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|mesa-dev at lists.freedesktop. |jfonseca at vmware.com
                   |org                         |
                 CC|                            |jfonseca at vmware.com

--- Comment #3 from José Fonseca <jfonseca at vmware.com> 2011-11-06 01:32:29 PST ---
The game says

  Hello, this is FreedroidRPG, version 0.14.1+svn.
  This seems to be a development version, so we'll exit on floating point
exceptions.

And it appears the game is going out of its way to enable floating point
exceptions, from freedroid/src/init.c:

        // Let's see if we're dealing with a real release or rather if
        // we're dealing with a svn version.  The difference is this:
        // Releases shouldn't terminate upon a floating point exception
        // while the current svn code (for better debugging) should
        // do so.  Therefore we check for 'svn' in the current version
        // string and enable/disable the exceptions accordingly...
        if (strstr(VERSION, "svn")) {
                DebugPrintf(-4, "\nThis seems to be a development version, so
we'll exit on floating point exceptions.");
                // feenableexcept ( FE_ALL_EXCEPT );
                // feenableexcept ( FE_INEXACT ) ;
                // feenableexcept ( FE_UNDERFLOW ) ;
                // feenableexcept ( FE_OVERFLOW ) ;
                feenableexcept(FE_INVALID);
                feenableexcept(FE_DIVBYZERO);
        } else {
                DebugPrintf(-4, "\nThis seems to be a 'stable' release, so no
exit on floating point exceptions.");
                fedisableexcept(FE_INVALID);
                fedisableexcept(FE_DIVBYZERO);
        }

But I'm not sure which is the default though.

llvmpipe uses the cpu for rendering, and it often needs to process extra
padding data, for alignment reasons. It's very likely that that data is
invalid. Also, applications can provide invalid floating point data themselves.

Did you build the game yourself? And if so, can you comment this code to see
wheather it makes a difference?

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the mesa-dev mailing list