Kaynağa Gözat

[DX12] Fix wrong root signature size with textures and buffers

TothBenoit 1 yıl önce
ebeveyn
işleme
2d35c1653e
1 değiştirilmiş dosya ile 4 ekleme ve 1 silme
  1. 4 1
      h3d/impl/DX12Driver.hx

+ 4 - 1
h3d/impl/DX12Driver.hx

@@ -1210,7 +1210,10 @@ class DX12Driver extends h3d.impl.Driver {
 		// Root Constants cost 1 per 32-bit value
 		function calcSize( sh : hxsl.RuntimeShader.RuntimeShaderData ) {
 			var s = (sh.globalsSize + sh.paramsSize) << 2;
-			s += sh.texturesCount;
+			// 1 descriptor table for all textures and 1 descriptor table for all samplers
+			s += ( sh.texturesCount > 0 ) ? 2 : 0;
+			// 1 descriptor table for all buffers
+			s += ( sh.bufferCount > 0 ) ? 1 : 0;
 			return s;
 		}