summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar bunnei2021-05-17 15:45:36 -0700
committerGravatar GitHub2021-05-17 15:45:36 -0700
commit93bc59b62d8fa4f19bc26a10242fba48d93ceb04 (patch)
tree13333321679903743dae182dc7b3efd1e7342b62
parentMerge pull request #6328 from Morph1984/enforce-c4715 (diff)
parentbuffer_cache: Ensure null buffers cannot take the fast uniform bind path (diff)
downloadyuzu-93bc59b62d8fa4f19bc26a10242fba48d93ceb04.tar.gz
yuzu-93bc59b62d8fa4f19bc26a10242fba48d93ceb04.tar.xz
yuzu-93bc59b62d8fa4f19bc26a10242fba48d93ceb04.zip
Merge pull request #6322 from ameerj/fast-null-buffer
buffer_cache: Ensure null buffers cannot take the fast uniform bind path
Diffstat (limited to '')
-rw-r--r--src/video_core/buffer_cache/buffer_cache.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h
index 32dcbd693..de971041f 100644
--- a/src/video_core/buffer_cache/buffer_cache.h
+++ b/src/video_core/buffer_cache/buffer_cache.h
@@ -690,7 +690,10 @@ void BufferCache<P>::BindHostGraphicsUniformBuffer(size_t stage, u32 index, u32
690 const VAddr cpu_addr = binding.cpu_addr; 690 const VAddr cpu_addr = binding.cpu_addr;
691 const u32 size = binding.size; 691 const u32 size = binding.size;
692 Buffer& buffer = slot_buffers[binding.buffer_id]; 692 Buffer& buffer = slot_buffers[binding.buffer_id];
693 if (size <= uniform_buffer_skip_cache_size && !buffer.IsRegionGpuModified(cpu_addr, size)) { 693 const bool use_fast_buffer = binding.buffer_id != NULL_BUFFER_ID &&
694 size <= uniform_buffer_skip_cache_size &&
695 !buffer.IsRegionGpuModified(cpu_addr, size);
696 if (use_fast_buffer) {
694 if constexpr (IS_OPENGL) { 697 if constexpr (IS_OPENGL) {
695 if (runtime.HasFastBufferSubData()) { 698 if (runtime.HasFastBufferSubData()) {
696 // Fast path for Nvidia 699 // Fast path for Nvidia