diff options
m--------- | release/datafiles/locale | 0 | ||||
m--------- | release/scripts/addons | 0 | ||||
m--------- | release/scripts/addons_contrib | 0 | ||||
-rw-r--r-- | source/blender/draw/modes/shaders/common_hair_lib.glsl | 11 |
4 files changed, 11 insertions, 0 deletions
diff --git a/release/datafiles/locale b/release/datafiles/locale -Subproject 29c2218102135522d6e2cd4bba7ab47d7241ab8 +Subproject f81ed052157aff3979763cf25840032d11d261b diff --git a/release/scripts/addons b/release/scripts/addons -Subproject c94604993b3e0bfbc733861e890aff18513e02b +Subproject 5f7fba0565a7c9ae93eae31a08fc9bbbd16d333 diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib -Subproject 3a80a18ea081ff93f4b3672120b446b7adc93e8 +Subproject fecc0db5600405a0c14c70120ae279222861ef8 diff --git a/source/blender/draw/modes/shaders/common_hair_lib.glsl b/source/blender/draw/modes/shaders/common_hair_lib.glsl index 359e4d87b7a..4c540d2b478 100644 --- a/source/blender/draw/modes/shaders/common_hair_lib.glsl +++ b/source/blender/draw/modes/shaders/common_hair_lib.glsl @@ -136,6 +136,10 @@ float hair_shaperadius(float shape, float root, float tip, float time) return (radius * (root - tip)) + tip; } +#ifdef OS_MAC +in float dummy; +#endif + void hair_get_pos_tan_binor_time( bool is_persp, mat4 invmodel_mat, vec3 camera_pos, vec3 camera_z, out vec3 wpos, out vec3 wtan, out vec3 wbinor, out float time, out float thickness, out float thick_time) @@ -144,6 +148,13 @@ void hair_get_pos_tan_binor_time( vec4 data = texelFetch(hairPointBuffer, id); wpos = data.point_position; time = data.point_time; + +#ifdef OS_MAC + /* Generate a dummy read to avoid the driver bug with shaders having no + * vertex reads on macOS (T60171) */ + wpos.y += dummy * 0.0; +#endif + if (time == 0.0) { /* Hair root */ wtan = texelFetch(hairPointBuffer, id + 1).point_position - wpos; |