diff options
| author | 2021-06-01 13:26:43 -0400 | |
|---|---|---|
| committer | 2021-06-01 13:26:58 -0400 | |
| commit | 859ba21f6db184f7ada03314ed02b42e49eb8149 (patch) | |
| tree | d6e4b35187bb52371c102b982eb8a90af56420d2 /src/video_core/buffer_cache | |
| parent | Merge pull request #6396 from lat9nq/mingw-sdl-fix (diff) | |
| download | yuzu-859ba21f6db184f7ada03314ed02b42e49eb8149.tar.gz yuzu-859ba21f6db184f7ada03314ed02b42e49eb8149.tar.xz yuzu-859ba21f6db184f7ada03314ed02b42e49eb8149.zip | |
buffer_cache: Simplify uniform disabling logic
Diffstat (limited to 'src/video_core/buffer_cache')
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 9e6b87960..d371b842f 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h | |||
| @@ -110,6 +110,8 @@ public: | |||
| 110 | 110 | ||
| 111 | void BindGraphicsUniformBuffer(size_t stage, u32 index, GPUVAddr gpu_addr, u32 size); | 111 | void BindGraphicsUniformBuffer(size_t stage, u32 index, GPUVAddr gpu_addr, u32 size); |
| 112 | 112 | ||
| 113 | void DisableGraphicsUniformBuffer(size_t stage, u32 index); | ||
| 114 | |||
| 113 | void UpdateGraphicsBuffers(bool is_indexed); | 115 | void UpdateGraphicsBuffers(bool is_indexed); |
| 114 | 116 | ||
| 115 | void UpdateComputeBuffers(); | 117 | void UpdateComputeBuffers(); |
| @@ -419,10 +421,6 @@ template <class P> | |||
| 419 | void BufferCache<P>::BindGraphicsUniformBuffer(size_t stage, u32 index, GPUVAddr gpu_addr, | 421 | void BufferCache<P>::BindGraphicsUniformBuffer(size_t stage, u32 index, GPUVAddr gpu_addr, |
| 420 | u32 size) { | 422 | u32 size) { |
| 421 | const std::optional<VAddr> cpu_addr = gpu_memory.GpuToCpuAddress(gpu_addr); | 423 | const std::optional<VAddr> cpu_addr = gpu_memory.GpuToCpuAddress(gpu_addr); |
| 422 | if (!cpu_addr) { | ||
| 423 | uniform_buffers[stage][index] = NULL_BINDING; | ||
| 424 | return; | ||
| 425 | } | ||
| 426 | const Binding binding{ | 424 | const Binding binding{ |
| 427 | .cpu_addr = *cpu_addr, | 425 | .cpu_addr = *cpu_addr, |
| 428 | .size = size, | 426 | .size = size, |
| @@ -432,6 +430,11 @@ void BufferCache<P>::BindGraphicsUniformBuffer(size_t stage, u32 index, GPUVAddr | |||
| 432 | } | 430 | } |
| 433 | 431 | ||
| 434 | template <class P> | 432 | template <class P> |
| 433 | void BufferCache<P>::DisableGraphicsUniformBuffer(size_t stage, u32 index) { | ||
| 434 | uniform_buffers[stage][index] = NULL_BINDING; | ||
| 435 | } | ||
| 436 | |||
| 437 | template <class P> | ||
| 435 | void BufferCache<P>::UpdateGraphicsBuffers(bool is_indexed) { | 438 | void BufferCache<P>::UpdateGraphicsBuffers(bool is_indexed) { |
| 436 | MICROPROFILE_SCOPE(GPU_PrepareBuffers); | 439 | MICROPROFILE_SCOPE(GPU_PrepareBuffers); |
| 437 | do { | 440 | do { |