Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Fielder <jason_apple>2022-03-22 14:44:26 +0300
committerClément Foucault <foucault.clem@gmail.com>2022-03-22 14:54:44 +0300
commit19c793af35ea8e694c16995d115d7c9247fee81a (patch)
treec24ad1eead6cb91cbc6260a10e8cf13dc13db903 /source/blender/draw/engines/workbench
parent309ea314858a9b7892ea2c8a6fe55ab2a1028697 (diff)
Metal: Make GLSL shader source MSL compliant also
Metal shading language follows the C++ 14 standard and in some cases requires a greater level of explicitness than GLSL. There are also some small language differences: - Explicit type-casts (C++ requirements) - Explicit constant values (C++ requirements, e.g. floating point values using 0.0 instead of 0). - Metal/OpenGL compatibility paths - GLSL Function prototypes - Explicit accessors for vector types when sampling textures. Authored by Apple: Michael Parkin-White Ref T96261 Reviewed By: fclem Maniphest Tasks: T96261 Differential Revision: https://developer.blender.org/D14378
Diffstat (limited to 'source/blender/draw/engines/workbench')
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_frag.glsl4
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_merge_infront_frag.glsl2
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_transparent_resolve_frag.glsl4
-rw-r--r--source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl2
4 files changed, 6 insertions, 6 deletions
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_frag.glsl
index 59222b588a0..7704e7ed0b7 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_effect_cavity_frag.glsl
@@ -9,11 +9,11 @@ void main()
float cavity = 0.0, edges = 0.0, curvature = 0.0;
#ifdef USE_CAVITY
- cavity_compute(uvcoordsvar.st, depthBuffer, normalBuffer, cavity, edges);
+ cavity_compute(uvcoordsvar.xy, depthBuffer, normalBuffer, cavity, edges);
#endif
#ifdef USE_CURVATURE
- curvature_compute(uvcoordsvar.st, objectIdBuffer, normalBuffer, curvature);
+ curvature_compute(uvcoordsvar.xy, objectIdBuffer, normalBuffer, curvature);
#endif
float final_cavity_factor = clamp((1.0 - cavity) * (1.0 + edges) * (1.0 + curvature), 0.0, 4.0);
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_merge_infront_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_merge_infront_frag.glsl
index ae564435258..30daca6b7e3 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_merge_infront_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_merge_infront_frag.glsl
@@ -1,7 +1,7 @@
void main()
{
- float depth = texture(depthBuffer, uvcoordsvar.st).r;
+ float depth = texture(depthBuffer, uvcoordsvar.xy).r;
/* Fix issues with Intel drivers (see T80023). */
fragColor = vec4(0.0);
/* Discard background pixels. */
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_transparent_resolve_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_transparent_resolve_frag.glsl
index a2c45d2f8e3..35bea830bac 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_transparent_resolve_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_transparent_resolve_frag.glsl
@@ -9,8 +9,8 @@ void main()
/* Revealage is actually stored in transparentAccum alpha channel.
* This is a workaround to older hardware not having separate blend equation per render target.
*/
- vec4 trans_accum = texture(transparentAccum, uvcoordsvar.st);
- float trans_weight = texture(transparentRevealage, uvcoordsvar.st).r;
+ vec4 trans_accum = texture(transparentAccum, uvcoordsvar.xy);
+ float trans_weight = texture(transparentRevealage, uvcoordsvar.xy).r;
float trans_reveal = trans_accum.a;
/* Listing 4 */
diff --git a/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl b/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
index 076f6e80104..4ff281ccd29 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_volume_frag.glsl
@@ -94,7 +94,7 @@ vec4 flag_to_color(uint flag)
if (bool(flag & uint(16))) {
color.rgb += vec3(0.9, 0.3, 0.0); /* orange */
}
- if (color.rgb == vec3(0.0)) {
+ if (is_zero(color.rgb)) {
color.rgb += vec3(0.5, 0.0, 0.0); /* medium red */
}
return color;