diff options
| author | Sssnowyyy <78863999+Sssnowyyy@users.noreply.github.com> | 2026-11-02 11:39:27 -0500 |
|---|---|---|
| committer | Sssnowyyy <78863999+Sssnowyyy@users.noreply.github.com> | 2026-11-02 14:53:47 -0500 |
| commit | 8556e27015ded665ca9a5522071cdeeec20a1575 (patch) | |
| tree | 9124fbf9e9d494469a1811cc614d338c9d3e45dc /src/video_core/buffer_cache/buffer_cache.h | |
| parent | 13fc5fda26e6b5a9af67f5a654e831187bfa1962 (diff) | |
buffer_cache: fix the already-disabled check for uniform buffers
DisableGraphicsUniformBuffer tested !current.buffer_id to detect a
binding that is already NULL_BINDING. SlotId converts to true unless it
is the invalid id, and NULL_BUFFER_ID is BufferId{0}, so the check was
false for NULL_BINDING and the early return never triggered. Compare
against NULL_BUFFER_ID instead.
Follow-up to 46b2577bf7.
Assisted-by: Claude Sonnet 5.5 (implementation and commit message)
Diffstat (limited to 'src/video_core/buffer_cache/buffer_cache.h')
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 6878780866..2d90a949c3 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -411,7 +411,8 @@ void BufferCache<P>::BindGraphicsUniformBuffer(size_t stage, u32 index, GPUVAddr template <class P> void BufferCache<P>::DisableGraphicsUniformBuffer(size_t stage, u32 index) { auto& current = channel_state->uniform_buffers[stage][index]; - if (current.device_addr == 0 && current.size == 0 && !current.buffer_id) [[likely]] { + if (current.device_addr == 0 && current.size == 0 && current.buffer_id == NULL_BUFFER_ID) + [[likely]] { return; } current = NULL_BINDING; |
