Remove more unused code

This commit is contained in:
gdkchan 2019-12-31 19:22:45 -03:00 committed by Thog
parent 59fdaa744b
commit 9bfb373bdf
7 changed files with 7 additions and 100 deletions

View File

@ -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);

View File

@ -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;
if (transformEnable)
{
float x = transform.TranslateX - MathF.Abs(transform.ScaleX); float x = transform.TranslateX - MathF.Abs(transform.ScaleX);
float y = transform.TranslateY - MathF.Abs(transform.ScaleY); float y = transform.TranslateY - MathF.Abs(transform.ScaleY);
float width = transform.ScaleX * 2; float width = transform.ScaleX * 2;
float height = transform.ScaleY * 2 * yFlip; float height = transform.ScaleY * 2 * yFlip;
region = new RectangleF(x, y, width, height); RectangleF 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>

View File

@ -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);

View File

@ -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);

View File

@ -11,7 +11,6 @@ namespace Ryujinx.Graphics.Shader
MaximumViewportDimensions, MaximumViewportDimensions,
PrimitiveTopology, PrimitiveTopology,
StorageBufferOffsetAlignment, StorageBufferOffsetAlignment,
SupportsNonConstantTextureOffset, SupportsNonConstantTextureOffset
ViewportTransformEnable
} }
} }

View File

@ -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)
{ {

View File

@ -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);
} }
} }