[Bug 27901] GLSL cos/sin functions broken on Mesa R600 driver

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon May 17 15:10:31 PDT 2010


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

--- Comment #1 from Conn Clark <conn.o.clark at gmail.com> 2010-05-17 15:10:30 PDT ---
A proper fix would be to fix the r700_assembler.c code so that it generates
code to translate the radians input to a corresponding value between PI and -PI
before passing it to the SIN or COS instructions.


I *think* that this could be achieved through the following r600 instructions

inst count  unit        opcode          DEST   SRC0, SRC1, SRC3
        0   x:          MUL             tmp.x, ang, 1/(2.0 * pi)
        1   x:          FRACT           tmp.x, tmp.x
        2   x:          ADD             tmp.x, tmp.x, -0.5F
            y:          MULADD          tmp.y, tmp.x, (2.0 * pi), -(2.0 * pi)
            z:          MUL             tmp.z, tmp.x, (2.0 * pi)
        3   x:          CMOVEGT         tmp.x, tmp.x, tmp.y, tmp.z
        4   t:          SIN or COS      dest,  tmp.x

Unfortunately I can't quite figure out how to do it in the code yet to try and
see.

-- 
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 dri-devel mailing list