diff options
| author | 2023-06-13 00:32:16 -0400 | |
|---|---|---|
| committer | 2023-06-13 00:59:42 -0400 | |
| commit | 925586f97bb4a2f13b602d145cdd3aa00c7177fa (patch) | |
| tree | a7bb918bf3dd173a571cb65ed3783c7d45d4be68 /src/video_core/buffer_cache | |
| parent | Merge pull request #10746 from bunnei/update-android-settings (diff) | |
| download | yuzu-925586f97bb4a2f13b602d145cdd3aa00c7177fa.tar.gz yuzu-925586f97bb4a2f13b602d145cdd3aa00c7177fa.tar.xz yuzu-925586f97bb4a2f13b602d145cdd3aa00c7177fa.zip | |
buffer_cache_base: Specify buffer type in HostBindings
Avoid reinterpret-casting from void pointer since the type is already known at compile time.
Diffstat (limited to 'src/video_core/buffer_cache')
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache.h | 8 | ||||
| -rw-r--r-- | src/video_core/buffer_cache/buffer_cache_base.h | 3 |
2 files changed, 6 insertions, 5 deletions
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 251a4a880..9bafd8cc0 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h | |||
| @@ -715,7 +715,7 @@ void BufferCache<P>::BindHostIndexBuffer() { | |||
| 715 | 715 | ||
| 716 | template <class P> | 716 | template <class P> |
| 717 | void BufferCache<P>::BindHostVertexBuffers() { | 717 | void BufferCache<P>::BindHostVertexBuffers() { |
| 718 | HostBindings host_bindings; | 718 | HostBindings<typename P::Buffer> host_bindings; |
| 719 | bool any_valid{false}; | 719 | bool any_valid{false}; |
| 720 | auto& flags = maxwell3d->dirty.flags; | 720 | auto& flags = maxwell3d->dirty.flags; |
| 721 | for (u32 index = 0; index < NUM_VERTEX_BUFFERS; ++index) { | 721 | for (u32 index = 0; index < NUM_VERTEX_BUFFERS; ++index) { |
| @@ -741,7 +741,7 @@ void BufferCache<P>::BindHostVertexBuffers() { | |||
| 741 | const u32 stride = maxwell3d->regs.vertex_streams[index].stride; | 741 | const u32 stride = maxwell3d->regs.vertex_streams[index].stride; |
| 742 | const u32 offset = buffer.Offset(binding.cpu_addr); | 742 | const u32 offset = buffer.Offset(binding.cpu_addr); |
| 743 | 743 | ||
| 744 | host_bindings.buffers.push_back(reinterpret_cast<void*>(&buffer)); | 744 | host_bindings.buffers.push_back(&buffer); |
| 745 | host_bindings.offsets.push_back(offset); | 745 | host_bindings.offsets.push_back(offset); |
| 746 | host_bindings.sizes.push_back(binding.size); | 746 | host_bindings.sizes.push_back(binding.size); |
| 747 | host_bindings.strides.push_back(stride); | 747 | host_bindings.strides.push_back(stride); |
| @@ -900,7 +900,7 @@ void BufferCache<P>::BindHostTransformFeedbackBuffers() { | |||
| 900 | if (maxwell3d->regs.transform_feedback_enabled == 0) { | 900 | if (maxwell3d->regs.transform_feedback_enabled == 0) { |
| 901 | return; | 901 | return; |
| 902 | } | 902 | } |
| 903 | HostBindings host_bindings; | 903 | HostBindings<typename P::Buffer> host_bindings; |
| 904 | for (u32 index = 0; index < NUM_TRANSFORM_FEEDBACK_BUFFERS; ++index) { | 904 | for (u32 index = 0; index < NUM_TRANSFORM_FEEDBACK_BUFFERS; ++index) { |
| 905 | const Binding& binding = channel_state->transform_feedback_buffers[index]; | 905 | const Binding& binding = channel_state->transform_feedback_buffers[index]; |
| 906 | if (maxwell3d->regs.transform_feedback.controls[index].varying_count == 0 && | 906 | if (maxwell3d->regs.transform_feedback.controls[index].varying_count == 0 && |
| @@ -913,7 +913,7 @@ void BufferCache<P>::BindHostTransformFeedbackBuffers() { | |||
| 913 | SynchronizeBuffer(buffer, binding.cpu_addr, size); | 913 | SynchronizeBuffer(buffer, binding.cpu_addr, size); |
| 914 | 914 | ||
| 915 | const u32 offset = buffer.Offset(binding.cpu_addr); | 915 | const u32 offset = buffer.Offset(binding.cpu_addr); |
| 916 | host_bindings.buffers.push_back(reinterpret_cast<void*>(&buffer)); | 916 | host_bindings.buffers.push_back(&buffer); |
| 917 | host_bindings.offsets.push_back(offset); | 917 | host_bindings.offsets.push_back(offset); |
| 918 | host_bindings.sizes.push_back(binding.size); | 918 | host_bindings.sizes.push_back(binding.size); |
| 919 | } | 919 | } |
diff --git a/src/video_core/buffer_cache/buffer_cache_base.h b/src/video_core/buffer_cache/buffer_cache_base.h index cf359e241..63a120f7a 100644 --- a/src/video_core/buffer_cache/buffer_cache_base.h +++ b/src/video_core/buffer_cache/buffer_cache_base.h | |||
| @@ -105,8 +105,9 @@ static constexpr Binding NULL_BINDING{ | |||
| 105 | .buffer_id = NULL_BUFFER_ID, | 105 | .buffer_id = NULL_BUFFER_ID, |
| 106 | }; | 106 | }; |
| 107 | 107 | ||
| 108 | template <typename Buffer> | ||
| 108 | struct HostBindings { | 109 | struct HostBindings { |
| 109 | boost::container::small_vector<void*, NUM_VERTEX_BUFFERS> buffers; | 110 | boost::container::small_vector<Buffer*, NUM_VERTEX_BUFFERS> buffers; |
| 110 | boost::container::small_vector<u64, NUM_VERTEX_BUFFERS> offsets; | 111 | boost::container::small_vector<u64, NUM_VERTEX_BUFFERS> offsets; |
| 111 | boost::container::small_vector<u64, NUM_VERTEX_BUFFERS> sizes; | 112 | boost::container::small_vector<u64, NUM_VERTEX_BUFFERS> sizes; |
| 112 | boost::container::small_vector<u64, NUM_VERTEX_BUFFERS> strides; | 113 | boost::container::small_vector<u64, NUM_VERTEX_BUFFERS> strides; |