Compare commits

...

1 Commits

Author SHA1 Message Date
Hans-Kristian Arntzen 2b3671fe05 vkd3d: Bump VKD3D_MAX_DESCRIPTORS_SETS to 9.
This can happen in the worst case where we have all bindless sets, and:

- Static samplers
- Packed descriptors (UAV counters on drivers without support for this)
- Root descriptors

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
2020-07-13 12:02:13 +02:00
2 changed files with 11 additions and 1 deletions

View File

@ -341,6 +341,13 @@ static HRESULT vkd3d_create_pipeline_layout(struct d3d12_device *device,
struct VkPipelineLayoutCreateInfo pipeline_layout_info;
VkResult vr;
if (set_layout_count > device->vk_info.device_limits.maxBoundDescriptorSets)
{
ERR("Root signature requires %u descriptor sets, but device only supports %u.\n",
set_layout_count, device->vk_info.device_limits.maxBoundDescriptorSets);
return E_INVALIDARG;
}
pipeline_layout_info.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO;
pipeline_layout_info.pNext = NULL;
pipeline_layout_info.flags = 0;
@ -972,6 +979,7 @@ static HRESULT d3d12_root_signature_init(struct d3d12_root_signature *root_signa
if (root_signature->vk_sampler_descriptor_layout)
{
assert(context.vk_set < VKD3D_MAX_DESCRIPTOR_SETS);
set_layouts[context.vk_set] = root_signature->vk_sampler_descriptor_layout;
root_signature->sampler_descriptor_set = context.vk_set;
@ -1012,6 +1020,7 @@ static HRESULT d3d12_root_signature_init(struct d3d12_root_signature *root_signa
if (root_signature->vk_root_descriptor_layout)
{
assert(context.vk_set < VKD3D_MAX_DESCRIPTOR_SETS);
set_layouts[context.vk_set] = root_signature->vk_root_descriptor_layout;
root_signature->root_descriptor_set = context.vk_set;
@ -1026,6 +1035,7 @@ static HRESULT d3d12_root_signature_init(struct d3d12_root_signature *root_signa
if (root_signature->vk_packed_descriptor_layout)
{
assert(context.vk_set < VKD3D_MAX_DESCRIPTOR_SETS);
root_signature->packed_descriptor_set = context.vk_set;
set_layouts[context.vk_set] = root_signature->vk_packed_descriptor_layout;
context.vk_set += 1;

View File

@ -58,7 +58,7 @@
#define VKD3D_MAX_SHADER_STAGES 5u
#define VKD3D_MAX_VK_SYNC_OBJECTS 4u
#define VKD3D_MAX_DESCRIPTOR_SETS 8u
#define VKD3D_MAX_DESCRIPTOR_SETS 9u
#define VKD3D_MAX_BINDLESS_DESCRIPTOR_SETS 6u
#define VKD3D_PIPELINE_BIND_POINT_COUNT 2u