|
|
@@ -34,8 +34,8 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
return Math.Clamp(value, 0, max);
|
|
|
}
|
|
|
|
|
|
- Offset3D xy1 = new Offset3D(Clamp(extents.X1, width) >> level, Clamp(extents.Y1, height) >> level, 0);
|
|
|
- Offset3D xy2 = new Offset3D(Clamp(extents.X2, width) >> level, Clamp(extents.Y2, height) >> level, 1);
|
|
|
+ Offset3D xy1 = new(Clamp(extents.X1, width) >> level, Clamp(extents.Y1, height) >> level, 0);
|
|
|
+ Offset3D xy2 = new(Clamp(extents.X2, width) >> level, Clamp(extents.Y2, height) >> level, 1);
|
|
|
|
|
|
return (xy1, xy2);
|
|
|
}
|
|
|
@@ -50,8 +50,8 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
dstAspectFlags = dstInfo.Format.ConvertAspectFlags();
|
|
|
}
|
|
|
|
|
|
- ImageBlit.SrcOffsetsBuffer srcOffsets = new ImageBlit.SrcOffsetsBuffer();
|
|
|
- ImageBlit.DstOffsetsBuffer dstOffsets = new ImageBlit.DstOffsetsBuffer();
|
|
|
+ ImageBlit.SrcOffsetsBuffer srcOffsets = new();
|
|
|
+ ImageBlit.DstOffsetsBuffer dstOffsets = new();
|
|
|
|
|
|
Filter filter = linearFilter && !dstInfo.Format.IsDepthOrStencil() ? Filter.Linear : Filter.Nearest;
|
|
|
|
|
|
@@ -74,13 +74,13 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
|
|
|
for (int level = 0; level < levels; level++)
|
|
|
{
|
|
|
- ImageSubresourceLayers srcSl = new ImageSubresourceLayers(srcAspectFlags, copySrcLevel, (uint)srcLayer, (uint)layers);
|
|
|
- ImageSubresourceLayers dstSl = new ImageSubresourceLayers(dstAspectFlags, copyDstLevel, (uint)dstLayer, (uint)layers);
|
|
|
+ ImageSubresourceLayers srcSl = new(srcAspectFlags, copySrcLevel, (uint)srcLayer, (uint)layers);
|
|
|
+ ImageSubresourceLayers dstSl = new(dstAspectFlags, copyDstLevel, (uint)dstLayer, (uint)layers);
|
|
|
|
|
|
(srcOffsets.Element0, srcOffsets.Element1) = ExtentsToOffset3D(srcRegion, srcInfo.Width, srcInfo.Height, level);
|
|
|
(dstOffsets.Element0, dstOffsets.Element1) = ExtentsToOffset3D(dstRegion, dstInfo.Width, dstInfo.Height, level);
|
|
|
|
|
|
- ImageBlit region = new ImageBlit
|
|
|
+ ImageBlit region = new()
|
|
|
{
|
|
|
SrcSubresource = srcSl,
|
|
|
SrcOffsets = srcOffsets,
|
|
|
@@ -299,13 +299,13 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- ImageSubresourceLayers srcSl = new ImageSubresourceLayers(
|
|
|
+ ImageSubresourceLayers srcSl = new(
|
|
|
srcAspect,
|
|
|
(uint)(srcViewLevel + srcLevel + level),
|
|
|
(uint)(srcViewLayer + srcLayer),
|
|
|
(uint)srcLayers);
|
|
|
|
|
|
- ImageSubresourceLayers dstSl = new ImageSubresourceLayers(
|
|
|
+ ImageSubresourceLayers dstSl = new(
|
|
|
dstAspect,
|
|
|
(uint)(dstViewLevel + dstLevel + level),
|
|
|
(uint)(dstViewLayer + dstLayer),
|
|
|
@@ -314,17 +314,17 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
int copyWidth = sizeInBlocks ? BitUtils.DivRoundUp(width, blockWidth) : width;
|
|
|
int copyHeight = sizeInBlocks ? BitUtils.DivRoundUp(height, blockHeight) : height;
|
|
|
|
|
|
- Extent3D extent = new Extent3D((uint)copyWidth, (uint)copyHeight, (uint)srcDepth);
|
|
|
+ Extent3D extent = new((uint)copyWidth, (uint)copyHeight, (uint)srcDepth);
|
|
|
|
|
|
if (srcInfo.Samples > 1 && srcInfo.Samples != dstInfo.Samples)
|
|
|
{
|
|
|
- ImageResolve region = new ImageResolve(srcSl, new Offset3D(0, 0, srcZ), dstSl, new Offset3D(0, 0, dstZ), extent);
|
|
|
+ ImageResolve region = new(srcSl, new Offset3D(0, 0, srcZ), dstSl, new Offset3D(0, 0, dstZ), extent);
|
|
|
|
|
|
api.CmdResolveImage(commandBuffer, srcImage, ImageLayout.General, dstImage, ImageLayout.General, 1, in region);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- ImageCopy region = new ImageCopy(srcSl, new Offset3D(0, 0, srcZ), dstSl, new Offset3D(0, 0, dstZ), extent);
|
|
|
+ ImageCopy region = new(srcSl, new Offset3D(0, 0, srcZ), dstSl, new Offset3D(0, 0, dstZ), extent);
|
|
|
|
|
|
api.CmdCopyImage(commandBuffer, srcImage, ImageLayout.General, dstImage, ImageLayout.General, 1, in region);
|
|
|
}
|
|
|
@@ -360,10 +360,10 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
TextureView src,
|
|
|
TextureView dst)
|
|
|
{
|
|
|
- AttachmentReference2 dsAttachmentReference = new AttachmentReference2(StructureType.AttachmentReference2, null, 0, ImageLayout.General);
|
|
|
- AttachmentReference2 dsResolveAttachmentReference = new AttachmentReference2(StructureType.AttachmentReference2, null, 1, ImageLayout.General);
|
|
|
+ AttachmentReference2 dsAttachmentReference = new(StructureType.AttachmentReference2, null, 0, ImageLayout.General);
|
|
|
+ AttachmentReference2 dsResolveAttachmentReference = new(StructureType.AttachmentReference2, null, 1, ImageLayout.General);
|
|
|
|
|
|
- SubpassDescriptionDepthStencilResolve subpassDsResolve = new SubpassDescriptionDepthStencilResolve
|
|
|
+ SubpassDescriptionDepthStencilResolve subpassDsResolve = new()
|
|
|
{
|
|
|
SType = StructureType.SubpassDescriptionDepthStencilResolve,
|
|
|
PDepthStencilResolveAttachment = &dsResolveAttachmentReference,
|
|
|
@@ -371,7 +371,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
StencilResolveMode = ResolveModeFlags.SampleZeroBit,
|
|
|
};
|
|
|
|
|
|
- SubpassDescription2 subpass = new SubpassDescription2
|
|
|
+ SubpassDescription2 subpass = new()
|
|
|
{
|
|
|
SType = StructureType.SubpassDescription2,
|
|
|
PipelineBindPoint = PipelineBindPoint.Graphics,
|
|
|
@@ -411,7 +411,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
|
|
|
fixed (AttachmentDescription2* pAttachmentDescs = attachmentDescs)
|
|
|
{
|
|
|
- RenderPassCreateInfo2 renderPassCreateInfo = new RenderPassCreateInfo2
|
|
|
+ RenderPassCreateInfo2 renderPassCreateInfo = new()
|
|
|
{
|
|
|
SType = StructureType.RenderPassCreateInfo2,
|
|
|
PAttachments = pAttachmentDescs,
|
|
|
@@ -424,7 +424,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
|
|
|
gd.Api.CreateRenderPass2(device, in renderPassCreateInfo, null, out RenderPass renderPass).ThrowOnError();
|
|
|
|
|
|
- using Auto<DisposableRenderPass> rp = new Auto<DisposableRenderPass>(new DisposableRenderPass(gd.Api, device, renderPass));
|
|
|
+ using Auto<DisposableRenderPass> rp = new(new DisposableRenderPass(gd.Api, device, renderPass));
|
|
|
|
|
|
ImageView* attachments = stackalloc ImageView[2];
|
|
|
|
|
|
@@ -434,7 +434,7 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
attachments[0] = srcView.Get(cbs).Value;
|
|
|
attachments[1] = dstView.Get(cbs).Value;
|
|
|
|
|
|
- FramebufferCreateInfo framebufferCreateInfo = new FramebufferCreateInfo
|
|
|
+ FramebufferCreateInfo framebufferCreateInfo = new()
|
|
|
{
|
|
|
SType = StructureType.FramebufferCreateInfo,
|
|
|
RenderPass = rp.Get(cbs).Value,
|
|
|
@@ -446,12 +446,12 @@ namespace Ryujinx.Graphics.Vulkan
|
|
|
};
|
|
|
|
|
|
gd.Api.CreateFramebuffer(device, in framebufferCreateInfo, null, out Framebuffer framebuffer).ThrowOnError();
|
|
|
- using Auto<DisposableFramebuffer> fb = new Auto<DisposableFramebuffer>(new DisposableFramebuffer(gd.Api, device, framebuffer), null, srcView, dstView);
|
|
|
+ using Auto<DisposableFramebuffer> fb = new(new DisposableFramebuffer(gd.Api, device, framebuffer), null, srcView, dstView);
|
|
|
|
|
|
- Rect2D renderArea = new Rect2D(null, new Extent2D((uint)src.Info.Width, (uint)src.Info.Height));
|
|
|
- ClearValue clearValue = new ClearValue();
|
|
|
+ Rect2D renderArea = new(null, new Extent2D((uint)src.Info.Width, (uint)src.Info.Height));
|
|
|
+ ClearValue clearValue = new();
|
|
|
|
|
|
- RenderPassBeginInfo renderPassBeginInfo = new RenderPassBeginInfo
|
|
|
+ RenderPassBeginInfo renderPassBeginInfo = new()
|
|
|
{
|
|
|
SType = StructureType.RenderPassBeginInfo,
|
|
|
RenderPass = rp.Get(cbs).Value,
|