aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/buffer_cache
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-05-30 02:57:42 -0300
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-22 21:51:34 -0400
commitebfbb5e09f9433a5dae144a91e0e40eadee18bd2 (patch)
tree060a277d1150fb671c0365fb51490584939993b9 /src/video_core/buffer_cache
parent142d4f3f6e9b5c6d2b407b9e58265517ad3dbe5e (diff)
buffer_cache: Mark uniform buffers as dirty if any enable bit changes
Diffstat (limited to 'src/video_core/buffer_cache')
-rw-r--r--src/video_core/buffer_cache/buffer_cache.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h
index 6c92e4c301..d6b9eb99f6 100644
--- a/src/video_core/buffer_cache/buffer_cache.h
+++ b/src/video_core/buffer_cache/buffer_cache.h
@@ -142,7 +142,7 @@ public:
void BindHostComputeBuffers();
- void SetEnabledUniformBuffers(size_t stage, u32 enabled);
+ void SetEnabledUniformBuffers(const std::array<u32, NUM_STAGES>& mask);
void SetEnabledComputeUniformBuffers(u32 enabled);
@@ -670,13 +670,13 @@ void BufferCache<P>::BindHostComputeBuffers() {
}
template <class P>
-void BufferCache<P>::SetEnabledUniformBuffers(size_t stage, u32 enabled) {
+void BufferCache<P>::SetEnabledUniformBuffers(const std::array<u32, NUM_STAGES>& mask) {
if constexpr (HAS_PERSISTENT_UNIFORM_BUFFER_BINDINGS) {
- if (enabled_uniform_buffers[stage] != enabled) {
- dirty_uniform_buffers[stage] = ~u32{0};
+ if (enabled_uniform_buffers != mask) {
+ dirty_uniform_buffers.fill(~u32{0});
}
}
- enabled_uniform_buffers[stage] = enabled;
+ enabled_uniform_buffers = mask;
}
template <class P>