summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-05-21 22:19:35 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:33 +0200
commit69b910e9e7c2b9c361f4389cb1d136105b991bc0 (patch)
treec6a2200b1780159db83c650a0f7d17bf5504b1dd /src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
parentglasm: Simplify patch reads (diff)
downloadyuzu-69b910e9e7c2b9c361f4389cb1d136105b991bc0.tar
yuzu-69b910e9e7c2b9c361f4389cb1d136105b991bc0.tar.gz
yuzu-69b910e9e7c2b9c361f4389cb1d136105b991bc0.tar.bz2
yuzu-69b910e9e7c2b9c361f4389cb1d136105b991bc0.tar.lz
yuzu-69b910e9e7c2b9c361f4389cb1d136105b991bc0.tar.xz
yuzu-69b910e9e7c2b9c361f4389cb1d136105b991bc0.tar.zst
yuzu-69b910e9e7c2b9c361f4389cb1d136105b991bc0.zip
Diffstat (limited to '')
-rw-r--r--src/video_core/renderer_vulkan/fixed_pipeline_state.cpp25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp b/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
index 24834e0f7..3a43c329f 100644
--- a/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
+++ b/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
@@ -15,9 +15,7 @@
#include "video_core/renderer_vulkan/vk_state_tracker.h"
namespace Vulkan {
-
namespace {
-
constexpr size_t POINT = 0;
constexpr size_t LINE = 1;
constexpr size_t POLYGON = 2;
@@ -39,6 +37,16 @@ constexpr std::array POLYGON_OFFSET_ENABLE_LUT = {
POLYGON, // Patches
};
+void RefreshXfbState(VideoCommon::TransformFeedbackState& state, const Maxwell& regs) {
+ std::ranges::transform(regs.tfb_layouts, state.layouts.begin(), [](const auto& layout) {
+ return VideoCommon::TransformFeedbackState::Layout{
+ .stream = layout.stream,
+ .varying_count = layout.varying_count,
+ .stride = layout.stride,
+ };
+ });
+ state.varyings = regs.tfb_varying_locs;
+}
} // Anonymous namespace
void FixedPipelineState::Refresh(Tegra::Engines::Maxwell3D& maxwell3d,
@@ -121,7 +129,7 @@ void FixedPipelineState::Refresh(Tegra::Engines::Maxwell3D& maxwell3d,
dynamic_state.Refresh(regs);
}
if (xfb_enabled != 0) {
- xfb_state.Refresh(regs);
+ RefreshXfbState(xfb_state, regs);
}
}
@@ -164,17 +172,6 @@ void FixedPipelineState::BlendingAttachment::Refresh(const Maxwell& regs, size_t
enable.Assign(1);
}
-void FixedPipelineState::TransformFeedbackState::Refresh(const Maxwell& regs) {
- std::ranges::transform(regs.tfb_layouts, layouts.begin(), [](const auto& layout) {
- return Layout{
- .stream = layout.stream,
- .varying_count = layout.varying_count,
- .stride = layout.stride,
- };
- });
- varyings = regs.tfb_varying_locs;
-}
-
void FixedPipelineState::DynamicState::Refresh(const Maxwell& regs) {
u32 packed_front_face = PackFrontFace(regs.front_face);
if (regs.screen_y_control.triangle_rast_flip != 0) {