nv50/ir: disable mul+add to mad for precise instructions
fixes
missrendering in TombRaider
KHR-GL44.gpu_shader5.precise_qualifier
KHR-GL45.gpu_shader5.precise_qualifier
v4: disable opt only for MAD, it's fine for SAD
Signed-off-by: Karol Herbst <karolherbst@gmail.com>
Reviewed-by: Pierre Moreau <pierre.morrow@free.fr>
This commit is contained in:
committed by
Ilia Mirkin
parent
f9bfc93014
commit
f98a221f2d
@@ -1677,7 +1677,8 @@ AlgebraicOpt::handleADD(Instruction *add)
|
||||
return false;
|
||||
|
||||
bool changed = false;
|
||||
if (!changed && prog->getTarget()->isOpSupported(OP_MAD, add->dType))
|
||||
// we can't optimize to MAD if the add is precise
|
||||
if (!add->precise && prog->getTarget()->isOpSupported(OP_MAD, add->dType))
|
||||
changed = tryADDToMADOrSAD(add, OP_MAD);
|
||||
if (!changed && prog->getTarget()->isOpSupported(OP_SAD, add->dType))
|
||||
changed = tryADDToMADOrSAD(add, OP_SAD);
|
||||
@@ -1713,7 +1714,7 @@ AlgebraicOpt::tryADDToMADOrSAD(Instruction *add, operation toOp)
|
||||
return false;
|
||||
|
||||
if (src->getInsn()->saturate || src->getInsn()->postFactor ||
|
||||
src->getInsn()->dnz)
|
||||
src->getInsn()->dnz || src->getInsn()->precise)
|
||||
return false;
|
||||
|
||||
if (toOp == OP_SAD) {
|
||||
|
||||
Reference in New Issue
Block a user