Fix incorrect depth texture 3D flag (#7262)
This commit is contained in:
parent
398fa1c238
commit
fdd7ee791c
2 changed files with 10 additions and 6 deletions
|
@ -415,7 +415,13 @@ namespace Ryujinx.Graphics.Gpu.Engine.Threed
|
||||||
#pragma warning disable CS0649 // Field is never assigned to
|
#pragma warning disable CS0649 // Field is never assigned to
|
||||||
public int Width;
|
public int Width;
|
||||||
public int Height;
|
public int Height;
|
||||||
public int Depth;
|
public ushort Depth;
|
||||||
|
public ushort Flags;
|
||||||
|
|
||||||
|
public readonly bool UnpackIsLayered()
|
||||||
|
{
|
||||||
|
return (Flags & 1) == 0;
|
||||||
|
}
|
||||||
#pragma warning restore CS0649
|
#pragma warning restore CS0649
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -468,13 +468,11 @@ namespace Ryujinx.Graphics.Gpu.Image
|
||||||
int gobBlocksInY = dsState.MemoryLayout.UnpackGobBlocksInY();
|
int gobBlocksInY = dsState.MemoryLayout.UnpackGobBlocksInY();
|
||||||
int gobBlocksInZ = dsState.MemoryLayout.UnpackGobBlocksInZ();
|
int gobBlocksInZ = dsState.MemoryLayout.UnpackGobBlocksInZ();
|
||||||
|
|
||||||
|
layered &= size.UnpackIsLayered();
|
||||||
|
|
||||||
Target target;
|
Target target;
|
||||||
|
|
||||||
if (dsState.MemoryLayout.UnpackIsTarget3D())
|
if ((samplesInX | samplesInY) != 1)
|
||||||
{
|
|
||||||
target = Target.Texture3D;
|
|
||||||
}
|
|
||||||
else if ((samplesInX | samplesInY) != 1)
|
|
||||||
{
|
{
|
||||||
target = size.Depth > 1 && layered
|
target = size.Depth > 1 && layered
|
||||||
? Target.Texture2DMultisampleArray
|
? Target.Texture2DMultisampleArray
|
||||||
|
|
Loading…
Reference in a new issue