mirror of
https://github.com/EduApps-CDG/OpenDX
synced 2024-12-30 09:45:37 +01:00
[dxvk] Fixed potential bugs in vertex buffer binding code
This commit is contained in:
parent
ed642a57a7
commit
3ab75c8538
@ -988,8 +988,10 @@ namespace dxvk {
|
|||||||
if (m_flags.test(DxvkContextFlag::GpDirtyPipelineState)) {
|
if (m_flags.test(DxvkContextFlag::GpDirtyPipelineState)) {
|
||||||
m_flags.clr(DxvkContextFlag::GpDirtyPipelineState);
|
m_flags.clr(DxvkContextFlag::GpDirtyPipelineState);
|
||||||
|
|
||||||
for (uint32_t i = 0; i < m_state.gp.state.ilBindingCount; i++)
|
for (uint32_t i = 0; i < m_state.gp.state.ilBindingCount; i++) {
|
||||||
m_state.gp.state.ilBindings[i].stride = m_state.vi.vertexStrides[i];
|
m_state.gp.state.ilBindings[i].stride
|
||||||
|
= m_state.vi.vertexStrides[m_state.gp.state.ilBindings[i].binding];
|
||||||
|
}
|
||||||
|
|
||||||
for (uint32_t i = m_state.gp.state.ilBindingCount; i < MaxNumVertexBindings; i++)
|
for (uint32_t i = m_state.gp.state.ilBindingCount; i < MaxNumVertexBindings; i++)
|
||||||
m_state.gp.state.ilBindings[i].stride = 0;
|
m_state.gp.state.ilBindings[i].stride = 0;
|
||||||
@ -1189,15 +1191,15 @@ namespace dxvk {
|
|||||||
m_flags.clr(DxvkContextFlag::GpDirtyVertexBuffers);
|
m_flags.clr(DxvkContextFlag::GpDirtyVertexBuffers);
|
||||||
|
|
||||||
for (uint32_t i = 0; i < m_state.gp.state.ilBindingCount; i++) {
|
for (uint32_t i = 0; i < m_state.gp.state.ilBindingCount; i++) {
|
||||||
const DxvkBufferSlice& vbo = m_state.vi.vertexBuffers[i];
|
const uint32_t binding = m_state.gp.state.ilBindings[i].binding;
|
||||||
|
|
||||||
|
const DxvkBufferSlice& vbo = m_state.vi.vertexBuffers[binding];
|
||||||
|
|
||||||
const VkBuffer handle = vbo.handle();
|
const VkBuffer handle = vbo.handle();
|
||||||
const VkDeviceSize offset = vbo.offset();
|
const VkDeviceSize offset = vbo.offset();
|
||||||
|
|
||||||
if (handle != VK_NULL_HANDLE) {
|
if (handle != VK_NULL_HANDLE) {
|
||||||
m_cmd->cmdBindVertexBuffers(
|
m_cmd->cmdBindVertexBuffers(binding, 1, &handle, &offset);
|
||||||
m_state.gp.state.ilBindings[i].binding,
|
|
||||||
1, &handle, &offset);
|
|
||||||
m_cmd->trackResource(vbo.resource());
|
m_cmd->trackResource(vbo.resource());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user