Przeglądaj źródła

TSL: Auto-cache `atomic*` nodes (#30972)

* auto-cache

* Update AtomicFunctionNode.js
sunag 8 miesięcy temu
rodzic
commit
6a74721a5b
1 zmienionych plików z 13 dodań i 3 usunięć
  1. 13 3
      src/nodes/gpgpu/AtomicFunctionNode.js

+ 13 - 3
src/nodes/gpgpu/AtomicFunctionNode.js

@@ -1,4 +1,5 @@
 import Node from '../core/Node.js';
+import { expression } from '../code/ExpressionNode.js';
 import { nodeProxy } from '../tsl/TSLCore.js';
 
 /**
@@ -89,7 +90,8 @@ class AtomicFunctionNode extends Node {
 
 	generate( builder ) {
 
-		const parents = builder.getNodeProperties( this ).parents;
+		const properties = builder.getNodeProperties( this );
+		const parents = properties.parents;
 
 		const method = this.method;
 
@@ -117,9 +119,17 @@ class AtomicFunctionNode extends Node {
 
 			builder.addLineFlowCode( methodSnippet, this );
 
-		}
+		} else {
+
+			if ( properties.constNode === undefined ) {
+
+				properties.constNode = expression( methodSnippet, type ).toConst();
 
-		return methodSnippet;
+			}
+
+			return properties.constNode.build( builder );
+
+		}
 
 	}
 

粤ICP备19079148号