summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/library/slang_core.gc
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/shader/slang/library/slang_core.gc')
-rwxr-xr-xsrc/mesa/shader/slang/library/slang_core.gc29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/mesa/shader/slang/library/slang_core.gc b/src/mesa/shader/slang/library/slang_core.gc
index 8f1b0c2d3c..e94fa20a7f 100755
--- a/src/mesa/shader/slang/library/slang_core.gc
+++ b/src/mesa/shader/slang/library/slang_core.gc
@@ -307,6 +307,18 @@ mat4 __constructor (const bool b) {
return mat4 (b ? 1.0 : 0.0);
}
+
+mat4 __constructor (const vec4 r0, const vec4 r1, const vec4 r2, const vec4 r3)
+{
+ __retVal[0] = r0;
+ __retVal[1] = r1;
+ __retVal[2] = r2;
+ __retVal[3] = r3;
+}
+
+
+
+
void __operator += (inout float a, const float b) {
__asm float_add a, a, b;
}
@@ -1040,12 +1052,21 @@ mat3 __operator / (const mat3 m, const mat3 n) {
return mat3 (m[0] / n[0], m[1] / n[1], m[2] / n[2]);
}
-mat4 __operator + (const mat4 m, const mat4 n) {
- return mat4 (m[0] + n[0], m[1] + n[1], m[2] + n[2], m[3] + n[3]);
+
+mat4 __operator + (const mat4 m, const mat4 n)
+{
+ __retVal[0] = m[0] + n[0];
+ __retVal[1] = m[1] + n[1];
+ __retVal[2] = m[2] + n[2];
+ __retVal[3] = m[3] + n[3];
}
-mat4 __operator - (const mat4 m, const mat4 n) {
- return mat4 (m[0] - n[0], m[1] - n[1], m[2] - n[2], m[3] - n[3]);
+mat4 __operator - (const mat4 m, const mat4 n)
+{
+ __retVal[0] = m[0] - n[0];
+ __retVal[1] = m[1] - n[1];
+ __retVal[2] = m[2] - n[2];
+ __retVal[3] = m[3] - n[3];
}
mat4 __operator / (const mat4 m, const mat4 n) {