Use VK_EXT_tooling_info in VK_Simple_Triangle

This commit is contained in:
baldurk
2020-01-21 16:46:19 +00:00
parent a869f12c9c
commit 60951195c2
2 changed files with 34 additions and 0 deletions
+29
View File
@@ -74,12 +74,33 @@ void main()
)EOSHADER";
void Prepare(int argc, char **argv)
{
optDevExts.push_back(VK_EXT_TOOLING_INFO_EXTENSION_NAME);
VulkanGraphicsTest::Prepare(argc, argv);
}
int main()
{
// initialise, create window, create context, etc
if(!Init())
return 3;
std::vector<VkPhysicalDeviceToolPropertiesEXT> tools;
if(std::find(devExts.begin(), devExts.end(), VK_EXT_TOOLING_INFO_EXTENSION_NAME) != devExts.end())
{
uint32_t toolCount = 0;
vkGetPhysicalDeviceToolPropertiesEXT(phys, &toolCount, NULL);
tools.resize(toolCount);
vkGetPhysicalDeviceToolPropertiesEXT(phys, &toolCount, tools.data());
TEST_LOG("%u tools available:", toolCount);
for(VkPhysicalDeviceToolPropertiesEXT &tool : tools)
TEST_LOG(" - %s", tool.name);
}
VkPipelineLayout layout = createPipelineLayout(vkh::PipelineLayoutCreateInfo());
vkh::GraphicsPipelineCreateInfo pipeCreateInfo;
@@ -124,6 +145,14 @@ void main()
cmd, vkh::RenderPassBeginInfo(mainWindow->rp, mainWindow->GetFB(), mainWindow->scissor),
VK_SUBPASS_CONTENTS_INLINE);
if(!tools.empty())
{
pushMarker(cmd, "Tools available");
for(VkPhysicalDeviceToolPropertiesEXT &tool : tools)
setMarker(cmd, tool.name);
popMarker(cmd);
}
vkCmdBindPipeline(cmd, VK_PIPELINE_BIND_POINT_GRAPHICS, pipe);
vkCmdSetViewport(cmd, 0, 1, &mainWindow->viewport);
vkCmdSetScissor(cmd, 0, 1, &mainWindow->scissor);
@@ -44,3 +44,8 @@ class VK_Simple_Triangle(rdtest.TestCase):
}
self.check_mesh_data(postvs_ref, postvs_data)
draw = self.find_draw("Tools available")
self.check(len(draw.children) > 1)
self.check(any([d.name == 'RenderDoc' for d in draw.children]))