Yuxiao Mao 1 ano atrás
pai
commit
85fbf13c00
2 arquivos alterados com 12 adições e 2 exclusões
  1. 2 0
      h3d/impl/DX12Driver.hx
  2. 10 2
      hxsl/CacheFileBuilder.hx

+ 2 - 0
h3d/impl/DX12Driver.hx

@@ -1245,8 +1245,10 @@ class DX12Driver extends h3d.impl.Driver {
 		sign.flags.set(DENY_HULL_SHADER_ROOT_ACCESS);
 		sign.flags.set(DENY_DOMAIN_SHADER_ROOT_ACCESS);
 		sign.flags.set(DENY_GEOMETRY_SHADER_ROOT_ACCESS);
+		#if !xbogdk
 		sign.flags.set(DENY_AMPLIFICATION_SHADER_ROOT_ACCESS);
 		sign.flags.set(DENY_MESH_SHADER_ROOT_ACCESS);
+		#end
 		sign.numParameters = paramsCount;
 		sign.parameters = cast params;
 

+ 10 - 2
hxsl/CacheFileBuilder.hx

@@ -5,6 +5,7 @@ enum CacheFilePlatform {
 	OpenGL;
 	PS4;
 	XBoxOne;
+	XBoxOneGDK;
 	XBoxSeries;
 	NX;
 	NXBinaries;
@@ -58,6 +59,7 @@ private class CustomCacheFile extends CacheFile {
 		case OpenGL: "gl";
 		case PS4: "ps4";
 		case XBoxOne: "xboxone";
+		case XBoxOneGDK: "xbogdk";
 		case XBoxSeries: "xbox";
 		case NX: "nx";
 		case NXBinaries: "nxbin";
@@ -183,7 +185,7 @@ class CacheFileBuilder {
 			sys.FileSystem.deleteFile(tmpSrc);
 			sys.FileSystem.deleteFile(tmpOut);
 			return { code : code, bytes : data };
-		case XBoxSeries:
+		case XBoxSeries, XBoxOneGDK:
 			#if (hldx && dx12)
 			if( !dxInitDone ) {
 				var win = new dx.Window("", 800, 600);
@@ -202,7 +204,11 @@ class CacheFileBuilder {
 			code = serializeRootSignature + code;
 			sys.io.File.saveContent(tmpSrc, code);
 			var args = ["-rootsig-define", "ROOT_SIGNATURE", "-T", ( (rd.kind == Vertex) ? "vs_" : "ps_") + dxcShaderVersion,"-O3","-Fo", tmpOut, tmpSrc];
-			var p = new sys.io.Process(Sys.getEnv("GXDKLatest")+ "bin\\Scarlett\\dxc.exe", args);
+			var p;
+			if( platform == XBoxOneGDK )
+				p = new sys.io.Process(Sys.getEnv("GXDKLatest")+ "bin\\XboxOne\\dxc.exe", args);
+			else
+				p = new sys.io.Process(Sys.getEnv("GXDKLatest")+ "bin\\Scarlett\\dxc.exe", args);
 			var error = p.stderr.readAll().toString();
 			var ecode = p.exitCode();
 			if( ecode != 0 )
@@ -272,6 +278,8 @@ class CacheFileBuilder {
 				builder.platforms.push(PS4);
 			case "-xbox":
 				builder.platforms.push(XBoxOne);
+			case "-xbogdk":
+				builder.platforms.push(XBoxOneGDK);
 			case "-xbs":
 				builder.platforms.push(XBoxSeries);
 			case "-nx":