diff options
Diffstat (limited to 'src/Ryujinx.Graphics.Vulkan')
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs | 39 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/Effects/FsrScalingFilter.cs | 2 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/Effects/FxaaPostProcessingEffect.cs | 2 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/Effects/SmaaPostProcessingEffect.cs | 10 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/HelperShader.cs | 12 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/PipelineBase.cs | 74 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/Queries/CounterQueue.cs | 4 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/Queries/Counters.cs | 4 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/TextureBuffer.cs | 5 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/TextureStorage.cs | 5 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/TextureView.cs | 1 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs | 18 | ||||
-rw-r--r-- | src/Ryujinx.Graphics.Vulkan/Window.cs | 13 |
13 files changed, 32 insertions, 157 deletions
diff --git a/src/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs b/src/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs index 087d90fb..89471091 100644 --- a/src/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs +++ b/src/Ryujinx.Graphics.Vulkan/DescriptorSetUpdater.cs @@ -35,7 +35,6 @@ namespace Ryujinx.Graphics.Vulkan private readonly bool[] _uniformSet; private readonly bool[] _storageSet; - private Buffer _cachedSupportBuffer; [Flags] private enum DirtyFlags @@ -115,7 +114,7 @@ namespace Ryujinx.Graphics.Vulkan SwizzleComponent.Red, SwizzleComponent.Green, SwizzleComponent.Blue, - SwizzleComponent.Alpha), 1f); + SwizzleComponent.Alpha)); _dummySampler = (SamplerHolder)gd.CreateSampler(new SamplerCreateInfo( MinFilter.Nearest, @@ -392,26 +391,6 @@ namespace Ryujinx.Graphics.Vulkan { Initialize(cbs, setIndex, dsc); } - - if (setIndex == PipelineBase.UniformSetIndex) - { - Span<DescriptorBufferInfo> uniformBuffer = stackalloc DescriptorBufferInfo[1]; - - if (!_uniformSet[0]) - { - _cachedSupportBuffer = _gd.BufferManager.GetBuffer(cbs.CommandBuffer, _pipeline.SupportBufferUpdater.Handle, false).Get(cbs, 0, SupportBuffer.RequiredSize).Value; - _uniformSet[0] = true; - } - - uniformBuffer[0] = new DescriptorBufferInfo - { - Offset = 0, - Range = (ulong)SupportBuffer.RequiredSize, - Buffer = _cachedSupportBuffer, - }; - - dsc.UpdateBuffers(0, 0, uniformBuffer, DescriptorType.UniformBuffer); - } } foreach (ResourceBindingSegment segment in bindingSegments) @@ -553,22 +532,6 @@ namespace Ryujinx.Graphics.Vulkan [MethodImpl(MethodImplOptions.AggressiveInlining)] private void UpdateAndBindUniformBufferPd(CommandBufferScoped cbs, PipelineBindPoint pbp) { - if (!_uniformSet[0]) - { - Span<DescriptorBufferInfo> uniformBuffer = stackalloc DescriptorBufferInfo[1]; - - uniformBuffer[0] = new DescriptorBufferInfo - { - Offset = 0, - Range = (ulong)SupportBuffer.RequiredSize, - Buffer = _gd.BufferManager.GetBuffer(cbs.CommandBuffer, _pipeline.SupportBufferUpdater.Handle, false).Get(cbs, 0, SupportBuffer.RequiredSize).Value, - }; - - _uniformSet[0] = true; - - UpdateBuffers(cbs, pbp, 0, uniformBuffer, DescriptorType.UniformBuffer); - } - var bindingSegments = _program.BindingSegments[PipelineBase.UniformSetIndex]; var dummyBuffer = _dummyBuffer?.GetBuffer(); diff --git a/src/Ryujinx.Graphics.Vulkan/Effects/FsrScalingFilter.cs b/src/Ryujinx.Graphics.Vulkan/Effects/FsrScalingFilter.cs index 89a43b12..23acdcf8 100644 --- a/src/Ryujinx.Graphics.Vulkan/Effects/FsrScalingFilter.cs +++ b/src/Ryujinx.Graphics.Vulkan/Effects/FsrScalingFilter.cs @@ -115,7 +115,7 @@ namespace Ryujinx.Graphics.Vulkan.Effects originalInfo.SwizzleB, originalInfo.SwizzleA); _intermediaryTexture?.Dispose(); - _intermediaryTexture = _renderer.CreateTexture(info, view.ScaleFactor) as TextureView; + _intermediaryTexture = _renderer.CreateTexture(info) as TextureView; } _pipeline.SetCommandBuffer(cbs); diff --git a/src/Ryujinx.Graphics.Vulkan/Effects/FxaaPostProcessingEffect.cs b/src/Ryujinx.Graphics.Vulkan/Effects/FxaaPostProcessingEffect.cs index 2dd99180..7729934f 100644 --- a/src/Ryujinx.Graphics.Vulkan/Effects/FxaaPostProcessingEffect.cs +++ b/src/Ryujinx.Graphics.Vulkan/Effects/FxaaPostProcessingEffect.cs @@ -57,7 +57,7 @@ namespace Ryujinx.Graphics.Vulkan.Effects if (_texture == null || _texture.Width != view.Width || _texture.Height != view.Height) { _texture?.Dispose(); - _texture = _renderer.CreateTexture(view.Info, view.ScaleFactor) as TextureView; + _texture = _renderer.CreateTexture(view.Info) as TextureView; } _pipeline.SetCommandBuffer(cbs); diff --git a/src/Ryujinx.Graphics.Vulkan/Effects/SmaaPostProcessingEffect.cs b/src/Ryujinx.Graphics.Vulkan/Effects/SmaaPostProcessingEffect.cs index 40ab245e..c521f227 100644 --- a/src/Ryujinx.Graphics.Vulkan/Effects/SmaaPostProcessingEffect.cs +++ b/src/Ryujinx.Graphics.Vulkan/Effects/SmaaPostProcessingEffect.cs @@ -177,8 +177,8 @@ namespace Ryujinx.Graphics.Vulkan.Effects var areaTexture = EmbeddedResources.Read("Ryujinx.Graphics.Vulkan/Effects/Textures/SmaaAreaTexture.bin"); var searchTexture = EmbeddedResources.Read("Ryujinx.Graphics.Vulkan/Effects/Textures/SmaaSearchTexture.bin"); - _areaTexture = _renderer.CreateTexture(areaInfo, 1) as TextureView; - _searchTexture = _renderer.CreateTexture(searchInfo, 1) as TextureView; + _areaTexture = _renderer.CreateTexture(areaInfo) as TextureView; + _searchTexture = _renderer.CreateTexture(searchInfo) as TextureView; _areaTexture.SetData(areaTexture); _searchTexture.SetData(searchTexture); @@ -193,9 +193,9 @@ namespace Ryujinx.Graphics.Vulkan.Effects _edgeOutputTexture?.Dispose(); _blendOutputTexture?.Dispose(); - _outputTexture = _renderer.CreateTexture(view.Info, view.ScaleFactor) as TextureView; - _edgeOutputTexture = _renderer.CreateTexture(view.Info, view.ScaleFactor) as TextureView; - _blendOutputTexture = _renderer.CreateTexture(view.Info, view.ScaleFactor) as TextureView; + _outputTexture = _renderer.CreateTexture(view.Info) as TextureView; + _edgeOutputTexture = _renderer.CreateTexture(view.Info) as TextureView; + _blendOutputTexture = _renderer.CreateTexture(view.Info) as TextureView; } _pipeline.SetCommandBuffer(cbs); diff --git a/src/Ryujinx.Graphics.Vulkan/HelperShader.cs b/src/Ryujinx.Graphics.Vulkan/HelperShader.cs index 648afcd6..b19a4f70 100644 --- a/src/Ryujinx.Graphics.Vulkan/HelperShader.cs +++ b/src/Ryujinx.Graphics.Vulkan/HelperShader.cs @@ -470,7 +470,7 @@ namespace Ryujinx.Graphics.Vulkan _pipeline.ClearRenderTargetColor(0, 0, 1, new ColorF(0f, 0f, 0f, 1f)); } - _pipeline.SetViewports(viewports, false); + _pipeline.SetViewports(viewports); _pipeline.SetPrimitiveTopology(PrimitiveTopology.TriangleStrip); _pipeline.Draw(4, 1, 0, 0); @@ -546,7 +546,7 @@ namespace Ryujinx.Graphics.Vulkan _pipeline.SetRenderTarget(dst, (uint)dstWidth, (uint)dstHeight, (uint)dstSamples, true, dstFormat); _pipeline.SetScissors(scissors); - _pipeline.SetViewports(viewports, false); + _pipeline.SetViewports(viewports); _pipeline.SetPrimitiveTopology(PrimitiveTopology.TriangleStrip); var aspectFlags = src.Info.Format.ConvertAspectFlags(); @@ -710,7 +710,7 @@ namespace Ryujinx.Graphics.Vulkan _pipeline.SetProgram(program); _pipeline.SetRenderTarget(dst, (uint)dstWidth, (uint)dstHeight, false, dstFormat); _pipeline.SetRenderTargetColorMasks(new[] { componentMask }); - _pipeline.SetViewports(viewports, false); + _pipeline.SetViewports(viewports); _pipeline.SetScissors(scissors); _pipeline.SetPrimitiveTopology(PrimitiveTopology.TriangleStrip); _pipeline.Draw(4, 1, 0, 0); @@ -774,7 +774,7 @@ namespace Ryujinx.Graphics.Vulkan Span<Rectangle<int>> scissors = stackalloc Rectangle<int>[1]; pipeline.SetProgram(_programColorBlit); - pipeline.SetViewports(viewports, false); + pipeline.SetViewports(viewports); pipeline.SetPrimitiveTopology(PrimitiveTopology.TriangleStrip); pipeline.Draw(4, 1, 0, 0); @@ -1117,7 +1117,7 @@ namespace Ryujinx.Graphics.Vulkan scissors[0] = new Rectangle<int>(0, 0, dst.Width, dst.Height); _pipeline.SetScissors(scissors); - _pipeline.SetViewports(viewports, false); + _pipeline.SetViewports(viewports); _pipeline.SetPrimitiveTopology(PrimitiveTopology.TriangleStrip); for (int z = 0; z < depth; z++) @@ -1250,7 +1250,7 @@ namespace Ryujinx.Graphics.Vulkan _pipeline.SetRenderTargetColorMasks(new uint[] { 0xf }); _pipeline.SetScissors(scissors); - _pipeline.SetViewports(viewports, false); + _pipeline.SetViewports(viewports); _pipeline.SetPrimitiveTopology(PrimitiveTopology.TriangleStrip); _pipeline.SetUniformBuffers(stackalloc[] { new BufferAssignment(0, new BufferRange(bufferHandle, 0, ParamsBufferSize)) }); diff --git a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs index 7f175d93..b76e482b 100644 --- a/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs +++ b/src/Ryujinx.Graphics.Vulkan/PipelineBase.cs @@ -50,9 +50,6 @@ namespace Ryujinx.Graphics.Vulkan private ShaderCollection _program; - private readonly Vector4<float>[] _renderScale = new Vector4<float>[73]; - private int _fragmentScaleCount; - protected FramebufferParams FramebufferParams; private Auto<DisposableFramebuffer> _framebuffer; private Auto<DisposableRenderPass> _renderPass; @@ -74,7 +71,6 @@ namespace Ryujinx.Graphics.Vulkan private readonly VertexBufferUpdater _vertexBufferUpdater; - public SupportBufferUpdater SupportBufferUpdater; public IndexBufferPattern QuadsToTrisPattern; public IndexBufferPattern TriFanToTrisPattern; @@ -119,9 +115,6 @@ namespace Ryujinx.Graphics.Vulkan ClearScissor = new Rectangle<int>(0, 0, 0xffff, 0xffff); - var defaultScale = new Vector4<float> { X = 1f, Y = 0f, Z = 0f, W = 0f }; - new Span<Vector4<float>>(_renderScale).Fill(defaultScale); - _storedBlend = new PipelineColorBlendAttachmentState[Constants.MaxRenderTargets]; _newState.Initialize(); @@ -131,9 +124,6 @@ namespace Ryujinx.Graphics.Vulkan { _descriptorSetUpdater.Initialize(); - SupportBufferUpdater = new SupportBufferUpdater(Gd); - SupportBufferUpdater.UpdateRenderScale(_renderScale, 0, SupportBuffer.RenderScaleMaxCount); - QuadsToTrisPattern = new IndexBufferPattern(Gd, 4, 6, 0, new[] { 0, 1, 2, 0, 2, 3 }, 4, false); TriFanToTrisPattern = new IndexBufferPattern(Gd, 3, 3, 2, new[] { int.MinValue, -1, 0 }, 1, true); } @@ -666,8 +656,6 @@ namespace Ryujinx.Graphics.Vulkan { if (texture is TextureView srcTexture) { - SupportBufferUpdater.Commit(); - var oldCullMode = _newState.CullMode; var oldStencilTestEnable = _newState.StencilTestEnable; var oldDepthTestEnable = _newState.DepthTestEnable; @@ -709,16 +697,6 @@ namespace Ryujinx.Graphics.Vulkan _tfEnabled = false; } - public double GetCounterDivisor(CounterType type) - { - if (type == CounterType.SamplesPassed) - { - return _renderScale[0].X * _renderScale[0].X; - } - - return 1; - } - public bool IsCommandBufferActive(CommandBuffer cb) { return CommandBuffer.Handle == cb.Handle; @@ -1050,12 +1028,6 @@ namespace Ryujinx.Graphics.Vulkan SetRenderTargetsInternal(colors, depthStencil, Gd.IsTBDR); } - public void SetRenderTargetScale(float scale) - { - _renderScale[0].X = scale; - SupportBufferUpdater.UpdateRenderScale(_renderScale, 0, 1); // Just the first element. - } - public void SetScissors(ReadOnlySpan<Rectangle<int>> regions) { int maxScissors = Gd.Capabilities.SupportsMultiView ? Constants.MaxViewports : 1; @@ -1303,7 +1275,7 @@ namespace Ryujinx.Graphics.Vulkan SignalStateChange(); } - public void SetViewports(ReadOnlySpan<Viewport> viewports, bool disableTransform) + public void SetViewports(ReadOnlySpan<Viewport> viewports) { int maxViewports = Gd.Capabilities.SupportsMultiView ? Constants.MaxViewports : 1; int count = Math.Min(maxViewports, viewports.Length); @@ -1328,19 +1300,6 @@ namespace Ryujinx.Graphics.Vulkan Clamp(viewport.DepthFar))); } - float disableTransformF = disableTransform ? 1.0f : 0.0f; - if (SupportBufferUpdater.Data.ViewportInverse.W != disableTransformF || disableTransform) - { - float scale = _renderScale[0].X; - SupportBufferUpdater.UpdateViewportInverse(new Vector4<float> - { - X = scale * 2f / viewports[0].Region.Width, - Y = scale * 2f / viewports[0].Region.Height, - Z = 1, - W = disableTransformF, - }); - } - _newState.ViewportsCount = (uint)count; SignalStateChange(); } @@ -1391,32 +1350,6 @@ namespace Ryujinx.Graphics.Vulkan TextureBarrier(); } - public void UpdateRenderScale(ReadOnlySpan<float> scales, int totalCount, int fragmentCount) - { - bool changed = false; - - for (int index = 0; index < totalCount; index++) - { - if (_renderScale[1 + index].X != scales[index]) - { - _renderScale[1 + index].X = scales[index]; - changed = true; - } - } - - // Only update fragment count if there are scales after it for the vertex stage. - if (fragmentCount != totalCount && fragmentCount != _fragmentScaleCount) - { - _fragmentScaleCount = fragmentCount; - SupportBufferUpdater.UpdateFragmentRenderScaleCount(_fragmentScaleCount); - } - - if (changed) - { - SupportBufferUpdater.UpdateRenderScale(_renderScale, 0, 1 + totalCount); - } - } - protected void SignalCommandBufferChange() { _needsIndexBufferRebind = true; @@ -1614,9 +1547,6 @@ namespace Ryujinx.Graphics.Vulkan DynamicState.ReplayIfDirty(Gd.Api, CommandBuffer); - // Commit changes to the support buffer before drawing. - SupportBufferUpdater.Commit(); - if (_needsIndexBufferRebind && _indexBufferPattern == null) { _indexBuffer.BindIndexBuffer(Gd, Cbs); @@ -1777,8 +1707,6 @@ namespace Ryujinx.Graphics.Vulkan { Gd.Api.DestroyPipelineCache(Device, PipelineCache, null); } - - SupportBufferUpdater.Dispose(); } } diff --git a/src/Ryujinx.Graphics.Vulkan/Queries/CounterQueue.cs b/src/Ryujinx.Graphics.Vulkan/Queries/CounterQueue.cs index 724588d5..9c450cb7 100644 --- a/src/Ryujinx.Graphics.Vulkan/Queries/CounterQueue.cs +++ b/src/Ryujinx.Graphics.Vulkan/Queries/CounterQueue.cs @@ -130,7 +130,7 @@ namespace Ryujinx.Graphics.Vulkan.Queries } } - public CounterQueueEvent QueueReport(EventHandler<ulong> resultHandler, ulong lastDrawIndex, bool hostReserved) + public CounterQueueEvent QueueReport(EventHandler<ulong> resultHandler, float divisor, ulong lastDrawIndex, bool hostReserved) { CounterQueueEvent result; ulong draws = lastDrawIndex - _current.DrawIndex; @@ -146,7 +146,7 @@ namespace Ryujinx.Graphics.Vulkan.Queries _current.ReserveForHostAccess(); } - _current.Complete(draws > 0 && Type != CounterType.TransformFeedbackPrimitivesWritten, _pipeline.GetCounterDivisor(Type)); + _current.Complete(draws > 0 && Type != CounterType.TransformFeedbackPrimitivesWritten, divisor); _events.Enqueue(_current); _current.OnResult += resultHandler; diff --git a/src/Ryujinx.Graphics.Vulkan/Queries/Counters.cs b/src/Ryujinx.Graphics.Vulkan/Queries/Counters.cs index d9d65062..518ede5f 100644 --- a/src/Ryujinx.Graphics.Vulkan/Queries/Counters.cs +++ b/src/Ryujinx.Graphics.Vulkan/Queries/Counters.cs @@ -37,9 +37,9 @@ namespace Ryujinx.Graphics.Vulkan.Queries _counterQueues[(int)CounterType.SamplesPassed].ResetFutureCounters(cmd, count); } - public CounterQueueEvent QueueReport(CounterType type, EventHandler<ulong> resultHandler, bool hostReserved) + public CounterQueueEvent QueueReport(CounterType type, EventHandler<ulong> resultHandler, float divisor, bool hostReserved) { - return _counterQueues[(int)type].QueueReport(resultHandler, _pipeline.DrawCount, hostReserved); + return _counterQueues[(int)type].QueueReport(resultHandler, divisor, _pipeline.DrawCount, hostReserved); } public void QueueReset(CounterType type) diff --git a/src/Ryujinx.Graphics.Vulkan/TextureBuffer.cs b/src/Ryujinx.Graphics.Vulkan/TextureBuffer.cs index e7d24a00..ddcf51f6 100644 --- a/src/Ryujinx.Graphics.Vulkan/TextureBuffer.cs +++ b/src/Ryujinx.Graphics.Vulkan/TextureBuffer.cs @@ -25,15 +25,12 @@ namespace Ryujinx.Graphics.Vulkan public VkFormat VkFormat { get; } - public float ScaleFactor { get; } - - public TextureBuffer(VulkanRenderer gd, TextureCreateInfo info, float scale) + public TextureBuffer(VulkanRenderer gd, TextureCreateInfo info) { _gd = gd; Width = info.Width; Height = info.Height; VkFormat = FormatTable.GetFormat(info.Format); - ScaleFactor = scale; gd.Textures.Add(this); } diff --git a/src/Ryujinx.Graphics.Vulkan/TextureStorage.cs b/src/Ryujinx.Graphics.Vulkan/TextureStorage.cs index 2a51c132..5ecd9907 100644 --- a/src/Ryujinx.Graphics.Vulkan/TextureStorage.cs +++ b/src/Ryujinx.Graphics.Vulkan/TextureStorage.cs @@ -54,19 +54,16 @@ namespace Ryujinx.Graphics.Vulkan private readonly ulong _size; public VkFormat VkFormat { get; } - public float ScaleFactor { get; } public unsafe TextureStorage( VulkanRenderer gd, Device device, TextureCreateInfo info, - float scaleFactor, Auto<MemoryAllocation> foreignAllocation = null) { _gd = gd; _device = device; _info = info; - ScaleFactor = scaleFactor; var format = _gd.FormatCapabilities.ConvertToVkFormat(info.Format); var levels = (uint)info.Levels; @@ -175,7 +172,7 @@ namespace Ryujinx.Graphics.Vulkan var info = NewCreateInfoWith(ref _info, format, _info.BytesPerPixel); - storage = new TextureStorage(_gd, _device, info, ScaleFactor, _allocationAuto); + storage = new TextureStorage(_gd, _device, info, _allocationAuto); _aliasedStorages.Add(format, storage); } diff --git a/src/Ryujinx.Graphics.Vulkan/TextureView.cs b/src/Ryujinx.Graphics.Vulkan/TextureView.cs index 6151d5a9..bb14ea61 100644 --- a/src/Ryujinx.Graphics.Vulkan/TextureView.cs +++ b/src/Ryujinx.Graphics.Vulkan/TextureView.cs @@ -32,7 +32,6 @@ namespace Ryujinx.Graphics.Vulkan public int Layers => Info.GetDepthOrLayers(); public int FirstLayer { get; } public int FirstLevel { get; } - public float ScaleFactor => Storage.ScaleFactor; public VkFormat VkFormat { get; } public bool Valid { get; private set; } diff --git a/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs b/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs index b9b1ba91..11c3bfe4 100644 --- a/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs +++ b/src/Ryujinx.Graphics.Vulkan/VulkanRenderer.cs @@ -432,26 +432,26 @@ namespace Ryujinx.Graphics.Vulkan return new SamplerHolder(this, _device, info); } - public ITexture CreateTexture(TextureCreateInfo info, float scale) + public ITexture CreateTexture(TextureCreateInfo info) { if (info.Target == Target.TextureBuffer) { - return new TextureBuffer(this, info, scale); + return new TextureBuffer(this, info); } - return CreateTextureView(info, scale); + return CreateTextureView(info); } - internal TextureView CreateTextureView(TextureCreateInfo info, float scale) + internal TextureView CreateTextureView(TextureCreateInfo info) { // This should be disposed when all views are destroyed. - var storage = CreateTextureStorage(info, scale); + var storage = CreateTextureStorage(info); return storage.CreateView(info, 0, 0); } - internal TextureStorage CreateTextureStorage(TextureCreateInfo info, float scale) + internal TextureStorage CreateTextureStorage(TextureCreateInfo info) { - return new TextureStorage(this, _device, info, scale); + return new TextureStorage(this, _device, info); } public void DeleteBuffer(BufferHandle buffer) @@ -753,9 +753,9 @@ namespace Ryujinx.Graphics.Vulkan SyncManager.Cleanup(); } - public ICounterEvent ReportCounter(CounterType type, EventHandler<ulong> resultHandler, bool hostReserved) + public ICounterEvent ReportCounter(CounterType type, EventHandler<ulong> resultHandler, float divisor, bool hostReserved) { - return _counters.QueueReport(type, resultHandler, hostReserved); + return _counters.QueueReport(type, resultHandler, divisor, hostReserved); } public void ResetCounter(CounterType type) diff --git a/src/Ryujinx.Graphics.Vulkan/Window.cs b/src/Ryujinx.Graphics.Vulkan/Window.cs index 0a41e98d..6027962c 100644 --- a/src/Ryujinx.Graphics.Vulkan/Window.cs +++ b/src/Ryujinx.Graphics.Vulkan/Window.cs @@ -294,12 +294,11 @@ namespace Ryujinx.Graphics.Vulkan } int srcX0, srcX1, srcY0, srcY1; - float scale = view.ScaleFactor; if (crop.Left == 0 && crop.Right == 0) { srcX0 = 0; - srcX1 = (int)(view.Width / scale); + srcX1 = view.Width; } else { @@ -310,7 +309,7 @@ namespace Ryujinx.Graphics.Vulkan if (crop.Top == 0 && crop.Bottom == 0) { srcY0 = 0; - srcY1 = (int)(view.Height / scale); + srcY1 = view.Height; } else { @@ -318,14 +317,6 @@ namespace Ryujinx.Graphics.Vulkan srcY1 = crop.Bottom; } - if (scale != 1f) - { - srcX0 = (int)(srcX0 * scale); - srcY0 = (int)(srcY0 * scale); - srcX1 = (int)Math.Ceiling(srcX1 * scale); - srcY1 = (int)Math.Ceiling(srcY1 * scale); - } - if (ScreenCaptureRequested) { if (_effect != null) |