Mesa (master): glsl: yet another swizzled expression fix
Brian Paul
brianp at kemper.freedesktop.org
Tue Feb 24 00:44:55 UTC 2009
Module: Mesa
Branch: master
Commit: 00f0b05d5f14256213f744c3b8e4ce82611e0ba1
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=00f0b05d5f14256213f744c3b8e4ce82611e0ba1
Author: Brian Paul <brianp at vmware.com>
Date: Mon Feb 23 17:43:43 2009 -0700
glsl: yet another swizzled expression fix
This fixes swizzled conditional expressions such "(b ? p : q).x"
---
src/mesa/shader/slang/slang_emit.c | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/mesa/shader/slang/slang_emit.c b/src/mesa/shader/slang/slang_emit.c
index adb3bde..6a47585 100644
--- a/src/mesa/shader/slang/slang_emit.c
+++ b/src/mesa/shader/slang/slang_emit.c
@@ -1857,8 +1857,11 @@ emit_swizzle(slang_emit_info *emitInfo, slang_ir_node *n)
inst = emit(emitInfo, n->Children[0]);
- assert(n->Children[0]->Store == n->Store->Parent);
- assert(n->Store->Parent);
+ if (!n->Store->Parent) {
+ /* this covers a case such as "(b ? p : q).x" */
+ n->Store->Parent = n->Children[0]->Store;
+ assert(n->Store->Parent);
+ }
{
const GLuint swizzle = n->Store->Swizzle;
More information about the mesa-commit
mailing list