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
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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();
}