HwCapabilities: Divide Intel into IntelWindows and IntelUnix (#2219)

as suggested by gdkchan
This commit is contained in:
A-w-x 2021-04-18 02:27:19 +02:00 committed by GitHub
parent d23511c25c
commit 7719909397
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 6 deletions

View file

@ -41,7 +41,7 @@ namespace Ryujinx.Graphics.OpenGL
FramebufferAttachment attachment = FramebufferAttachment.ColorAttachment0 + index;
if (HwCapabilities.Vendor == HwCapabilities.GpuVendor.Amd ||
HwCapabilities.Vendor == HwCapabilities.GpuVendor.Intel)
HwCapabilities.Vendor == HwCapabilities.GpuVendor.IntelWindows)
{
GL.FramebufferTexture(FramebufferTarget.Framebuffer, attachment, color?.GetIncompatibleFormatViewHandle() ?? 0, 0);
}
@ -95,7 +95,7 @@ namespace Ryujinx.Graphics.OpenGL
public void SignalModified()
{
if (HwCapabilities.Vendor == HwCapabilities.GpuVendor.Amd ||
HwCapabilities.Vendor == HwCapabilities.GpuVendor.Intel)
HwCapabilities.Vendor == HwCapabilities.GpuVendor.IntelWindows)
{
for (int i = 0; i < 8; i++)
{

View file

@ -18,7 +18,8 @@ namespace Ryujinx.Graphics.OpenGL
{
Unknown,
Amd,
Intel,
IntelWindows,
IntelUnix,
Nvidia
}
@ -34,7 +35,7 @@ namespace Ryujinx.Graphics.OpenGL
public static bool SupportsViewportSwizzle => _supportsViewportSwizzle.Value;
public static bool SupportsSeamlessCubemapPerTexture => _supportsSeamlessCubemapPerTexture.Value;
public static bool SupportsNonConstantTextureOffset => _gpuVendor.Value == GpuVendor.Nvidia;
public static bool RequiresSyncFlush => _gpuVendor.Value == GpuVendor.Amd || _gpuVendor.Value == GpuVendor.Intel;
public static bool RequiresSyncFlush => _gpuVendor.Value == GpuVendor.Amd || _gpuVendor.Value == GpuVendor.IntelWindows || _gpuVendor.Value == GpuVendor.IntelUnix;
public static int MaximumComputeSharedMemorySize => _maximumComputeSharedMemorySize.Value;
public static int StorageBufferOffsetAlignment => _storageBufferOffsetAlignment.Value;
@ -71,7 +72,9 @@ namespace Ryujinx.Graphics.OpenGL
}
else if (vendor == "intel")
{
return GpuVendor.Intel;
string renderer = GL.GetString(StringName.Renderer).ToLower();
return renderer.Contains("mesa") ? GpuVendor.IntelUnix : GpuVendor.IntelWindows;
}
else if (vendor == "ati technologies inc." || vendor == "advanced micro devices, inc.")
{

View file

@ -205,7 +205,7 @@ namespace Ryujinx.Graphics.OpenGL.Image
int copyWidth = sizeInBlocks ? BitUtils.DivRoundUp(width, blockWidth) : width;
int copyHeight = sizeInBlocks ? BitUtils.DivRoundUp(height, blockHeight) : height;
if (HwCapabilities.Vendor == HwCapabilities.GpuVendor.Intel)
if (HwCapabilities.Vendor == HwCapabilities.GpuVendor.IntelWindows)
{
GL.CopyImageSubData(
src.Storage.Handle,