mirror of
https://github.com/doitsujin/dxvk.git
synced 2024-12-13 16:08:50 +01:00
[dxvk] Introduce bindResourceImageView and bindResourceBufferView methods
This commit is contained in:
parent
88bdf2b592
commit
317850e16f
@ -213,6 +213,55 @@ namespace dxvk {
|
||||
m_descriptorState.dirtyViews(stages);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Binds image view
|
||||
*
|
||||
* \param [in] stages Shader stages that access the binding
|
||||
* \param [in] slot Resource binding slot
|
||||
* \param [in] view Image view to bind
|
||||
*/
|
||||
void bindResourceImageView(
|
||||
VkShaderStageFlags stages,
|
||||
uint32_t slot,
|
||||
Rc<DxvkImageView>&& view) {
|
||||
if (m_rc[slot].bufferView != nullptr) {
|
||||
m_rc[slot].bufferSlice = DxvkBufferSlice();
|
||||
m_rc[slot].bufferView = nullptr;
|
||||
}
|
||||
|
||||
m_rc[slot].imageView = std::move(view);
|
||||
m_rcTracked.clr(slot);
|
||||
|
||||
m_descriptorState.dirtyViews(stages);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Binds buffer view
|
||||
*
|
||||
* \param [in] stages Shader stages that access the binding
|
||||
* \param [in] slot Resource binding slot
|
||||
* \param [in] view Buffer view to bind
|
||||
*/
|
||||
void bindResourceBufferView(
|
||||
VkShaderStageFlags stages,
|
||||
uint32_t slot,
|
||||
Rc<DxvkBufferView>&& view) {
|
||||
if (m_rc[slot].imageView != nullptr)
|
||||
m_rc[slot].imageView = nullptr;
|
||||
|
||||
if (view != nullptr) {
|
||||
m_rc[slot].bufferSlice = view->slice();
|
||||
m_rc[slot].bufferView = std::move(view);
|
||||
} else {
|
||||
m_rc[slot].bufferSlice = DxvkBufferSlice();
|
||||
m_rc[slot].bufferView = nullptr;
|
||||
}
|
||||
|
||||
m_rcTracked.clr(slot);
|
||||
|
||||
m_descriptorState.dirtyViews(stages);
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Binds image sampler
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user