forked from Mirror/Ryujinx
Remove more unused code
This commit is contained in:
parent
59fdaa744b
commit
9bfb373bdf
7 changed files with 7 additions and 100 deletions
|
@ -4,15 +4,11 @@ namespace Ryujinx.Graphics.GAL
|
||||||
{
|
{
|
||||||
public interface ITexture : IDisposable
|
public interface ITexture : IDisposable
|
||||||
{
|
{
|
||||||
int Handle { get; }
|
|
||||||
|
|
||||||
void CopyTo(ITexture destination, int firstLayer, int firstLevel);
|
void CopyTo(ITexture destination, int firstLayer, int firstLevel);
|
||||||
void CopyTo(ITexture destination, Extents2D srcRegion, Extents2D dstRegion, bool linearFilter);
|
void CopyTo(ITexture destination, Extents2D srcRegion, Extents2D dstRegion, bool linearFilter);
|
||||||
|
|
||||||
ITexture CreateView(TextureCreateInfo info, int firstLayer, int firstLevel);
|
ITexture CreateView(TextureCreateInfo info, int firstLayer, int firstLevel);
|
||||||
|
|
||||||
int GetStorageDebugId();
|
|
||||||
|
|
||||||
byte[] GetData();
|
byte[] GetData();
|
||||||
|
|
||||||
void SetData(Span<byte> data);
|
void SetData(Span<byte> data);
|
||||||
|
|
|
@ -336,8 +336,6 @@ namespace Ryujinx.Graphics.Gpu.Engine
|
||||||
|
|
||||||
_context.Renderer.Pipeline.SetDepthMode(depthMode);
|
_context.Renderer.Pipeline.SetDepthMode(depthMode);
|
||||||
|
|
||||||
bool transformEnable = GetViewportTransformEnable(state);
|
|
||||||
|
|
||||||
bool flipY = (state.Get<int>(MethodOffset.YControl) & 1) != 0;
|
bool flipY = (state.Get<int>(MethodOffset.YControl) & 1) != 0;
|
||||||
|
|
||||||
float yFlip = flipY ? -1 : 1;
|
float yFlip = flipY ? -1 : 1;
|
||||||
|
@ -349,35 +347,13 @@ namespace Ryujinx.Graphics.Gpu.Engine
|
||||||
var transform = state.Get<ViewportTransform>(MethodOffset.ViewportTransform, index);
|
var transform = state.Get<ViewportTransform>(MethodOffset.ViewportTransform, index);
|
||||||
var extents = state.Get<ViewportExtents> (MethodOffset.ViewportExtents, index);
|
var extents = state.Get<ViewportExtents> (MethodOffset.ViewportExtents, index);
|
||||||
|
|
||||||
RectangleF region;
|
float x = transform.TranslateX - MathF.Abs(transform.ScaleX);
|
||||||
|
float y = transform.TranslateY - MathF.Abs(transform.ScaleY);
|
||||||
|
|
||||||
if (transformEnable)
|
float width = transform.ScaleX * 2;
|
||||||
{
|
float height = transform.ScaleY * 2 * yFlip;
|
||||||
float x = transform.TranslateX - MathF.Abs(transform.ScaleX);
|
|
||||||
float y = transform.TranslateY - MathF.Abs(transform.ScaleY);
|
|
||||||
|
|
||||||
float width = transform.ScaleX * 2;
|
RectangleF region = new RectangleF(x, y, width, height);
|
||||||
float height = transform.ScaleY * 2 * yFlip;
|
|
||||||
|
|
||||||
region = new RectangleF(x, y, width, height);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// It's not possible to fully disable viewport transform, at least with the most
|
|
||||||
// common graphics APIs, but we can effectively disable it with a dummy transform.
|
|
||||||
// The transform is defined as: xw = (width / 2) * xndc + x + (width / 2)
|
|
||||||
// By setting x to -(width / 2), we effectively remove the translation.
|
|
||||||
// By setting the width to 2, we remove the scale since 2 / 2 = 1.
|
|
||||||
// Now, the only problem is the viewport clipping, that we also can't disable.
|
|
||||||
// To prevent the values from being clipped, we multiply (-1, -1, 2, 2) by
|
|
||||||
// the maximum supported viewport dimensions.
|
|
||||||
// This must be compensated on the shader, by dividing the vertex position
|
|
||||||
// by the maximum viewport dimensions.
|
|
||||||
float maxSize = _context.Capabilities.MaximumViewportDimensions;
|
|
||||||
float halfMaxSize = _context.Capabilities.MaximumViewportDimensions * 0.5f;
|
|
||||||
|
|
||||||
region = new RectangleF(-halfMaxSize, -halfMaxSize, maxSize, maxSize * yFlip);
|
|
||||||
}
|
|
||||||
|
|
||||||
viewports[index] = new Viewport(
|
viewports[index] = new Viewport(
|
||||||
region,
|
region,
|
||||||
|
@ -827,19 +803,6 @@ namespace Ryujinx.Graphics.Gpu.Engine
|
||||||
_context.Renderer.Pipeline.SetProgram(gs.HostProgram);
|
_context.Renderer.Pipeline.SetProgram(gs.HostProgram);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Gets viewport transform enable.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="state">Current GPU state</param>
|
|
||||||
/// <returns>Viewport transform enable</returns>
|
|
||||||
public bool GetViewportTransformEnable(GpuState state)
|
|
||||||
{
|
|
||||||
// FIXME: We should read ViewportTransformEnable, but it seems that some games writes 0 there?
|
|
||||||
// return state.Get<Boolean32>(MethodOffset.ViewportTransformEnable) != 0;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets texture target from a sampler type.
|
/// Gets texture target from a sampler type.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -308,8 +308,6 @@ namespace Ryujinx.Graphics.Gpu.Shader
|
||||||
return Convert.ToInt32(QueryIsTextureRectangle(state, (int)stage - 1, index));
|
return Convert.ToInt32(QueryIsTextureRectangle(state, (int)stage - 1, index));
|
||||||
case QueryInfoName.PrimitiveTopology:
|
case QueryInfoName.PrimitiveTopology:
|
||||||
return (int)GetPrimitiveTopology();
|
return (int)GetPrimitiveTopology();
|
||||||
case QueryInfoName.ViewportTransformEnable:
|
|
||||||
return Convert.ToInt32(_context.Methods.GetViewportTransformEnable(state));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return QueryInfoCommon(info);
|
return QueryInfoCommon(info);
|
||||||
|
|
|
@ -130,24 +130,12 @@ namespace Ryujinx.Graphics.OpenGL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GetStorageDebugId()
|
|
||||||
{
|
|
||||||
return _parent.GetHashCode();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void CopyTo(ITexture destination, int firstLayer, int firstLevel)
|
public void CopyTo(ITexture destination, int firstLayer, int firstLevel)
|
||||||
{
|
{
|
||||||
TextureView destinationView = (TextureView)destination;
|
TextureView destinationView = (TextureView)destination;
|
||||||
|
|
||||||
TextureCopyUnscaled.Copy(this, destinationView, firstLayer, firstLevel);
|
TextureCopyUnscaled.Copy(this, destinationView, firstLayer, firstLevel);
|
||||||
|
|
||||||
int width = Math.Min(Width, destinationView.Width);
|
|
||||||
int height = Math.Min(Height, destinationView.Height);
|
|
||||||
|
|
||||||
int depth = Math.Min(_info.GetDepthOrLayers(), destinationView._info.GetDepthOrLayers());
|
|
||||||
|
|
||||||
int levels = Math.Min(_info.Levels, destinationView._info.Levels);
|
|
||||||
|
|
||||||
if (destinationView._emulatedViewParent != null)
|
if (destinationView._emulatedViewParent != null)
|
||||||
{
|
{
|
||||||
TextureCopyUnscaled.Copy(
|
TextureCopyUnscaled.Copy(
|
||||||
|
@ -415,32 +403,8 @@ namespace Ryujinx.Graphics.OpenGL
|
||||||
GL.BindTexture(target, Handle);
|
GL.BindTexture(target, Handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Acquire()
|
|
||||||
{
|
|
||||||
_acquired = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Release()
|
|
||||||
{
|
|
||||||
_acquired = false;
|
|
||||||
|
|
||||||
if (_pendingDelete)
|
|
||||||
{
|
|
||||||
_pendingDelete = false;
|
|
||||||
|
|
||||||
Dispose();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
if (_acquired)
|
|
||||||
{
|
|
||||||
_pendingDelete = true;
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Handle != 0)
|
if (Handle != 0)
|
||||||
{
|
{
|
||||||
GL.DeleteTexture(Handle);
|
GL.DeleteTexture(Handle);
|
||||||
|
|
|
@ -11,7 +11,6 @@ namespace Ryujinx.Graphics.Shader
|
||||||
MaximumViewportDimensions,
|
MaximumViewportDimensions,
|
||||||
PrimitiveTopology,
|
PrimitiveTopology,
|
||||||
StorageBufferOffsetAlignment,
|
StorageBufferOffsetAlignment,
|
||||||
SupportsNonConstantTextureOffset,
|
SupportsNonConstantTextureOffset
|
||||||
ViewportTransformEnable
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -59,18 +59,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||||
|
|
||||||
public void PrepareForReturn()
|
public void PrepareForReturn()
|
||||||
{
|
{
|
||||||
if (_config.Stage == ShaderStage.Vertex)
|
if (_config.Stage == ShaderStage.Fragment)
|
||||||
{
|
|
||||||
if (!_config.QueryInfoBool(QueryInfoName.ViewportTransformEnable))
|
|
||||||
{
|
|
||||||
Operand posX = Attribute(AttributeConsts.PositionX);
|
|
||||||
Operand posY = Attribute(AttributeConsts.PositionY);
|
|
||||||
|
|
||||||
this.Copy(posX, this.FPDivide(posX, ConstF(_config.QueryInfo(QueryInfoName.MaximumViewportDimensions) / 2)));
|
|
||||||
this.Copy(posY, this.FPDivide(posY, ConstF(_config.QueryInfo(QueryInfoName.MaximumViewportDimensions) / 2)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (_config.Stage == ShaderStage.Fragment)
|
|
||||||
{
|
{
|
||||||
if (_config.OmapDepth)
|
if (_config.OmapDepth)
|
||||||
{
|
{
|
||||||
|
|
|
@ -94,8 +94,6 @@ namespace Ryujinx.Graphics.Shader.Translation
|
||||||
return 16;
|
return 16;
|
||||||
case QueryInfoName.SupportsNonConstantTextureOffset:
|
case QueryInfoName.SupportsNonConstantTextureOffset:
|
||||||
return Convert.ToInt32(true);
|
return Convert.ToInt32(true);
|
||||||
case QueryInfoName.ViewportTransformEnable:
|
|
||||||
return Convert.ToInt32(true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue