| 23 | class NegativeDescriptorBuffer : public DescriptorBufferTest {}; |
| 24 | |
| 25 | TEST_F(NegativeDescriptorBuffer, SetLayout) { |
| 26 | TEST_DESCRIPTION("Descriptor buffer set layout tests."); |
| 27 | RETURN_IF_SKIP(InitBasicDescriptorBuffer()); |
| 28 | |
| 29 | vkt::Sampler sampler(*m_device, SafeSaneSamplerCreateInfo()); |
| 30 | |
| 31 | { |
| 32 | const VkDescriptorSetLayoutBinding binding{0, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 1, VK_SHADER_STAGE_FRAGMENT_BIT, |
| 33 | nullptr}; |
| 34 | const VkDescriptorSetLayoutCreateFlags flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT; |
| 35 | const auto dslci = vku::InitStruct<VkDescriptorSetLayoutCreateInfo>(nullptr, flags, 1U, &binding); |
| 36 | VkDescriptorSetLayout dsl; |
| 37 | m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetLayoutCreateInfo-flags-08000"); |
| 38 | vk::CreateDescriptorSetLayout(device(), &dslci, nullptr, &dsl); |
| 39 | m_errorMonitor->VerifyFound(); |
| 40 | } |
| 41 | { |
| 42 | const VkDescriptorSetLayoutBinding binding{0, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, 1, VK_SHADER_STAGE_FRAGMENT_BIT, |
| 43 | nullptr}; |
| 44 | const VkDescriptorSetLayoutCreateFlags flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT; |
| 45 | const auto dslci = vku::InitStruct<VkDescriptorSetLayoutCreateInfo>(nullptr, flags, 1U, &binding); |
| 46 | VkDescriptorSetLayout dsl; |
| 47 | m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetLayoutCreateInfo-flags-08000"); |
| 48 | vk::CreateDescriptorSetLayout(device(), &dslci, nullptr, &dsl); |
| 49 | m_errorMonitor->VerifyFound(); |
| 50 | } |
| 51 | { |
| 52 | const VkDescriptorSetLayoutBinding binding{0, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 1, VK_SHADER_STAGE_FRAGMENT_BIT, nullptr}; |
| 53 | const VkDescriptorSetLayoutCreateFlags flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT; |
| 54 | const auto dslci = vku::InitStruct<VkDescriptorSetLayoutCreateInfo>(nullptr, flags, 1U, &binding); |
| 55 | VkDescriptorSetLayout dsl; |
| 56 | m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetLayoutCreateInfo-flags-08001"); |
| 57 | vk::CreateDescriptorSetLayout(device(), &dslci, nullptr, &dsl); |
| 58 | m_errorMonitor->VerifyFound(); |
| 59 | } |
| 60 | { |
| 61 | const VkDescriptorSetLayoutBinding binding{0, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 1, VK_SHADER_STAGE_FRAGMENT_BIT, nullptr}; |
| 62 | const VkDescriptorSetLayoutCreateFlags flags = |
| 63 | VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT | VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT; |
| 64 | const auto dslci = vku::InitStruct<VkDescriptorSetLayoutCreateInfo>(nullptr, flags, 1U, &binding); |
| 65 | VkDescriptorSetLayout dsl; |
| 66 | m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetLayoutCreateInfo-flags-08002"); |
| 67 | vk::CreateDescriptorSetLayout(device(), &dslci, nullptr, &dsl); |
| 68 | m_errorMonitor->VerifyFound(); |
| 69 | } |
| 70 | { |
| 71 | VkSampler samplers[2] = {sampler, sampler}; |
| 72 | const VkDescriptorSetLayoutBinding binding{0, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 1, VK_SHADER_STAGE_FRAGMENT_BIT, samplers}; |
| 73 | const VkDescriptorSetLayoutCreateFlags flags = VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT | |
| 74 | VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT; |
| 75 | const auto dslci = vku::InitStruct<VkDescriptorSetLayoutCreateInfo>(nullptr, flags, 1U, &binding); |
| 76 | VkDescriptorSetLayout dsl; |
| 77 | m_errorMonitor->SetDesiredError("VUID-VkDescriptorSetLayoutBinding-flags-08005"); |
| 78 | vk::CreateDescriptorSetLayout(device(), &dslci, nullptr, &dsl); |
| 79 | m_errorMonitor->VerifyFound(); |
| 80 | } |
| 81 | { |
| 82 | VkSampler samplers[2] = {sampler, sampler}; |
nothing calls this directly
no test coverage detected