diff options
| author | 2022-11-20 12:08:08 -0500 | |
|---|---|---|
| committer | 2022-11-20 12:08:08 -0500 | |
| commit | 7f1c6def1f0bab38c8f89766ca9de670fd126a25 (patch) | |
| tree | 9cb97c5f241d967faed05c27e802b1f12cdc0442 /src/video_core/renderer_vulkan | |
| parent | Merge pull request #9238 from german77/cabinet_applet (diff) | |
| parent | video_core: Reimplement inline index buffer binding (diff) | |
| download | yuzu-7f1c6def1f0bab38c8f89766ca9de670fd126a25.tar.gz yuzu-7f1c6def1f0bab38c8f89766ca9de670fd126a25.tar.xz yuzu-7f1c6def1f0bab38c8f89766ca9de670fd126a25.zip | |
Merge pull request #9216 from vonchenplus/reimp_inline_index_buffer
video_core: Reimplement inline index buffer binding
Diffstat (limited to 'src/video_core/renderer_vulkan')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.cpp | 15 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.h | 2 |
2 files changed, 0 insertions, 17 deletions
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 67b88621a..12b13cc59 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -191,8 +191,6 @@ void RasterizerVulkan::Draw(bool is_indexed, u32 instance_count) { | |||
| 191 | pipeline->SetEngine(maxwell3d, gpu_memory); | 191 | pipeline->SetEngine(maxwell3d, gpu_memory); |
| 192 | pipeline->Configure(is_indexed); | 192 | pipeline->Configure(is_indexed); |
| 193 | 193 | ||
| 194 | BindInlineIndexBuffer(); | ||
| 195 | |||
| 196 | BeginTransformFeedback(); | 194 | BeginTransformFeedback(); |
| 197 | 195 | ||
| 198 | UpdateDynamicStates(); | 196 | UpdateDynamicStates(); |
| @@ -1029,17 +1027,4 @@ void RasterizerVulkan::ReleaseChannel(s32 channel_id) { | |||
| 1029 | query_cache.EraseChannel(channel_id); | 1027 | query_cache.EraseChannel(channel_id); |
| 1030 | } | 1028 | } |
| 1031 | 1029 | ||
| 1032 | void RasterizerVulkan::BindInlineIndexBuffer() { | ||
| 1033 | if (maxwell3d->inline_index_draw_indexes.empty()) { | ||
| 1034 | return; | ||
| 1035 | } | ||
| 1036 | const auto data_count = static_cast<u32>(maxwell3d->inline_index_draw_indexes.size()); | ||
| 1037 | auto buffer = buffer_cache_runtime.UploadStagingBuffer(data_count); | ||
| 1038 | std::memcpy(buffer.mapped_span.data(), maxwell3d->inline_index_draw_indexes.data(), data_count); | ||
| 1039 | buffer_cache_runtime.BindIndexBuffer( | ||
| 1040 | maxwell3d->regs.draw.topology, maxwell3d->regs.index_buffer.format, | ||
| 1041 | maxwell3d->regs.index_buffer.first, maxwell3d->regs.index_buffer.count, buffer.buffer, | ||
| 1042 | static_cast<u32>(buffer.offset), data_count); | ||
| 1043 | } | ||
| 1044 | |||
| 1045 | } // namespace Vulkan | 1030 | } // namespace Vulkan |
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.h b/src/video_core/renderer_vulkan/vk_rasterizer.h index 70f36d58a..ee483cfd9 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.h +++ b/src/video_core/renderer_vulkan/vk_rasterizer.h | |||
| @@ -141,8 +141,6 @@ private: | |||
| 141 | 141 | ||
| 142 | void UpdateVertexInput(Tegra::Engines::Maxwell3D::Regs& regs); | 142 | void UpdateVertexInput(Tegra::Engines::Maxwell3D::Regs& regs); |
| 143 | 143 | ||
| 144 | void BindInlineIndexBuffer(); | ||
| 145 | |||
| 146 | Tegra::GPU& gpu; | 144 | Tegra::GPU& gpu; |
| 147 | 145 | ||
| 148 | ScreenInfo& screen_info; | 146 | ScreenInfo& screen_info; |