mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-06 20:58:37 +01:00
[dxvk] Added support for vertex index types
This commit is contained in:
parent
be7a70a307
commit
a901a85401
3 changed files with 12 additions and 4 deletions
|
@ -54,9 +54,13 @@ namespace dxvk {
|
||||||
|
|
||||||
|
|
||||||
void DxvkContext::bindIndexBuffer(
|
void DxvkContext::bindIndexBuffer(
|
||||||
const DxvkBufferBinding& buffer) {
|
const DxvkBufferBinding& buffer,
|
||||||
if (m_state.vi.indexBuffer != buffer) {
|
VkIndexType indexType) {
|
||||||
|
if (m_state.vi.indexBuffer != buffer
|
||||||
|
|| m_state.vi.indexType != indexType) {
|
||||||
m_state.vi.indexBuffer = buffer;
|
m_state.vi.indexBuffer = buffer;
|
||||||
|
m_state.vi.indexType = indexType;
|
||||||
|
|
||||||
m_flags.set(DxvkContextFlag::GpDirtyIndexBuffer);
|
m_flags.set(DxvkContextFlag::GpDirtyIndexBuffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -547,7 +551,7 @@ namespace dxvk {
|
||||||
m_cmd->cmdBindIndexBuffer(
|
m_cmd->cmdBindIndexBuffer(
|
||||||
m_state.vi.indexBuffer.bufferHandle(),
|
m_state.vi.indexBuffer.bufferHandle(),
|
||||||
m_state.vi.indexBuffer.bufferOffset(),
|
m_state.vi.indexBuffer.bufferOffset(),
|
||||||
VK_INDEX_TYPE_UINT32);
|
m_state.vi.indexType);
|
||||||
m_cmd->trackResource(
|
m_cmd->trackResource(
|
||||||
m_state.vi.indexBuffer.resource());
|
m_state.vi.indexBuffer.resource());
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,9 +60,11 @@ namespace dxvk {
|
||||||
* The index buffer will be used when
|
* The index buffer will be used when
|
||||||
* issuing \c drawIndexed commands.
|
* issuing \c drawIndexed commands.
|
||||||
* \param [in] buffer New index buffer
|
* \param [in] buffer New index buffer
|
||||||
|
* \param [in] indexType Index type
|
||||||
*/
|
*/
|
||||||
void bindIndexBuffer(
|
void bindIndexBuffer(
|
||||||
const DxvkBufferBinding& buffer);
|
const DxvkBufferBinding& buffer,
|
||||||
|
VkIndexType indexType);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Binds buffer as a shader resource
|
* \brief Binds buffer as a shader resource
|
||||||
|
|
|
@ -38,6 +38,8 @@ namespace dxvk {
|
||||||
|
|
||||||
struct DxvkVertexInputState {
|
struct DxvkVertexInputState {
|
||||||
DxvkBufferBinding indexBuffer;
|
DxvkBufferBinding indexBuffer;
|
||||||
|
VkIndexType indexType = VK_INDEX_TYPE_UINT32;
|
||||||
|
|
||||||
std::array<DxvkBufferBinding,
|
std::array<DxvkBufferBinding,
|
||||||
DxvkLimits::MaxNumVertexBindings> vertexBuffers;
|
DxvkLimits::MaxNumVertexBindings> vertexBuffers;
|
||||||
std::array<uint32_t,
|
std::array<uint32_t,
|
||||||
|
|
Loading…
Add table
Reference in a new issue