<div dir="ltr">Sorry, wrong mailing list. It was intended for Mesa<div>Please ignore this. <div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">ср, 31 окт. 2018 г. в 18:05, Vadym Shovkoplias <<a href="mailto:vadim.shovkoplias@gmail.com">vadim.shovkoplias@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In GLSL versions 1.00 ES, 1.10 and 1.20, Mesa includes<br>
some built-in functions which shouldn't be present in<br>
that version, namely:<br>
<br>
   genIType abs(genIType x)<br>
   genIType sign(genIType x)<br>
   genIType min(genIType x, genIType y)<br>
   genIType min(genIType x, int y)<br>
   genIType max(genIType x, genIType y)<br>
   genIType max(genIType x, int y)<br>
   genIType clamp(genIType x, genIType minVal, genIType maxVal)<br>
   genIType clamp(genIType x, int minVal, int maxVal)<br>
   genType trunc(genType x)<br>
   genType round(genType x)<br>
   genType roundEven(genType x)<br>
   genType modf(genType x, out genType i)<br>
<br>
Bugzilla: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=108160" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=108160</a><br>
Signed-off-by: Vadym Shovkoplias <<a href="mailto:vadym.shovkoplias@globallogic.com" target="_blank">vadym.shovkoplias@globallogic.com</a>><br>
---<br>
 src/compiler/glsl/builtin_functions.cpp | 57 ++++++++++++++++++-------<br>
 1 file changed, 41 insertions(+), 16 deletions(-)<br>
<br>
diff --git a/src/compiler/glsl/builtin_functions.cpp b/src/compiler/glsl/builtin_functions.cpp<br>
index 5650365d1d..2b549312b5 100644<br>
--- a/src/compiler/glsl/builtin_functions.cpp<br>
+++ b/src/compiler/glsl/builtin_functions.cpp<br>
@@ -144,6 +144,12 @@ v130(const _mesa_glsl_parse_state *state)<br>
    return state->is_version(130, 300);<br>
 }<br>
<br>
+static bool<br>
+v150(const _mesa_glsl_parse_state *state)<br>
+{<br>
+   return state->is_version(150, 300);<br>
+}<br>
+<br>
 static bool<br>
 v130_desktop(const _mesa_glsl_parse_state *state)<br>
 {<br>
@@ -1439,10 +1445,10 @@ builtin_builder::create_builtins()<br>
                 _##NAME(always_available, glsl_type::vec2_type),  \<br>
                 _##NAME(always_available, glsl_type::vec3_type),  \<br>
                 _##NAME(always_available, glsl_type::vec4_type),  \<br>
-                _##NAME(always_available, glsl_type::int_type),   \<br>
-                _##NAME(always_available, glsl_type::ivec2_type), \<br>
-                _##NAME(always_available, glsl_type::ivec3_type), \<br>
-                _##NAME(always_available, glsl_type::ivec4_type), \<br>
+                _##NAME(v130, glsl_type::int_type),   \<br>
+                _##NAME(v130, glsl_type::ivec2_type), \<br>
+                _##NAME(v130, glsl_type::ivec3_type), \<br>
+                _##NAME(v130, glsl_type::ivec4_type), \<br>
                 _##NAME(fp64, glsl_type::double_type), \<br>
                 _##NAME(fp64, glsl_type::dvec2_type),  \<br>
                 _##NAME(fp64, glsl_type::dvec3_type),  \<br>
@@ -1534,14 +1540,14 @@ builtin_builder::create_builtins()<br>
                 _##NAME(always_available, glsl_type::vec3_type,  glsl_type::vec3_type),  \<br>
                 _##NAME(always_available, glsl_type::vec4_type,  glsl_type::vec4_type),  \<br>
                                                                                          \<br>
-                _##NAME(always_available, glsl_type::int_type,   glsl_type::int_type),   \<br>
-                _##NAME(always_available, glsl_type::ivec2_type, glsl_type::int_type),   \<br>
-                _##NAME(always_available, glsl_type::ivec3_type, glsl_type::int_type),   \<br>
-                _##NAME(always_available, glsl_type::ivec4_type, glsl_type::int_type),   \<br>
+                _##NAME(v130, glsl_type::int_type,   glsl_type::int_type),   \<br>
+                _##NAME(v130, glsl_type::ivec2_type, glsl_type::int_type),   \<br>
+                _##NAME(v130, glsl_type::ivec3_type, glsl_type::int_type),   \<br>
+                _##NAME(v130, glsl_type::ivec4_type, glsl_type::int_type),   \<br>
                                                                                          \<br>
-                _##NAME(always_available, glsl_type::ivec2_type, glsl_type::ivec2_type), \<br>
-                _##NAME(always_available, glsl_type::ivec3_type, glsl_type::ivec3_type), \<br>
-                _##NAME(always_available, glsl_type::ivec4_type, glsl_type::ivec4_type), \<br>
+                _##NAME(v130, glsl_type::ivec2_type, glsl_type::ivec2_type), \<br>
+                _##NAME(v130, glsl_type::ivec3_type, glsl_type::ivec3_type), \<br>
+                _##NAME(v130, glsl_type::ivec4_type, glsl_type::ivec4_type), \<br>
                                                                                          \<br>
                 _##NAME(v130, glsl_type::uint_type,  glsl_type::uint_type),              \<br>
                 _##NAME(v130, glsl_type::uvec2_type, glsl_type::uint_type),              \<br>
@@ -1609,11 +1615,30 @@ builtin_builder::create_builtins()<br>
    FD(sqrt)<br>
    FD(inversesqrt)<br>
    FI64(abs)<br>
-   FI64(sign)<br>
+<br>
+   add_function("sign",                          \<br>
+                _sign(always_available, glsl_type::float_type), \<br>
+                _sign(always_available, glsl_type::vec2_type),  \<br>
+                _sign(always_available, glsl_type::vec3_type),  \<br>
+                _sign(always_available, glsl_type::vec4_type),  \<br>
+                _sign(v150, glsl_type::int_type),   \<br>
+                _sign(v150, glsl_type::ivec2_type), \<br>
+                _sign(v150, glsl_type::ivec3_type), \<br>
+                _sign(v150, glsl_type::ivec4_type), \<br>
+                _sign(fp64, glsl_type::double_type), \<br>
+                _sign(fp64, glsl_type::dvec2_type),  \<br>
+                _sign(fp64, glsl_type::dvec3_type),  \<br>
+                _sign(fp64, glsl_type::dvec4_type),  \<br>
+                _sign(int64, glsl_type::int64_t_type), \<br>
+                _sign(int64, glsl_type::i64vec2_type),  \<br>
+                _sign(int64, glsl_type::i64vec3_type),  \<br>
+                _sign(int64, glsl_type::i64vec4_type),  \<br>
+                0);<br>
+<br>
    FD(floor)<br>
-   FD(trunc)<br>
-   FD(round)<br>
-   FD(roundEven)<br>
+   FD130(trunc)<br>
+   FD130(round)<br>
+   FD130(roundEven)<br>
    FD(ceil)<br>
    FD(fract)<br>
<br>
@@ -1637,7 +1662,7 @@ builtin_builder::create_builtins()<br>
                 _mod(fp64, glsl_type::dvec4_type,  glsl_type::dvec4_type),<br>
                 NULL);<br>
<br>
-   FD(modf)<br>
+   FD130(modf)<br>
<br>
    FIUD2_MIXED(min)<br>
    FIUD2_MIXED(max)<br>
-- <br>
2.19.1<br>
<br>
</blockquote></div>