summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/fixed_pipeline_state.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-01-08 21:24:46 +0100
committerGitHub <noreply@github.com>2021-01-08 21:24:46 +0100
commit8eea7c1176e587d4cfede258164998d9af3419e9 (patch)
treed21b318c0451fe16ace40a8b02518de7465c0e5d /src/video_core/renderer_vulkan/fixed_pipeline_state.h
parentMerge pull request #5300 from JeremyStarTM/patch-1 (diff)
parentrenderer_vulkan/fixed_pipeline_state: Move enabled bindings to static state (diff)
downloadyuzu-8eea7c1176e587d4cfede258164998d9af3419e9.tar
yuzu-8eea7c1176e587d4cfede258164998d9af3419e9.tar.gz
yuzu-8eea7c1176e587d4cfede258164998d9af3419e9.tar.bz2
yuzu-8eea7c1176e587d4cfede258164998d9af3419e9.tar.lz
yuzu-8eea7c1176e587d4cfede258164998d9af3419e9.tar.xz
yuzu-8eea7c1176e587d4cfede258164998d9af3419e9.tar.zst
yuzu-8eea7c1176e587d4cfede258164998d9af3419e9.zip
Diffstat (limited to 'src/video_core/renderer_vulkan/fixed_pipeline_state.h')
-rw-r--r--src/video_core/renderer_vulkan/fixed_pipeline_state.h11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/video_core/renderer_vulkan/fixed_pipeline_state.h b/src/video_core/renderer_vulkan/fixed_pipeline_state.h
index 7e95e6fce..465a55fdb 100644
--- a/src/video_core/renderer_vulkan/fixed_pipeline_state.h
+++ b/src/video_core/renderer_vulkan/fixed_pipeline_state.h
@@ -96,6 +96,8 @@ struct FixedPipelineState {
BitField<6, 14, u32> offset;
BitField<20, 3, u32> type;
BitField<23, 6, u32> size;
+ // Not really an element of a vertex attribute, but it can be packed here
+ BitField<29, 1, u32> binding_index_enabled;
constexpr Maxwell::VertexAttribute::Type Type() const noexcept {
return static_cast<Maxwell::VertexAttribute::Type>(type.Value());
@@ -130,12 +132,6 @@ struct FixedPipelineState {
}
};
- union VertexBinding {
- u16 raw;
- BitField<0, 12, u16> stride;
- BitField<12, 1, u16> enabled;
- };
-
struct DynamicState {
union {
u32 raw1;
@@ -153,7 +149,8 @@ struct FixedPipelineState {
BitField<0, 2, u32> cull_face;
BitField<2, 1, u32> cull_enable;
};
- std::array<VertexBinding, Maxwell::NumVertexArrays> vertex_bindings;
+ // Vertex stride is a 12 bits value, we have 4 bits to spare per element
+ std::array<u16, Maxwell::NumVertexArrays> vertex_strides;
void Fill(const Maxwell& regs);