| 21 | class PositiveCommand : public VkLayerTest {}; |
| 22 | |
| 23 | TEST_F(PositiveCommand, DrawIndirectCountWithoutFeature) { |
| 24 | TEST_DESCRIPTION("Use VK_KHR_draw_indirect_count in 1.1 before drawIndirectCount feature was added"); |
| 25 | |
| 26 | SetTargetApiVersion(VK_API_VERSION_1_1); |
| 27 | AddRequiredExtensions(VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME); |
| 28 | RETURN_IF_SKIP(Init()); |
| 29 | InitRenderTarget(); |
| 30 | if (DeviceValidationVersion() != VK_API_VERSION_1_1) { |
| 31 | GTEST_SKIP() << "Tests requires Vulkan 1.1 exactly"; |
| 32 | } |
| 33 | |
| 34 | vkt::Buffer indirect_buffer(*m_device, sizeof(VkDrawIndirectCommand), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, |
| 35 | VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); |
| 36 | |
| 37 | vkt::Buffer indexed_indirect_buffer(*m_device, sizeof(VkDrawIndexedIndirectCommand), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, |
| 38 | VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); |
| 39 | |
| 40 | vkt::Buffer count_buffer(*m_device, sizeof(uint32_t), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); |
| 41 | |
| 42 | vkt::Buffer index_buffer(*m_device, sizeof(uint32_t), VK_BUFFER_USAGE_INDEX_BUFFER_BIT, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT); |
| 43 | |
| 44 | CreatePipelineHelper pipe(*this); |
| 45 | pipe.CreateGraphicsPipeline(); |
| 46 | |
| 47 | // Make calls to valid commands |
| 48 | m_command_buffer.Begin(); |
| 49 | m_command_buffer.BeginRenderPass(m_renderPassBeginInfo); |
| 50 | vk::CmdBindPipeline(m_command_buffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipe); |
| 51 | vk::CmdDrawIndirectCountKHR(m_command_buffer, indirect_buffer, 0, count_buffer, 0, 1, sizeof(VkDrawIndirectCommand)); |
| 52 | vk::CmdBindIndexBuffer(m_command_buffer, index_buffer, 0, VK_INDEX_TYPE_UINT32); |
| 53 | vk::CmdDrawIndexedIndirectCountKHR(m_command_buffer, indexed_indirect_buffer, 0, count_buffer, 0, 1, |
| 54 | sizeof(VkDrawIndexedIndirectCommand)); |
| 55 | m_command_buffer.EndRenderPass(); |
| 56 | m_command_buffer.End(); |
| 57 | } |
| 58 | |
| 59 | TEST_F(PositiveCommand, DrawIndirectCountWithoutFeature12) { |
| 60 | TEST_DESCRIPTION("Use VK_KHR_draw_indirect_count in 1.2 using the extension"); |
nothing calls this directly
no test coverage detected