From 37d080c38a3cb6da4bcffd43e1a6f1eeec449040 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 22 Nov 2013 17:52:58 +0000 Subject: [PATCH] Add missing non-square matrixCompMult built-in functions. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@24179 e7fa87d3-cd2b-0410-9028-fcbf551c1848 --- Install/Windows/glslangValidator.exe | Bin 411136 -> 411648 bytes Test/120.frag | 29 ++++++++ Test/baseResults/100.frag.out | 79 ++++++++++++++++------ Test/baseResults/120.frag.out | 72 +++++++++++++++++++- glslang/MachineIndependent/Initialize.cpp | 7 ++ 5 files changed, 164 insertions(+), 23 deletions(-) diff --git a/Install/Windows/glslangValidator.exe b/Install/Windows/glslangValidator.exe index 905b9decd8a43a0cb9091e3e4289ad600aee00c2..a3ca0d0a727cae116bbac7ed02310cb239766c9b 100644 GIT binary patch delta 18332 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 delta 18212 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

RNXli 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