Implement non-MS to MS copies with draws (#3958)

* Implement non-MS to MS copies with draws, simplify MS to non-MS copies and supports any host sample count

* Remove unused program
This commit is contained in:
gdkchan
2022-12-04 15:07:11 -03:00
committed by GitHub
parent 9ac66336a2
commit 73aed239c3
15 changed files with 577 additions and 462 deletions

View File

@ -11,14 +11,19 @@ namespace Ryujinx.Graphics.Vulkan
public void SetRenderTarget(Auto<DisposableImageView> view, uint width, uint height, bool isDepthStencil, VkFormat format)
{
CreateFramebuffer(view, width, height, isDepthStencil, format);
SetRenderTarget(view, width, height, 1u, isDepthStencil, format);
}
public void SetRenderTarget(Auto<DisposableImageView> view, uint width, uint height, uint samples, bool isDepthStencil, VkFormat format)
{
CreateFramebuffer(view, width, height, samples, isDepthStencil, format);
CreateRenderPass();
SignalStateChange();
}
private void CreateFramebuffer(Auto<DisposableImageView> view, uint width, uint height, bool isDepthStencil, VkFormat format)
private void CreateFramebuffer(Auto<DisposableImageView> view, uint width, uint height, uint samples, bool isDepthStencil, VkFormat format)
{
FramebufferParams = new FramebufferParams(Device, view, width, height, isDepthStencil, format);
FramebufferParams = new FramebufferParams(Device, view, width, height, samples, isDepthStencil, format);
UpdatePipelineAttachmentFormats();
}