vkd3d: Rename SSBO_OFFSET descriptor flag to BUFFER_OFFSET.
It is used for typed as well. Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
This commit is contained in:
parent
5d88e4d435
commit
b30d8788bf
|
@ -3514,11 +3514,11 @@ void d3d12_desc_copy(struct d3d12_desc *dst, struct d3d12_desc *src,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (metadata.flags & VKD3D_DESCRIPTOR_FLAG_SSBO_OFFSET)
|
if (metadata.flags & VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET)
|
||||||
{
|
{
|
||||||
const struct vkd3d_bound_ssbo_range *src_ssbo_ranges = src->heap->ssbo_ranges.host_ptr;
|
const struct vkd3d_bound_buffer_range *src_buffer_ranges = src->heap->buffer_ranges.host_ptr;
|
||||||
struct vkd3d_bound_ssbo_range *dst_ssbo_ranges = dst->heap->ssbo_ranges.host_ptr;
|
struct vkd3d_bound_buffer_range *dst_buffer_ranges = dst->heap->buffer_ranges.host_ptr;
|
||||||
dst_ssbo_ranges[dst->heap_offset] = src_ssbo_ranges[src->heap_offset];
|
dst_buffer_ranges[dst->heap_offset] = src_buffer_ranges[src->heap_offset];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (copy_count)
|
if (copy_count)
|
||||||
|
@ -3971,7 +3971,7 @@ static void vkd3d_buffer_view_get_bound_range(struct d3d12_desc *descriptor,
|
||||||
struct d3d12_device *device, struct d3d12_resource *resource,
|
struct d3d12_device *device, struct d3d12_resource *resource,
|
||||||
VkDeviceSize offset, VkDeviceSize range, VkDescriptorBufferInfo *vk_buffer)
|
VkDeviceSize offset, VkDeviceSize range, VkDescriptorBufferInfo *vk_buffer)
|
||||||
{
|
{
|
||||||
struct vkd3d_bound_ssbo_range ssbo_range;
|
struct vkd3d_bound_buffer_range ssbo_range;
|
||||||
|
|
||||||
if (resource)
|
if (resource)
|
||||||
{
|
{
|
||||||
|
@ -3999,8 +3999,8 @@ static void vkd3d_buffer_view_get_bound_range(struct d3d12_desc *descriptor,
|
||||||
|
|
||||||
if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER)
|
if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER)
|
||||||
{
|
{
|
||||||
struct vkd3d_bound_ssbo_range *ssbo_ranges = descriptor->heap->ssbo_ranges.host_ptr;
|
struct vkd3d_bound_buffer_range *buffer_ranges = descriptor->heap->buffer_ranges.host_ptr;
|
||||||
ssbo_ranges[descriptor->heap_offset] = ssbo_range;
|
buffer_ranges[descriptor->heap_offset] = ssbo_range;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4044,7 +4044,7 @@ static void vkd3d_create_buffer_srv(struct d3d12_desc *descriptor,
|
||||||
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED;
|
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED;
|
||||||
|
|
||||||
if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER)
|
if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER)
|
||||||
descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_SSBO_OFFSET;
|
descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET;
|
||||||
|
|
||||||
vk_descriptor_type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
vk_descriptor_type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
||||||
}
|
}
|
||||||
|
@ -4078,6 +4078,8 @@ static void vkd3d_create_buffer_srv(struct d3d12_desc *descriptor,
|
||||||
descriptor->metadata.binding = vkd3d_bindless_state_find_set(&device->bindless_state,
|
descriptor->metadata.binding = vkd3d_bindless_state_find_set(&device->bindless_state,
|
||||||
VKD3D_BINDLESS_SET_SRV | VKD3D_BINDLESS_SET_BUFFER);
|
VKD3D_BINDLESS_SET_SRV | VKD3D_BINDLESS_SET_BUFFER);
|
||||||
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_VIEW;
|
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_VIEW;
|
||||||
|
if (device->bindless_state.flags & VKD3D_TYPED_OFFSET_BUFFER)
|
||||||
|
descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET;
|
||||||
|
|
||||||
vk_descriptor_type = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER;
|
vk_descriptor_type = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER;
|
||||||
}
|
}
|
||||||
|
@ -4346,7 +4348,7 @@ static void vkd3d_create_buffer_uav(struct d3d12_desc *descriptor, struct d3d12_
|
||||||
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER;
|
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER;
|
||||||
|
|
||||||
if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER)
|
if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER)
|
||||||
descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_SSBO_OFFSET;
|
descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET;
|
||||||
|
|
||||||
vk_descriptor_type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
vk_descriptor_type = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER;
|
||||||
}
|
}
|
||||||
|
@ -4376,6 +4378,8 @@ static void vkd3d_create_buffer_uav(struct d3d12_desc *descriptor, struct d3d12_
|
||||||
descriptor->metadata.binding = vkd3d_bindless_state_find_set(&device->bindless_state,
|
descriptor->metadata.binding = vkd3d_bindless_state_find_set(&device->bindless_state,
|
||||||
VKD3D_BINDLESS_SET_UAV | VKD3D_BINDLESS_SET_BUFFER);
|
VKD3D_BINDLESS_SET_UAV | VKD3D_BINDLESS_SET_BUFFER);
|
||||||
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_VIEW | VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER;
|
descriptor->metadata.flags = VKD3D_DESCRIPTOR_FLAG_DEFINED | VKD3D_DESCRIPTOR_FLAG_VIEW | VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER;
|
||||||
|
if (device->bindless_state.flags & VKD3D_TYPED_OFFSET_BUFFER)
|
||||||
|
descriptor->metadata.flags |= VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET;
|
||||||
|
|
||||||
descriptor_info[vk_write_count].buffer_view = view ? view->vk_buffer_view : VK_NULL_HANDLE;
|
descriptor_info[vk_write_count].buffer_view = view ? view->vk_buffer_view : VK_NULL_HANDLE;
|
||||||
|
|
||||||
|
@ -5430,7 +5434,7 @@ static HRESULT d3d12_descriptor_heap_init_data_buffer(struct d3d12_descriptor_he
|
||||||
uav_counter_size = align(desc->NumDescriptors * sizeof(VkDeviceAddress), alignment);
|
uav_counter_size = align(desc->NumDescriptors * sizeof(VkDeviceAddress), alignment);
|
||||||
|
|
||||||
if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER)
|
if (device->bindless_state.flags & VKD3D_SSBO_OFFSET_BUFFER)
|
||||||
offset_buffer_size = align(desc->NumDescriptors * sizeof(struct vkd3d_bound_ssbo_range), alignment);
|
offset_buffer_size = align(desc->NumDescriptors * sizeof(struct vkd3d_bound_buffer_range), alignment);
|
||||||
}
|
}
|
||||||
|
|
||||||
buffer_size = uav_counter_size + offset_buffer_size;
|
buffer_size = uav_counter_size + offset_buffer_size;
|
||||||
|
@ -5480,7 +5484,7 @@ static HRESULT d3d12_descriptor_heap_init_data_buffer(struct d3d12_descriptor_he
|
||||||
offset = 0;
|
offset = 0;
|
||||||
|
|
||||||
d3d12_descriptor_heap_get_buffer_range(descriptor_heap, &offset, uav_counter_size, &descriptor_heap->uav_counters);
|
d3d12_descriptor_heap_get_buffer_range(descriptor_heap, &offset, uav_counter_size, &descriptor_heap->uav_counters);
|
||||||
d3d12_descriptor_heap_get_buffer_range(descriptor_heap, &offset, offset_buffer_size, &descriptor_heap->ssbo_ranges);
|
d3d12_descriptor_heap_get_buffer_range(descriptor_heap, &offset, offset_buffer_size, &descriptor_heap->buffer_ranges);
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5527,7 +5531,7 @@ static void d3d12_descriptor_heap_update_extra_bindings(struct d3d12_descriptor_
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VKD3D_BINDLESS_SET_EXTRA_OFFSET_BUFFER:
|
case VKD3D_BINDLESS_SET_EXTRA_OFFSET_BUFFER:
|
||||||
*vk_buffer = descriptor_heap->ssbo_ranges.descriptor;
|
*vk_buffer = descriptor_heap->buffer_ranges.descriptor;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -624,10 +624,10 @@ bool vkd3d_create_texture_view(struct d3d12_device *device,
|
||||||
|
|
||||||
enum vkd3d_descriptor_flag
|
enum vkd3d_descriptor_flag
|
||||||
{
|
{
|
||||||
VKD3D_DESCRIPTOR_FLAG_DEFINED = (1 << 0),
|
VKD3D_DESCRIPTOR_FLAG_DEFINED = (1 << 0),
|
||||||
VKD3D_DESCRIPTOR_FLAG_VIEW = (1 << 1),
|
VKD3D_DESCRIPTOR_FLAG_VIEW = (1 << 1),
|
||||||
VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER = (1 << 2),
|
VKD3D_DESCRIPTOR_FLAG_UAV_COUNTER = (1 << 2),
|
||||||
VKD3D_DESCRIPTOR_FLAG_SSBO_OFFSET = (1 << 3),
|
VKD3D_DESCRIPTOR_FLAG_BUFFER_OFFSET = (1 << 3),
|
||||||
};
|
};
|
||||||
|
|
||||||
struct vkd3d_descriptor_binding
|
struct vkd3d_descriptor_binding
|
||||||
|
@ -708,10 +708,10 @@ void d3d12_rtv_desc_create_rtv(struct d3d12_rtv_desc *rtv_desc, struct d3d12_dev
|
||||||
void d3d12_rtv_desc_create_dsv(struct d3d12_rtv_desc *dsv_desc, struct d3d12_device *device,
|
void d3d12_rtv_desc_create_dsv(struct d3d12_rtv_desc *dsv_desc, struct d3d12_device *device,
|
||||||
struct d3d12_resource *resource, const D3D12_DEPTH_STENCIL_VIEW_DESC *desc);
|
struct d3d12_resource *resource, const D3D12_DEPTH_STENCIL_VIEW_DESC *desc);
|
||||||
|
|
||||||
struct vkd3d_bound_ssbo_range
|
struct vkd3d_bound_buffer_range
|
||||||
{
|
{
|
||||||
uint32_t offset; /* offset to first byte */
|
uint32_t offset; /* offset to first byte for SSBO, or offset in elements for typed views. */
|
||||||
uint32_t length; /* bound size in bytes */
|
uint32_t length; /* bound size in bytes, or size in elements for typed views. */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct vkd3d_host_visible_buffer_range
|
struct vkd3d_host_visible_buffer_range
|
||||||
|
@ -736,7 +736,7 @@ struct d3d12_descriptor_heap
|
||||||
void *host_memory;
|
void *host_memory;
|
||||||
|
|
||||||
struct vkd3d_host_visible_buffer_range uav_counters;
|
struct vkd3d_host_visible_buffer_range uav_counters;
|
||||||
struct vkd3d_host_visible_buffer_range ssbo_ranges;
|
struct vkd3d_host_visible_buffer_range buffer_ranges;
|
||||||
|
|
||||||
struct d3d12_device *device;
|
struct d3d12_device *device;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue