소스 검색

[DX12] added processSRV method

TothBenoit 1 년 전
부모
커밋
b156eedd19
1개의 변경된 파일11개의 추가작업 그리고 11개의 파일을 삭제
  1. 11 11
      h3d/impl/DX12Driver.hx

+ 11 - 11
h3d/impl/DX12Driver.hx

@@ -1714,16 +1714,19 @@ class DX12Driver extends h3d.impl.Driver {
 		return (srvHead + (~(srvTail - 1 ) & 0xFF)) & 0xFF;
 	}
 
+	inline function processSRV() {
+		var index = (srvTail + 1) & 0xFF;
+		var args = srvRingBuf[index];
+		Driver.createShaderResourceView(args.res, args.resourceDesc, args.srvAddr);
+		Driver.createSampler(args.samplerDesc, args.samplerAddr);
+		srvTail = index;
+	}
+
 	function runThread() {
 		while(true) {
 			// Check if ring buffer is empty
-			if ( computeSRVBufferDistance() != 1 ) {
-				var index = (srvTail + 1) & 0xFF;
-				var args = srvRingBuf[index];
-				Driver.createShaderResourceView(args.res, args.resourceDesc, args.srvAddr);
-				Driver.createSampler(args.samplerDesc, args.samplerAddr);
-				srvTail = index;
-			}
+			if ( computeSRVBufferDistance() != 1 )
+				processSRV();
 			else
 				Sys.sleep(0);
 		}
@@ -1812,10 +1815,7 @@ class DX12Driver extends h3d.impl.Driver {
 		srvHead = (srvHead + 1) & 0xFF;
 
 		#if console
-		var args = srvRingBuf[(srvTail + 1) & 0xFF];
-		Driver.createShaderResourceView(args.res, args.resourceDesc, args.srvAddr);
-		Driver.createSampler(args.samplerDesc, args.samplerAddr);
-		srvTail = (srvTail + 1) & 0xFF;
+		processSRV();
 		#end
 	}