1
0
Эх сурвалжийг харах

WGSLNodeBuilder: Improve `isCustomStruct()` checking (#30525)

* removed example because puppeteer always  make black screenshot

* Revert "removed example because puppeteer always  make black screenshot"

This reverts commit 3376eb8ddb19d79f17072322b4124378890c2e8f.

* Update WGSLNodeBuilder.js

---------

Co-authored-by: Attila Schroeder <attila-schroeder.79@gmail.com>
Co-authored-by: sunag <sunagbrasil@gmail.com>
Spiri0 1 жил өмнө
parent
commit
0eddad5dd7

+ 10 - 1
src/renderers/webgpu/nodes/WGSLNodeBuilder.js

@@ -1614,7 +1614,16 @@ ${ flowData.code }
 
 	isCustomStruct( nodeUniform ) {
 
-		return nodeUniform.value.isStorageBufferAttribute && nodeUniform.node.structTypeNode !== null;
+		const attribute = nodeUniform.value;
+		const bufferNode = nodeUniform.node;
+
+		const isAttributeStructType = ( attribute.isBufferAttribute || attribute.isInstancedBufferAttribute ) && bufferNode.structTypeNode !== null;
+
+		const isStructArray =
+			( bufferNode.value && bufferNode.value.array ) &&
+			( typeof bufferNode.value.itemSize === 'number' && bufferNode.value.array.length > bufferNode.value.itemSize );
+
+		return isAttributeStructType && ! isStructArray;
 
 	}
 

粤ICP备19079148号