Fix intel view copy workaround. (#2216)

The texture target must be taken from the storage rather than the view, when using the storage handle for the copy.
This commit is contained in:
riperiperi 2021-04-17 21:16:28 +01:00 committed by GitHub
parent dc8c781d7a
commit 38be18ef2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 9 deletions

View File

@ -4,8 +4,8 @@ namespace Ryujinx.Graphics.OpenGL.Image
{
interface ITextureInfo
{
ITextureInfo Storage { get; }
int Handle { get; }
int StorageHandle { get; }
int FirstLayer => 0;
int FirstLevel => 0;

View File

@ -208,14 +208,14 @@ namespace Ryujinx.Graphics.OpenGL.Image
if (HwCapabilities.Vendor == HwCapabilities.GpuVendor.Intel)
{
GL.CopyImageSubData(
src.StorageHandle,
srcInfo.Target.ConvertToImageTarget(),
src.Storage.Handle,
src.Storage.Info.Target.ConvertToImageTarget(),
src.FirstLevel + srcLevel + level,
0,
0,
src.FirstLayer + srcLayer,
dst.StorageHandle,
dstInfo.Target.ConvertToImageTarget(),
dst.Storage.Handle,
dst.Storage.Info.Target.ConvertToImageTarget(),
dst.FirstLevel + dstLevel + level,
0,
0,

View File

@ -6,8 +6,8 @@ namespace Ryujinx.Graphics.OpenGL.Image
{
class TextureStorage : ITextureInfo
{
public ITextureInfo Storage => this;
public int Handle { get; private set; }
public int StorageHandle => Handle;
public float ScaleFactor { get; private set; }
public TextureCreateInfo Info { get; }

View File

@ -10,10 +10,10 @@ namespace Ryujinx.Graphics.OpenGL.Image
private readonly TextureStorage _parent;
public int StorageHandle => _parent.Handle;
private TextureView _incompatibleFormatView;
public ITextureInfo Storage => _parent;
public int FirstLayer { get; private set; }
public int FirstLevel { get; private set; }