vkd3d: Restore d3d12_device_use_ssbo_root_descriptors.
We will not have offset information for root descriptors, so we can still only use them with four-byte aligned SSBOs. Signed-off-by: Philip Rebohle <philip.rebohle@tu-dortmund.de>
This commit is contained in:
parent
d59317e11b
commit
15b1fb7128
|
@ -5164,7 +5164,7 @@ static void d3d12_command_list_set_root_descriptor(struct d3d12_command_list *li
|
|||
bool null_descriptors, ssbo;
|
||||
VkDeviceSize max_range;
|
||||
|
||||
ssbo = d3d12_device_use_ssbo_raw_buffer(list->device);
|
||||
ssbo = d3d12_device_use_ssbo_root_descriptors(list->device);
|
||||
root_parameter = root_signature_get_root_descriptor(root_signature, index);
|
||||
descriptor = &bindings->root_descriptors[root_parameter->descriptor.packed_descriptor];
|
||||
null_descriptors = list->device->device_info.robustness2_features.nullDescriptor;
|
||||
|
|
|
@ -213,7 +213,7 @@ static enum vkd3d_shader_visibility vkd3d_shader_visibility_from_d3d12(D3D12_SHA
|
|||
|
||||
static VkDescriptorType vk_descriptor_type_from_d3d12_root_parameter(struct d3d12_device *device, D3D12_ROOT_PARAMETER_TYPE type)
|
||||
{
|
||||
bool use_ssbo = d3d12_device_use_ssbo_raw_buffer(device);
|
||||
bool use_ssbo = d3d12_device_use_ssbo_root_descriptors(device);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
|
|
|
@ -1985,6 +1985,14 @@ static inline VkDeviceSize d3d12_device_get_ssbo_alignment(struct d3d12_device *
|
|||
return device->device_info.properties2.properties.limits.minStorageBufferOffsetAlignment;
|
||||
}
|
||||
|
||||
static inline bool d3d12_device_use_ssbo_root_descriptors(struct d3d12_device *device)
|
||||
{
|
||||
/* We only know the VA of root SRV/UAVs, so we cannot
|
||||
* make any better assumptions about the alignment */
|
||||
return d3d12_device_use_ssbo_raw_buffer(device) &&
|
||||
d3d12_device_get_ssbo_alignment(device) <= 4;
|
||||
}
|
||||
|
||||
/* ID3DBlob */
|
||||
struct d3d_blob
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue