Merge pull request #92817 from Alex2782/fix_glsl_Mali-G
Fix glsl shader for Android Mali-GXXx GPUs and Vulkan API 1.3.xxx
This commit is contained in:
commit
587f1d0cb0
@ -11,9 +11,22 @@ layout(location = 0) out vec2 uv_interp;
|
|||||||
/* clang-format on */
|
/* clang-format on */
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
vec2 base_arr[3] = vec2[](vec2(-1.0, -1.0), vec2(-1.0, 3.0), vec2(3.0, -1.0));
|
// old code, ARM driver bug on Mali-GXXx GPUs and Vulkan API 1.3.xxx
|
||||||
gl_Position = vec4(base_arr[gl_VertexIndex], 0.0, 1.0);
|
// https://github.com/godotengine/godot/pull/92817#issuecomment-2168625982
|
||||||
uv_interp = clamp(gl_Position.xy, vec2(0.0, 0.0), vec2(1.0, 1.0)) * 2.0; // saturate(x) * 2.0
|
//vec2 base_arr[3] = vec2[](vec2(-1.0, -1.0), vec2(-1.0, 3.0), vec2(3.0, -1.0));
|
||||||
|
//gl_Position = vec4(base_arr[gl_VertexIndex], 0.0, 1.0);
|
||||||
|
//uv_interp = clamp(gl_Position.xy, vec2(0.0, 0.0), vec2(1.0, 1.0)) * 2.0; // saturate(x) * 2.0
|
||||||
|
|
||||||
|
vec2 vertex_base;
|
||||||
|
if (gl_VertexIndex == 0) {
|
||||||
|
vertex_base = vec2(-1.0, -1.0);
|
||||||
|
} else if (gl_VertexIndex == 1) {
|
||||||
|
vertex_base = vec2(-1.0, 3.0);
|
||||||
|
} else {
|
||||||
|
vertex_base = vec2(3.0, -1.0);
|
||||||
|
}
|
||||||
|
gl_Position = vec4(vertex_base, 0.0, 1.0);
|
||||||
|
uv_interp = clamp(vertex_base, vec2(0.0, 0.0), vec2(1.0, 1.0)) * 2.0; // saturate(x) * 2.0
|
||||||
}
|
}
|
||||||
|
|
||||||
/* clang-format off */
|
/* clang-format off */
|
||||||
|
@ -13,9 +13,22 @@
|
|||||||
layout(location = 0) out vec2 uv_interp;
|
layout(location = 0) out vec2 uv_interp;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
vec2 base_arr[3] = vec2[](vec2(-1.0, -1.0), vec2(-1.0, 3.0), vec2(3.0, -1.0));
|
// old code, ARM driver bug on Mali-GXXx GPUs and Vulkan API 1.3.xxx
|
||||||
gl_Position = vec4(base_arr[gl_VertexIndex], 0.0, 1.0);
|
// https://github.com/godotengine/godot/pull/92817#issuecomment-2168625982
|
||||||
uv_interp = clamp(gl_Position.xy, vec2(0.0, 0.0), vec2(1.0, 1.0)) * 2.0; // saturate(x) * 2.0
|
//vec2 base_arr[3] = vec2[](vec2(-1.0, -1.0), vec2(-1.0, 3.0), vec2(3.0, -1.0));
|
||||||
|
//gl_Position = vec4(base_arr[gl_VertexIndex], 0.0, 1.0);
|
||||||
|
//uv_interp = clamp(gl_Position.xy, vec2(0.0, 0.0), vec2(1.0, 1.0)) * 2.0; // saturate(x) * 2.0
|
||||||
|
|
||||||
|
vec2 vertex_base;
|
||||||
|
if (gl_VertexIndex == 0) {
|
||||||
|
vertex_base = vec2(-1.0, -1.0);
|
||||||
|
} else if (gl_VertexIndex == 1) {
|
||||||
|
vertex_base = vec2(-1.0, 3.0);
|
||||||
|
} else {
|
||||||
|
vertex_base = vec2(3.0, -1.0);
|
||||||
|
}
|
||||||
|
gl_Position = vec4(vertex_base, 0.0, 1.0);
|
||||||
|
uv_interp = clamp(vertex_base, vec2(0.0, 0.0), vec2(1.0, 1.0)) * 2.0; // saturate(x) * 2.0
|
||||||
}
|
}
|
||||||
|
|
||||||
#[fragment]
|
#[fragment]
|
||||||
|
Loading…
Reference in New Issue
Block a user