1846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos#ifndef _VKDEVICEUTIL_HPP 2846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos#define _VKDEVICEUTIL_HPP 3846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos/*------------------------------------------------------------------------- 4846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * Vulkan CTS Framework 5846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * -------------------- 6846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * 7846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * Copyright (c) 2015 Google Inc. 8846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * 9978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * Licensed under the Apache License, Version 2.0 (the "License"); 10978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * you may not use this file except in compliance with the License. 11978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * You may obtain a copy of the License at 12846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * 13978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * http://www.apache.org/licenses/LICENSE-2.0 14846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * 15978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * Unless required by applicable law or agreed to in writing, software 16978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * distributed under the License is distributed on an "AS IS" BASIS, 17978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * See the License for the specific language governing permissions and 19978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * limitations under the License. 20846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * 21846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos *//*! 22846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * \file 23846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * \brief Instance and device initialization utilities. 24846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos *//*--------------------------------------------------------------------*/ 25846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos 26846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos#include "vkDefs.hpp" 27846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos#include "vkRef.hpp" 28846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos 2912021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos#include <vector> 3012021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos#include <string> 3112021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos 32846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulosnamespace tcu 33846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos{ 34846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulosclass CommandLine; 35846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos} 36846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos 37846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulosnamespace vk 38846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos{ 39846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos 4012021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry HaulosMove<VkInstance> createDefaultInstance (const PlatformInterface& vkPlatform); 4112021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry HaulosMove<VkInstance> createDefaultInstance (const PlatformInterface& vkPlatform, 4212021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos const std::vector<std::string>& enabledLayers, 43f1d576d0d3f98e27b55038c5b29df26d1d0f0d79Pyry Haulos const std::vector<std::string>& enabledExtensions, 44f1d576d0d3f98e27b55038c5b29df26d1d0f0d79Pyry Haulos const VkAllocationCallbacks* pAllocator = DE_NULL); 4512021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos 4612021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry HaulosVkPhysicalDevice chooseDevice (const InstanceInterface& vkInstance, 4712021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos VkInstance instance, 4812021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos const tcu::CommandLine& cmdLine); 49846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos 50846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos} // vk 51846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos 52846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos#endif // _VKDEVICEUTIL_HPP 53