summaryrefslogtreecommitdiff
path: root/src/video_core/renderer_vulkan
diff options
context:
space:
mode:
authorGravatar liamwhite2022-11-20 12:08:08 -0500
committerGravatar GitHub2022-11-20 12:08:08 -0500
commit7f1c6def1f0bab38c8f89766ca9de670fd126a25 (patch)
tree9cb97c5f241d967faed05c27e802b1f12cdc0442 /src/video_core/renderer_vulkan
parentMerge pull request #9238 from german77/cabinet_applet (diff)
parentvideo_core: Reimplement inline index buffer binding (diff)
downloadyuzu-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.cpp15
-rw-r--r--src/video_core/renderer_vulkan/vk_rasterizer.h2
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
1032void 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;