From 72fe350c3d13d501299a9f1a75c973cf4fa45451 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Wed, 10 Dec 2008 05:30:38 -0500 Subject: [PATCH] Corrected state_IF() to handle IF PRED format. --- mojoshader.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mojoshader.c b/mojoshader.c index b998f014..3ac5dd4c 100644 --- a/mojoshader.c +++ b/mojoshader.c @@ -6160,8 +6160,11 @@ static void state_SINCOS(Context *ctx) static void state_IF(Context *ctx) { - if (ctx->source_args[0].regtype != REG_TYPE_CONSTBOOL) - fail(ctx, "IF src0 must be CONSTBOOL"); + const RegisterType regtype = ctx->source_args[0].regtype; + if ((regtype != REG_TYPE_PREDICATE) && (regtype != REG_TYPE_CONSTBOOL)) + fail(ctx, "IF src0 must be CONSTBOOL or PREDICATE"); + else if (!replicate_swizzle(ctx->source_args[0].swizzle)) + fail(ctx, "IF src0 must have replicate swizzle"); // !!! FIXME: track if nesting depth. } // state_IF