mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-21 13:54:18 +01:00
[dxvk] Use real shader access types for writeable descriptor types
Mostly relevant for storage buffers since those are often read-only.
This commit is contained in:
parent
f813549ced
commit
cd4d68244d
@ -5148,8 +5148,10 @@ namespace dxvk {
|
||||
descriptorInfo.image.imageView = res.imageView->handle(binding.viewType);
|
||||
descriptorInfo.image.imageLayout = res.imageView->image()->info().layout;
|
||||
|
||||
if (m_rcTracked.set(binding.resourceBinding))
|
||||
m_cmd->track(res.imageView->image(), DxvkAccess::Write);
|
||||
if (m_rcTracked.set(binding.resourceBinding)) {
|
||||
m_cmd->track(res.imageView->image(), (binding.access & vk::AccessWriteMask)
|
||||
? DxvkAccess::Write : DxvkAccess::Read);
|
||||
}
|
||||
} else {
|
||||
descriptorInfo.image.sampler = VK_NULL_HANDLE;
|
||||
descriptorInfo.image.imageView = VK_NULL_HANDLE;
|
||||
@ -5196,8 +5198,10 @@ namespace dxvk {
|
||||
if (res.bufferView != nullptr) {
|
||||
descriptorInfo.texelBuffer = res.bufferView->handle();
|
||||
|
||||
if (m_rcTracked.set(binding.resourceBinding))
|
||||
m_cmd->track(res.bufferView->buffer(), DxvkAccess::Write);
|
||||
if (m_rcTracked.set(binding.resourceBinding)) {
|
||||
m_cmd->track(res.bufferView->buffer(), (binding.access & vk::AccessWriteMask)
|
||||
? DxvkAccess::Write : DxvkAccess::Read);
|
||||
}
|
||||
} else {
|
||||
descriptorInfo.texelBuffer = VK_NULL_HANDLE;
|
||||
}
|
||||
@ -5224,8 +5228,10 @@ namespace dxvk {
|
||||
if (res.bufferSlice.length()) {
|
||||
descriptorInfo = res.bufferSlice.getDescriptor();
|
||||
|
||||
if (m_rcTracked.set(binding.resourceBinding))
|
||||
m_cmd->track(res.bufferSlice.buffer(), DxvkAccess::Write);
|
||||
if (m_rcTracked.set(binding.resourceBinding)) {
|
||||
m_cmd->track(res.bufferSlice.buffer(), (binding.access & vk::AccessWriteMask)
|
||||
? DxvkAccess::Write : DxvkAccess::Read);
|
||||
}
|
||||
} else {
|
||||
descriptorInfo.buffer.buffer = VK_NULL_HANDLE;
|
||||
descriptorInfo.buffer.offset = 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user