vk_rasterizer: Fix broken software shaders

This commit is contained in:
GPUCode
2023-02-11 00:29:04 +02:00
parent 20fc09df13
commit ffc9e34281

View File

@@ -457,14 +457,6 @@ void RasterizerVulkan::DrawTriangles() {
pipeline_cache.UseTrivialVertexShader();
pipeline_cache.UseTrivialGeometryShader();
auto [buffer, offset, _] = stream_buffer.Map(vertex_size, sizeof(HardwareVertex));
std::memcpy(buffer, vertex_batch.data(), vertex_size);
stream_buffer.Commit(vertex_size);
scheduler.Record([this, offset = offset](vk::CommandBuffer cmdbuf) {
cmdbuf.bindVertexBuffers(0, stream_buffer.Handle(), offset);
});
Draw(false, false);
}
@@ -587,7 +579,15 @@ bool RasterizerVulkan::Draw(bool accelerate, bool is_indexed) {
succeeded = AccelerateDrawBatchInternal(is_indexed);
} else {
pipeline_cache.BindPipeline(pipeline_info, true);
scheduler.Record([vertex_count = vertex_batch.size()](vk::CommandBuffer cmdbuf) {
const u64 vertex_size = vertex_batch.size() * sizeof(HardwareVertex);
auto [buffer, offset, _] = stream_buffer.Map(vertex_size, sizeof(HardwareVertex));
std::memcpy(buffer, vertex_batch.data(), vertex_size);
stream_buffer.Commit(vertex_size);
scheduler.Record([this, offset = offset, vertex_count = vertex_batch.size()](vk::CommandBuffer cmdbuf) {
cmdbuf.bindVertexBuffers(0, stream_buffer.Handle(), offset);
cmdbuf.draw(vertex_count, 1, 0, 0);
});
}