GLSL: Fix missing precision qualifier in spvDeterminant return value
Follow-up to #2100
This commit is contained in:
parent
199d0cb8a9
commit
c356dd6220
@ -20,17 +20,17 @@ varying mat2 o2r;
|
|||||||
varying mat3 o3r;
|
varying mat3 o3r;
|
||||||
varying mat4 o4r;
|
varying mat4 o4r;
|
||||||
|
|
||||||
float spvDeterminant(highp mat2 m)
|
highp float spvDeterminant(highp mat2 m)
|
||||||
{
|
{
|
||||||
return m[0][0] * m[1][1] - m[0][1] * m[1][0];
|
return m[0][0] * m[1][1] - m[0][1] * m[1][0];
|
||||||
}
|
}
|
||||||
|
|
||||||
float spvDeterminant(highp mat3 m)
|
highp float spvDeterminant(highp mat3 m)
|
||||||
{
|
{
|
||||||
return dot(m[0], vec3(m[1][1] * m[2][2] - m[1][2] * m[2][1], m[1][2] * m[2][0] - m[1][0] * m[2][2], m[1][0] * m[2][1] - m[1][1] * m[2][0]));
|
return dot(m[0], vec3(m[1][1] * m[2][2] - m[1][2] * m[2][1], m[1][2] * m[2][0] - m[1][0] * m[2][2], m[1][0] * m[2][1] - m[1][1] * m[2][0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
float spvDeterminant(highp mat4 m)
|
highp float spvDeterminant(highp mat4 m)
|
||||||
{
|
{
|
||||||
return dot(m[0], vec4(m[2][1] * m[3][2] * m[1][3] - m[3][1] * m[2][2] * m[1][3] + m[3][1] * m[1][2] * m[2][3] - m[1][1] * m[3][2] * m[2][3] - m[2][1] * m[1][2] * m[3][3] + m[1][1] * m[2][2] * m[3][3], m[3][0] * m[2][2] * m[1][3] - m[2][0] * m[3][2] * m[1][3] - m[3][0] * m[1][2] * m[2][3] + m[1][0] * m[3][2] * m[2][3] + m[2][0] * m[1][2] * m[3][3] - m[1][0] * m[2][2] * m[3][3], m[2][0] * m[3][1] * m[1][3] - m[3][0] * m[2][1] * m[1][3] + m[3][0] * m[1][1] * m[2][3] - m[1][0] * m[3][1] * m[2][3] - m[2][0] * m[1][1] * m[3][3] + m[1][0] * m[2][1] * m[3][3], m[3][0] * m[2][1] * m[1][2] - m[2][0] * m[3][1] * m[1][2] - m[3][0] * m[1][1] * m[2][2] + m[1][0] * m[3][1] * m[2][2] + m[2][0] * m[1][1] * m[3][2] - m[1][0] * m[2][1] * m[3][2]));
|
return dot(m[0], vec4(m[2][1] * m[3][2] * m[1][3] - m[3][1] * m[2][2] * m[1][3] + m[3][1] * m[1][2] * m[2][3] - m[1][1] * m[3][2] * m[2][3] - m[2][1] * m[1][2] * m[3][3] + m[1][1] * m[2][2] * m[3][3], m[3][0] * m[2][2] * m[1][3] - m[2][0] * m[3][2] * m[1][3] - m[3][0] * m[1][2] * m[2][3] + m[1][0] * m[3][2] * m[2][3] + m[2][0] * m[1][2] * m[3][3] - m[1][0] * m[2][2] * m[3][3], m[2][0] * m[3][1] * m[1][3] - m[3][0] * m[2][1] * m[1][3] + m[3][0] * m[1][1] * m[2][3] - m[1][0] * m[3][1] * m[2][3] - m[2][0] * m[1][1] * m[3][3] + m[1][0] * m[2][1] * m[3][3], m[3][0] * m[2][1] * m[1][2] - m[2][0] * m[3][1] * m[1][2] - m[3][0] * m[1][1] * m[2][2] + m[1][0] * m[3][1] * m[2][2] + m[2][0] * m[1][1] * m[3][2] - m[1][0] * m[2][1] * m[3][2]));
|
||||||
}
|
}
|
||||||
|
@ -20,17 +20,17 @@ varying mat2 o2r;
|
|||||||
varying mat3 o3r;
|
varying mat3 o3r;
|
||||||
varying mat4 o4r;
|
varying mat4 o4r;
|
||||||
|
|
||||||
float spvDeterminant(highp mat2 m)
|
highp float spvDeterminant(highp mat2 m)
|
||||||
{
|
{
|
||||||
return m[0][0] * m[1][1] - m[0][1] * m[1][0];
|
return m[0][0] * m[1][1] - m[0][1] * m[1][0];
|
||||||
}
|
}
|
||||||
|
|
||||||
float spvDeterminant(highp mat3 m)
|
highp float spvDeterminant(highp mat3 m)
|
||||||
{
|
{
|
||||||
return dot(m[0], vec3(m[1][1] * m[2][2] - m[1][2] * m[2][1], m[1][2] * m[2][0] - m[1][0] * m[2][2], m[1][0] * m[2][1] - m[1][1] * m[2][0]));
|
return dot(m[0], vec3(m[1][1] * m[2][2] - m[1][2] * m[2][1], m[1][2] * m[2][0] - m[1][0] * m[2][2], m[1][0] * m[2][1] - m[1][1] * m[2][0]));
|
||||||
}
|
}
|
||||||
|
|
||||||
float spvDeterminant(highp mat4 m)
|
highp float spvDeterminant(highp mat4 m)
|
||||||
{
|
{
|
||||||
return dot(m[0], vec4(m[2][1] * m[3][2] * m[1][3] - m[3][1] * m[2][2] * m[1][3] + m[3][1] * m[1][2] * m[2][3] - m[1][1] * m[3][2] * m[2][3] - m[2][1] * m[1][2] * m[3][3] + m[1][1] * m[2][2] * m[3][3], m[3][0] * m[2][2] * m[1][3] - m[2][0] * m[3][2] * m[1][3] - m[3][0] * m[1][2] * m[2][3] + m[1][0] * m[3][2] * m[2][3] + m[2][0] * m[1][2] * m[3][3] - m[1][0] * m[2][2] * m[3][3], m[2][0] * m[3][1] * m[1][3] - m[3][0] * m[2][1] * m[1][3] + m[3][0] * m[1][1] * m[2][3] - m[1][0] * m[3][1] * m[2][3] - m[2][0] * m[1][1] * m[3][3] + m[1][0] * m[2][1] * m[3][3], m[3][0] * m[2][1] * m[1][2] - m[2][0] * m[3][1] * m[1][2] - m[3][0] * m[1][1] * m[2][2] + m[1][0] * m[3][1] * m[2][2] + m[2][0] * m[1][1] * m[3][2] - m[1][0] * m[2][1] * m[3][2]));
|
return dot(m[0], vec4(m[2][1] * m[3][2] * m[1][3] - m[3][1] * m[2][2] * m[1][3] + m[3][1] * m[1][2] * m[2][3] - m[1][1] * m[3][2] * m[2][3] - m[2][1] * m[1][2] * m[3][3] + m[1][1] * m[2][2] * m[3][3], m[3][0] * m[2][2] * m[1][3] - m[2][0] * m[3][2] * m[1][3] - m[3][0] * m[1][2] * m[2][3] + m[1][0] * m[3][2] * m[2][3] + m[2][0] * m[1][2] * m[3][3] - m[1][0] * m[2][2] * m[3][3], m[2][0] * m[3][1] * m[1][3] - m[3][0] * m[2][1] * m[1][3] + m[3][0] * m[1][1] * m[2][3] - m[1][0] * m[3][1] * m[2][3] - m[2][0] * m[1][1] * m[3][3] + m[1][0] * m[2][1] * m[3][3], m[3][0] * m[2][1] * m[1][2] - m[2][0] * m[3][1] * m[1][2] - m[3][0] * m[1][1] * m[2][2] + m[1][0] * m[3][1] * m[2][2] + m[2][0] * m[1][1] * m[3][2] - m[1][0] * m[2][1] * m[3][2]));
|
||||||
}
|
}
|
||||||
|
@ -4456,7 +4456,7 @@ void CompilerGLSL::emit_polyfills(uint32_t polyfills, bool relaxed)
|
|||||||
|
|
||||||
if (polyfills & PolyfillDeterminant2x2)
|
if (polyfills & PolyfillDeterminant2x2)
|
||||||
{
|
{
|
||||||
statement("float spvDeterminant", suffix, "(", qual, "mat2 m)");
|
statement(qual, "float spvDeterminant", suffix, "(", qual, "mat2 m)");
|
||||||
begin_scope();
|
begin_scope();
|
||||||
statement("return m[0][0] * m[1][1] - m[0][1] * m[1][0];");
|
statement("return m[0][0] * m[1][1] - m[0][1] * m[1][0];");
|
||||||
end_scope();
|
end_scope();
|
||||||
@ -4465,7 +4465,7 @@ void CompilerGLSL::emit_polyfills(uint32_t polyfills, bool relaxed)
|
|||||||
|
|
||||||
if (polyfills & PolyfillDeterminant3x3)
|
if (polyfills & PolyfillDeterminant3x3)
|
||||||
{
|
{
|
||||||
statement("float spvDeterminant", suffix, "(", qual, "mat3 m)");
|
statement(qual, "float spvDeterminant", suffix, "(", qual, "mat3 m)");
|
||||||
begin_scope();
|
begin_scope();
|
||||||
statement("return dot(m[0], vec3(m[1][1] * m[2][2] - m[1][2] * m[2][1], "
|
statement("return dot(m[0], vec3(m[1][1] * m[2][2] - m[1][2] * m[2][1], "
|
||||||
"m[1][2] * m[2][0] - m[1][0] * m[2][2], "
|
"m[1][2] * m[2][0] - m[1][0] * m[2][2], "
|
||||||
@ -4476,7 +4476,7 @@ void CompilerGLSL::emit_polyfills(uint32_t polyfills, bool relaxed)
|
|||||||
|
|
||||||
if (polyfills & PolyfillDeterminant4x4)
|
if (polyfills & PolyfillDeterminant4x4)
|
||||||
{
|
{
|
||||||
statement("float spvDeterminant", suffix, "(", qual, "mat4 m)");
|
statement(qual, "float spvDeterminant", suffix, "(", qual, "mat4 m)");
|
||||||
begin_scope();
|
begin_scope();
|
||||||
statement("return dot(m[0], vec4("
|
statement("return dot(m[0], vec4("
|
||||||
"m[2][1] * m[3][2] * m[1][3] - m[3][1] * m[2][2] * m[1][3] + m[3][1] * m[1][2] * m[2][3] - m[1][1] * m[3][2] * m[2][3] - m[2][1] * m[1][2] * m[3][3] + m[1][1] * m[2][2] * m[3][3], "
|
"m[2][1] * m[3][2] * m[1][3] - m[3][1] * m[2][2] * m[1][3] + m[3][1] * m[1][2] * m[2][3] - m[1][1] * m[3][2] * m[2][3] - m[2][1] * m[1][2] * m[3][3] + m[1][1] * m[2][2] * m[3][3], "
|
||||||
|
Loading…
Reference in New Issue
Block a user