|
|
|
@ -1309,6 +1309,19 @@ void BufferCache<P>::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<u32>(window_offset), size); |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if constexpr (!IS_OPENGL) { |
|
|
|
if (needs_alignment_stream) { |
|
|
|
const std::span<u8> span = |
|
|
|
|