[Mesa-dev] [Bug 83570] Glyphy demo throws unhandled Integer division by zero exception
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Sat Sep 6 20:59:00 PDT 2014
https://bugs.freedesktop.org/show_bug.cgi?id=83570
--- Comment #1 from rconde01 at hotmail.com ---
I haven't really gotten a grasp on the code base, but my assessment is that the
issue is:
tgsi_exec.c
static void
micro_idiv(union tgsi_exec_channel *dst,
const union tgsi_exec_channel *src0,
const union tgsi_exec_channel *src1)
{
dst->i[0] = src0->i[0] / src1->i[0];
dst->i[1] = src0->i[1] / src1->i[1];
dst->i[2] = src0->i[2] / src1->i[2];
dst->i[3] = src0->i[3] / src1->i[3];
}
Section 4.1.3 of the 4.40 spec says:
"Division and multiplication operations resulting in overflow or underflow will
not cause any exception but will result in an undefined value."
Therefore I believe it should be changed to:
static void
micro_idiv(union tgsi_exec_channel *dst,
const union tgsi_exec_channel *src0,
const union tgsi_exec_channel *src1)
{
dst->i[0] = src1->i[0] != 0 ? src0->i[0] / src1->i[0] : 0;
dst->i[1] = src1->i[1] != 0 ? src0->i[1] / src1->i[1] : 0;
dst->i[2] = src1->i[2] != 0 ? src0->i[2] / src1->i[2] : 0;
dst->i[3] = src1->i[3] != 0 ? src0->i[3] / src1->i[3] : 0;
}
I've confirmed that this fixes my particular issue.
--
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140907/6ebf0933/attachment.html>
More information about the mesa-dev
mailing list