|
@@ -23,8 +23,10 @@
|
|
|
|
|
|
vec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {
|
|
|
|
|
|
- vec3 vSigmaX = dFdx( surf_pos );
|
|
|
- vec3 vSigmaY = dFdy( surf_pos );
|
|
|
+ // Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988
|
|
|
+
|
|
|
+ vec3 vSigmaX = vec3( dFdx( surf_pos.x ), dFdx( surf_pos.y ), dFdx( surf_pos.z ) );
|
|
|
+ vec3 vSigmaY = vec3( dFdy( surf_pos.x ), dFdy( surf_pos.y ), dFdy( surf_pos.z ) );
|
|
|
vec3 vN = surf_norm; // normalized
|
|
|
|
|
|
vec3 R1 = cross( vSigmaY, vN );
|