1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-03-28 02:19:26 +01:00

[dxvk] Always use VkBufferUsageFlags2CreateInfo

This commit is contained in:
Philip Rebohle 2025-03-23 22:20:38 +01:00
parent 2653aa9fba
commit a5de2e458a
2 changed files with 7 additions and 15 deletions

View File

@ -39,8 +39,7 @@ namespace dxvk {
DxvkResourceBufferViewMap::DxvkResourceBufferViewMap(
DxvkMemoryAllocator* allocator,
VkBuffer buffer)
: m_vkd(allocator->device()->vkd()), m_buffer(buffer),
m_passBufferUsage(allocator->device()->features().khrMaintenance5.maintenance5) {
: m_vkd(allocator->device()->vkd()), m_buffer(buffer) {
}
@ -64,15 +63,12 @@ namespace dxvk {
VkBufferUsageFlags2CreateInfoKHR flags = { VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR };
flags.usage = key.usage;
VkBufferViewCreateInfo info = { VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO };
VkBufferViewCreateInfo info = { VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO, &flags };
info.buffer = m_buffer;
info.format = key.format;
info.offset = key.offset + baseOffset;
info.range = key.size;
if (m_passBufferUsage)
info.pNext = &flags;
VkBufferView view = VK_NULL_HANDLE;
VkResult vr = m_vkd->vkCreateBufferView(
@ -1829,16 +1825,13 @@ namespace dxvk {
| VK_BUFFER_USAGE_VERTEX_BUFFER_BIT
| VK_BUFFER_USAGE_STORAGE_BUFFER_BIT
| VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT
| VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT;
| VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT
| VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT;
// Lock storage texel buffer usage to maintenance5 support since we will
// otherwise not be able to legally use formats that support one type of
// texel buffer but not the other. Also lock index buffer usage since we
// Also lock index buffer usage to maintenance5 support since we
// cannot explicitly specify a buffer range otherwise.
if (m_device->features().khrMaintenance5.maintenance5) {
flags |= VK_BUFFER_USAGE_INDEX_BUFFER_BIT
| VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT;
}
if (m_device->features().khrMaintenance5.maintenance5)
flags |= VK_BUFFER_USAGE_INDEX_BUFFER_BIT;
if (m_device->features().extTransformFeedback.transformFeedback) {
flags |= VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT

View File

@ -308,7 +308,6 @@ namespace dxvk {
Rc<vk::DeviceFn> m_vkd;
VkBuffer m_buffer = VK_NULL_HANDLE;
bool m_passBufferUsage = false;
dxvk::mutex m_mutex;
std::unordered_map<DxvkBufferViewKey,