2
1
Fork 0
mirror of https://github.com/yuzu-emu/yuzu.git synced 2024-07-04 23:31:19 +01:00

vk_rasterizer: Pass <pSizes> to CmdBindVertexBuffers2EXT

This has been fixed in Nvidia's public beta driver 451.74. The previous
beta driver will be broken, people using these will have to update.
This commit is contained in:
ReinUsesLisp 2020-07-10 18:15:32 -03:00
parent 995067538d
commit fca26980a2

View file

@ -332,23 +332,23 @@ private:
if constexpr (has_extended_dynamic_state) { if constexpr (has_extended_dynamic_state) {
// With extended dynamic states we can specify the length and stride of a vertex buffer // With extended dynamic states we can specify the length and stride of a vertex buffer
// std::array<VkDeviceSize, N> sizes; std::array<VkDeviceSize, N> sizes;
std::array<u16, N> strides; std::array<u16, N> strides;
// std::copy(vertex.sizes.begin(), vertex.sizes.begin() + N, sizes.begin()); std::copy(vertex.sizes.begin(), vertex.sizes.begin() + N, sizes.begin());
std::copy(vertex.strides.begin(), vertex.strides.begin() + N, strides.begin()); std::copy(vertex.strides.begin(), vertex.strides.begin() + N, strides.begin());
if constexpr (is_indexed) { if constexpr (is_indexed) {
scheduler.Record( scheduler.Record(
[buffers, offsets, strides, index = index](vk::CommandBuffer cmdbuf) { [buffers, offsets, sizes, strides, index = index](vk::CommandBuffer cmdbuf) {
cmdbuf.BindIndexBuffer(index.buffer, index.offset, index.type); cmdbuf.BindIndexBuffer(index.buffer, index.offset, index.type);
cmdbuf.BindVertexBuffers2EXT(0, static_cast<u32>(N), buffers.data(), cmdbuf.BindVertexBuffers2EXT(0, static_cast<u32>(N), buffers.data(),
offsets.data(), nullptr, offsets.data(), sizes.data(),
ExpandStrides(strides).data()); ExpandStrides(strides).data());
}); });
} else { } else {
scheduler.Record([buffers, offsets, strides](vk::CommandBuffer cmdbuf) { scheduler.Record([buffers, offsets, sizes, strides](vk::CommandBuffer cmdbuf) {
cmdbuf.BindVertexBuffers2EXT(0, static_cast<u32>(N), buffers.data(), cmdbuf.BindVertexBuffers2EXT(0, static_cast<u32>(N), buffers.data(),
offsets.data(), nullptr, offsets.data(), sizes.data(),
ExpandStrides(strides).data()); ExpandStrides(strides).data());
}); });
} }