(Minor) Added argument to set VROverlay GPU to index 1, Fixes issues when rendering SteamVR on a GPU that is not considered the main GPU, such as with an IGPU

This commit is contained in:
Myrkur
2022-11-11 14:37:52 -05:00
parent d385279742
commit 22ef66747d
3 changed files with 18 additions and 5 deletions

View File

@@ -17,7 +17,7 @@ namespace VRCX
public static string ConfigLocation;
public static string Version { get; private set; }
public static bool LaunchDebug;
public static bool GPUFix;
static Program()
{
BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;

View File

@@ -24,6 +24,7 @@ namespace VRCX
foreach (string arg in args)
{
if (arg.Contains("--gpufix")) Program.GPUFix = true;
if (arg.Length > 12 && arg.Substring(0, 12) == "/uri=vrcx://")
LaunchCommand = arg.Substring(12);

View File

@@ -88,11 +88,23 @@ namespace VRCX
// REMOVE THIS
// nextOverlay = DateTime.MaxValue;
// https://stackoverflow.com/questions/38312597/how-to-choose-a-specific-graphics-device-in-sharpdx-directx-11/38596725#38596725
SharpDX.DXGI.Factory f = new SharpDX.DXGI.Factory1();
SharpDX.DXGI.Adapter a = f.GetAdapter(1);
FeatureLevel[] levels = new FeatureLevel[]
{
#if DIRECTX11_1
FeatureLevel.Level_11_1,
#endif
FeatureLevel.Level_11_0,
FeatureLevel.Level_10_1,
FeatureLevel.Level_10_0,
FeatureLevel.Level_9_3
};
DeviceCreationFlags flags = DeviceCreationFlags.BgraSupport;
// _device = new Device(a, flags, levels);
_device = new Device(
DriverType.Hardware,
DeviceCreationFlags.SingleThreaded | DeviceCreationFlags.BgraSupport
);
_device = Program.GPUFix ? new Device(a, flags) : new Device(DriverType.Hardware, DeviceCreationFlags.SingleThreaded | DeviceCreationFlags.BgraSupport);
_texture1 = new Texture2D(
_device,