Pārlūkot izejas kodu

CacheFileBuilder: speed up ShaderCache creation by do not save to file at each step (#1169)

Yuxiao Mao 1 gadu atpakaļ
vecāks
revīzija
aad55d4427
2 mainītis faili ar 4 papildinājumiem un 3 dzēšanām
  1. 3 2
      h3d/impl/ShaderCache.hx
  2. 1 1
      hxsl/CacheFileBuilder.hx

+ 3 - 2
h3d/impl/ShaderCache.hx

@@ -80,7 +80,7 @@ class ShaderCache {
 		return data.get(configurationKey + haxe.crypto.Md5.encode(source));
 	}
 
-	public function saveCompiledShader( source : String, bytes : haxe.io.Bytes, ?configurationKey = "" ) {
+	public function saveCompiledShader( source : String, bytes : haxe.io.Bytes, ?configurationKey = "", ?saveToFile = true ) {
 		if( outputFile == null )
 			return;
 		if( data == null ) load();
@@ -88,7 +88,8 @@ class ShaderCache {
 		if( data.get(key) == bytes && (!keepSource || sources.get(key) == source) )
 			return;
 		data.set(key, bytes);
-		save();
+		if( saveToFile )
+			save();
 		if( keepSource ) {
 			sources.set(key, source);
 			saveSources();

+ 1 - 1
hxsl/CacheFileBuilder.hx

@@ -115,7 +115,7 @@ class CacheFileBuilder {
 		if( s.code == null )
 			return binaryPayload(s.bytes);
 		if( shaderCache != null )
-			shaderCache.saveCompiledShader(s.code, s.bytes, shaderCacheConfig);
+			shaderCache.saveCompiledShader(s.code, s.bytes, shaderCacheConfig, false);
 		return s.code + binaryPayload(s.bytes);
 	}