Skip to content

Commit

Permalink
GS: Default to OpenGL on intel GPUs that support it.
Browse files Browse the repository at this point in the history
Feature level 12 requirement.
  • Loading branch information
lightningterror committed Oct 13, 2024
1 parent ca9f64a commit 69de95d
Showing 1 changed file with 9 additions and 5 deletions.
14 changes: 9 additions & 5 deletions pcsx2/GS/Renderers/DX11/D3D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -445,9 +445,7 @@ GSRendererType D3D::GetPreferredRenderer()

case VendorID::Intel:
{
// Older Intel GPUs prior to Xe seem to have broken OpenGL drivers which choke
// on some of our shaders, causing what appears to be GPU timeouts+device removals.
// Vulkan has broken barriers, also prior to Xe.
// Vulkan has broken barriers, prior to Xe.

// Sampler feedback Tier 0.9 is only present in Tiger Lake/Xe/Arc, so we can use that to
// differentiate between them. Unfortunately, that requires a D3D12 device.
Expand All @@ -456,10 +454,16 @@ GSRendererType D3D::GetPreferredRenderer()
{
D3D12_FEATURE_DATA_D3D12_OPTIONS7 opts = {};
if (SUCCEEDED(device12->CheckFeatureSupport(D3D12_FEATURE_D3D12_OPTIONS7, &opts, sizeof(opts))) &&
opts.SamplerFeedbackTier >= D3D12_SAMPLER_FEEDBACK_TIER_0_9)
(opts.SamplerFeedbackTier >= D3D12_SAMPLER_FEEDBACK_TIER_0_9) &&
check_vulkan_supported())
{
Console.WriteLn("Sampler feedback tier 0.9 found for Intel GPU, defaulting to Vulkan.");
return check_vulkan_supported() ? GSRendererType::VK : GSRendererType::DX11;
return GSRendererType::VK;
}
else
{
Console.WriteLn("Sampler feedback tier 0.9 or Vulkan not found for Intel GPU, using OpenGL.");
return GSRendererType::OGL;
}
}

Expand Down

0 comments on commit 69de95d

Please sign in to comment.