buffer_cache: Mark uniform buffers as dirty if any enable bit changes
This commit is contained in:
parent
329dea217d
commit
a7e9756671
5 changed files with 17 additions and 7 deletions
|
@ -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>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue