Title: [277848] trunk/Source/ThirdParty/ANGLE
Revision
277848
Author
[email protected]
Date
2021-05-20 20:15:28 -0700 (Thu, 20 May 2021)

Log Message

[Metal ANGLE] Handle NAN constant folding correctly
https://bugs.webkit.org/show_bug.cgi?id=226052

NAN values (0.0f/0.0f) were being handled incorrectly. MSL was being emitted as lowercase 'nanf', instead of NAN
Check for an unlikely NAN case, and emit correct MSL

Reviewed by Dean Jackson.

* src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:
(GenMetalTraverser::emitSingleConstant):

Modified Paths

Diff

Modified: trunk/Source/ThirdParty/ANGLE/ChangeLog (277847 => 277848)


--- trunk/Source/ThirdParty/ANGLE/ChangeLog	2021-05-21 02:43:18 UTC (rev 277847)
+++ trunk/Source/ThirdParty/ANGLE/ChangeLog	2021-05-21 03:15:28 UTC (rev 277848)
@@ -1,5 +1,18 @@
 2021-05-20  Kyle Piddington  <[email protected]>
 
+        [Metal ANGLE] Handle NAN constant folding correctly
+        https://bugs.webkit.org/show_bug.cgi?id=226052
+
+        NAN values (0.0f/0.0f) were being handled incorrectly. MSL was being emitted as lowercase 'nanf', instead of NAN
+        Check for an unlikely NAN case, and emit correct MSL
+
+        Reviewed by Dean Jackson.
+
+        * src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:
+        (GenMetalTraverser::emitSingleConstant):
+
+2021-05-20  Kyle Piddington  <[email protected]>
+
         Red flashes zooming on Google Maps when using external monitor on multi-gpu systems
         https://bugs.webkit.org/show_bug.cgi?id=225956
         <rdar://77024179>        

Modified: trunk/Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp (277847 => 277848)


--- trunk/Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp	2021-05-21 02:43:18 UTC (rev 277847)
+++ trunk/Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp	2021-05-21 03:15:28 UTC (rev 277848)
@@ -1491,7 +1491,14 @@
 
         case TBasicType::EbtFloat:
         {
-            mOut << constUnion->getFConst() << "f";
+            if (ANGLE_UNLIKELY(isnan(constUnion->getFConst())))
+            {
+                mOut << "NAN";
+            }
+            else
+            {
+                mOut << constUnion->getFConst() << "f";
+            }
         }
         break;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to