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:
parent
dc8c781d7a
commit
38be18ef2a
@ -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;
|
||||
|
||||
|
@ -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,
|
||||
|
@ -4,10 +4,10 @@ using Ryujinx.Graphics.GAL;
|
||||
|
||||
namespace Ryujinx.Graphics.OpenGL.Image
|
||||
{
|
||||
class TextureStorage : ITextureInfo
|
||||
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; }
|
||||
|
@ -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; }
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user