diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 75cfea3644..6d16d03e5f 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -1309,6 +1309,19 @@ void BufferCache
::BindHostComputeUniformBuffers() {
return alignment > 1 && (offset % alignment) != 0;
}
}();
+ if constexpr (USE_UNIFIED_DIRECT_BINDING && !NEEDS_BIND_UNIFORM_INDEX) {
+ u64 window_index = 0;
+ u64 window_offset = 0;
+ if (runtime.SupportsUnifiedDescriptorBinding() &&
+ size <= runtime.UnifiedMaxUniformBufferRange() &&
+ ResolveUnifiedDirectBinding(binding.device_addr, size,
+ runtime.UnifiedUniformBufferAlignment(), window_index,
+ window_offset)) {
+ runtime.BindBufferFromWindow(window_index, static_cast