forked from ShuriZma/suyu
1
0
Fork 0

vk_rasterizer: Use noexcept variants of std::bitset

Removes bounds checking from "texceptions" instances.
This commit is contained in:
ReinUsesLisp 2020-02-04 18:04:19 -03:00
parent 08c508b1c4
commit 0eb36c90f4
1 changed files with 5 additions and 4 deletions

View File

@ -571,7 +571,7 @@ RasterizerVulkan::Texceptions RasterizerVulkan::UpdateAttachments() {
color_attachments[rt] = texture_cache.GetColorBufferSurface(rt, true); color_attachments[rt] = texture_cache.GetColorBufferSurface(rt, true);
} }
if (color_attachments[rt] && WalkAttachmentOverlaps(*color_attachments[rt])) { if (color_attachments[rt] && WalkAttachmentOverlaps(*color_attachments[rt])) {
texceptions.set(rt); texceptions[rt] = true;
} }
} }
@ -579,7 +579,7 @@ RasterizerVulkan::Texceptions RasterizerVulkan::UpdateAttachments() {
zeta_attachment = texture_cache.GetDepthBufferSurface(true); zeta_attachment = texture_cache.GetDepthBufferSurface(true);
} }
if (zeta_attachment && WalkAttachmentOverlaps(*zeta_attachment)) { if (zeta_attachment && WalkAttachmentOverlaps(*zeta_attachment)) {
texceptions.set(ZETA_TEXCEPTION_INDEX); texceptions[ZETA_TEXCEPTION_INDEX] = true;
} }
texture_cache.GuardRenderTargets(false); texture_cache.GuardRenderTargets(false);
@ -1122,11 +1122,12 @@ RenderPassParams RasterizerVulkan::GetRenderPassParams(Texceptions texceptions)
for (std::size_t rt = 0; rt < static_cast<std::size_t>(regs.rt_control.count); ++rt) { for (std::size_t rt = 0; rt < static_cast<std::size_t>(regs.rt_control.count); ++rt) {
const auto& rendertarget = regs.rt[rt]; const auto& rendertarget = regs.rt[rt];
if (rendertarget.Address() == 0 || rendertarget.format == Tegra::RenderTargetFormat::NONE) if (rendertarget.Address() == 0 || rendertarget.format == Tegra::RenderTargetFormat::NONE) {
continue; continue;
}
renderpass_params.color_attachments.push_back(RenderPassParams::ColorAttachment{ renderpass_params.color_attachments.push_back(RenderPassParams::ColorAttachment{
static_cast<u32>(rt), PixelFormatFromRenderTargetFormat(rendertarget.format), static_cast<u32>(rt), PixelFormatFromRenderTargetFormat(rendertarget.format),
texceptions.test(rt)}); texceptions[rt]});
} }
renderpass_params.has_zeta = regs.zeta_enable; renderpass_params.has_zeta = regs.zeta_enable;