123c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#ifndef _VKDEFS_HPP 223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#define _VKDEFS_HPP 323c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos/*------------------------------------------------------------------------- 4846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * Vulkan CTS Framework 5846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * -------------------- 623c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos * 7846cc3ce8e721a972ef38c44e24da49ea96110caPyry Haulos * Copyright (c) 2015 Google Inc. 823c1f9fbfacc654ff2115e74466bb781a058bb9fPyry 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 1223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos * 13978d3d585aa549eb1e729b51e9d85fc6477240f9Pyry Haulos * http://www.apache.org/licenses/LICENSE-2.0 1423c1f9fbfacc654ff2115e74466bb781a058bb9fPyry 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. 2023c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos * 2123c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos *//*! 2223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos * \file 2323c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos * \brief Vulkan utilites. 2423c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos *//*--------------------------------------------------------------------*/ 2523c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 2623c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#include "tcuDefs.hpp" 2723c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 28add785f6efc8483d02b8e96424f7ad0104767cb0Chris Forbes#if (DE_OS == DE_OS_ANDROID) && defined(__ARM_ARCH) && defined(__ARM_32BIT_STATE) 29ac48db86485234b01fd769074f5a3d954055512bMark Adams# define VKAPI_ATTR __attribute__((pcs("aapcs-vfp"))) 3023c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#else 3168e7282426d639b54d15c4710d97ba97e72c76efPyry Haulos# define VKAPI_ATTR 3223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#endif 3323c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 3468e7282426d639b54d15c4710d97ba97e72c76efPyry Haulos#if (DE_OS == DE_OS_WIN32) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) 3568e7282426d639b54d15c4710d97ba97e72c76efPyry Haulos# define VKAPI_CALL __stdcall 3623c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#else 3768e7282426d639b54d15c4710d97ba97e72c76efPyry Haulos# define VKAPI_CALL 3823c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#endif 3923c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 4068e7282426d639b54d15c4710d97ba97e72c76efPyry Haulos#define VK_DEFINE_HANDLE(NAME, TYPE) typedef struct NAME##_s* NAME 4168e7282426d639b54d15c4710d97ba97e72c76efPyry Haulos#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(NAME, TYPE) typedef Handle<TYPE> NAME 4223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 4312021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos#define VK_DEFINE_PLATFORM_TYPE(NAME, COMPATIBLE) \ 4412021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulosnamespace pt { \ 4512021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulosstruct NAME { \ 4612021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos COMPATIBLE internal; \ 4712021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos explicit NAME (COMPATIBLE internal_) \ 4812021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos : internal(internal_) {} \ 4912021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos}; \ 5012021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos} // pt 5112021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos 52dd99172aee72493b3e508dc8990e7eac95a40f8fPyry Haulos#define VK_MAKE_VERSION(MAJOR, MINOR, PATCH) (((deUint32)(MAJOR) << 22u) | ((deUint32)(MINOR) << 12u) | (deUint32)(PATCH)) 53dd99172aee72493b3e508dc8990e7eac95a40f8fPyry Haulos#define VK_BIT(NUM) (1u<<(deUint32)(NUM)) 5423c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 55ee4d301637e7d218bc690d82d73fe080740927b3Mais Alnasser#define VK_VERSION_MAJOR(version) ((deUint32)(version) >> 22) 56ee4d301637e7d218bc690d82d73fe080740927b3Mais Alnasser#define VK_VERSION_MINOR(version) (((deUint32)(version) >> 12) & 0x3ff) 57ee4d301637e7d218bc690d82d73fe080740927b3Mais Alnasser#define VK_VERSION_PATCH(version) ((deUint32)(version) & 0xfff) 5815c47384395c0330d13b1dd91ab9f9a5564970fcPiers Daniell 5923c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#define VK_CHECK(EXPR) vk::checkResult((EXPR), #EXPR, __FILE__, __LINE__) 6023c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#define VK_CHECK_MSG(EXPR, MSG) vk::checkResult((EXPR), MSG, __FILE__, __LINE__) 6123c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 6223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos/*--------------------------------------------------------------------*//*! 6323c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos * \brief Vulkan utilities 6423c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos *//*--------------------------------------------------------------------*/ 6523c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulosnamespace vk 6623c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos{ 6723c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 6823c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulostypedef deUint64 VkDeviceSize; 6923c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulostypedef deUint32 VkSampleMask; 70b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulostypedef deUint32 VkBool32; 7168e7282426d639b54d15c4710d97ba97e72c76efPyry Haulostypedef deUint32 VkFlags; 7223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 73b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos// enum HandleType { HANDLE_TYPE_INSTANCE, ... }; 74b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos#include "vkHandleType.inl" 7523c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 76b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulostemplate<HandleType Type> 77b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulosclass Handle 78b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos{ 79b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulospublic: 80b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos Handle (void) {} // \note Left uninitialized on purpose 81b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos Handle (deUint64 internal) : m_internal(internal) {} 8223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 83b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos Handle& operator= (deUint64 internal) { m_internal = internal; return *this; } 8423c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 85b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos bool operator== (const Handle<Type>& other) const { return this->m_internal == other.m_internal; } 86b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos bool operator!= (const Handle<Type>& other) const { return this->m_internal != other.m_internal; } 8723c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 88b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos bool operator! (void) const { return !m_internal; } 89cb8331f6588e0b2de91eecbe9a99127eeae00b96Pyry Haulos 90b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos deUint64 getInternal (void) const { return m_internal; } 91cb8331f6588e0b2de91eecbe9a99127eeae00b96Pyry Haulos 92b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos enum { HANDLE_TYPE = Type }; 93b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 94b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulosprivate: 95b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos deUint64 m_internal; 9623c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos}; 9723c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 98b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos#include "vkBasicTypes.inl" 99b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 1005e2d5b22247f074b52674f15d6cf64e477bac0d8Pyry Haulos#define VK_CORE_FORMAT_LAST ((vk::VkFormat)(vk::VK_FORMAT_ASTC_12x12_SRGB_BLOCK+1)) 1015e2d5b22247f074b52674f15d6cf64e477bac0d8Pyry Haulos 102fa7a45c9bcb909be38ffd55549beb6db5115a65bPyry Haulosenum SpirvVersion 103fa7a45c9bcb909be38ffd55549beb6db5115a65bPyry Haulos{ 104fa7a45c9bcb909be38ffd55549beb6db5115a65bPyry Haulos SPIRV_VERSION_1_0 = 0, //!< SPIR-V 1.0 105d784ada312e9c0f2d0262a87402e2ff6c6160a66Boris Zanin SPIRV_VERSION_1_1 = 1, //!< SPIR-V 1.1 106d784ada312e9c0f2d0262a87402e2ff6c6160a66Boris Zanin SPIRV_VERSION_1_2 = 2, //!< SPIR-V 1.2 107d784ada312e9c0f2d0262a87402e2ff6c6160a66Boris Zanin SPIRV_VERSION_1_3 = 3, //!< SPIR-V 1.3 108fa7a45c9bcb909be38ffd55549beb6db5115a65bPyry Haulos 109fa7a45c9bcb909be38ffd55549beb6db5115a65bPyry Haulos SPIRV_VERSION_LAST 110fa7a45c9bcb909be38ffd55549beb6db5115a65bPyry Haulos}; 111fa7a45c9bcb909be38ffd55549beb6db5115a65bPyry Haulos 112d784ada312e9c0f2d0262a87402e2ff6c6160a66Boris Zanintypedef struct 113d784ada312e9c0f2d0262a87402e2ff6c6160a66Boris Zanin{ 114d784ada312e9c0f2d0262a87402e2ff6c6160a66Boris Zanin deUint32 magic; 115d784ada312e9c0f2d0262a87402e2ff6c6160a66Boris Zanin deUint32 version; 116d784ada312e9c0f2d0262a87402e2ff6c6160a66Boris Zanin deUint32 generator; 117d784ada312e9c0f2d0262a87402e2ff6c6160a66Boris Zanin deUint32 bound; 118d784ada312e9c0f2d0262a87402e2ff6c6160a66Boris Zanin} SpirvBinaryHeader; 119d784ada312e9c0f2d0262a87402e2ff6c6160a66Boris Zanin 12012021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulosnamespace wsi 12112021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos{ 12212021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos 12312021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulosenum Type 12412021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos{ 12512021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos TYPE_XLIB = 0, 12612021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos TYPE_XCB, 12712021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos TYPE_WAYLAND, 12812021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos TYPE_MIR, 12912021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos TYPE_ANDROID, 13012021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos TYPE_WIN32, 13112021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos 13212021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos TYPE_LAST 13312021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos}; 13412021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos 13512021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos} // wsi 13612021ac26c6d6f8923f526bd7635dcf68e0c4061Pyry Haulos 13768e7282426d639b54d15c4710d97ba97e72c76efPyry Haulostypedef VKAPI_ATTR void (VKAPI_CALL* PFN_vkVoidFunction) (void); 138b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 139931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulostypedef VKAPI_ATTR void* (VKAPI_CALL* PFN_vkAllocationFunction) (void* pUserData, 140931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos size_t size, 141931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos size_t alignment, 142931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos VkSystemAllocationScope allocationScope); 143931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulostypedef VKAPI_ATTR void* (VKAPI_CALL* PFN_vkReallocationFunction) (void* pUserData, 144931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos void* pOriginal, 145931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos size_t size, 146931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos size_t alignment, 147931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos VkSystemAllocationScope allocationScope); 148931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulostypedef VKAPI_ATTR void (VKAPI_CALL* PFN_vkFreeFunction) (void* pUserData, 149931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos void* pMem); 150931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulostypedef VKAPI_ATTR void (VKAPI_CALL* PFN_vkInternalAllocationNotification) (void* pUserData, 151931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos size_t size, 152931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos VkInternalAllocationType allocationType, 153931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos VkSystemAllocationScope allocationScope); 154931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulostypedef VKAPI_ATTR void (VKAPI_CALL* PFN_vkInternalFreeNotification) (void* pUserData, 155931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos size_t size, 156931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos VkInternalAllocationType allocationType, 157931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos VkSystemAllocationScope allocationScope); 158931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos 159931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulostypedef VKAPI_ATTR VkBool32 (VKAPI_CALL* PFN_vkDebugReportCallbackEXT) (VkDebugReportFlagsEXT flags, 160931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos VkDebugReportObjectTypeEXT objectType, 161931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos deUint64 object, 162931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos size_t location, 163931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos deInt32 messageCode, 164931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos const char* pLayerPrefix, 165931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos const char* pMessage, 166931d1df9bc5ac16200e2e63dfce17dcbbbb35d36Pyry Haulos void* pUserData); 167b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 16823c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#include "vkStructTypes.inl" 16923c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 170b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulosextern "C" 171b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos{ 172b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos#include "vkFunctionPointerTypes.inl" 173b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos} 174b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 17523c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulosclass PlatformInterface 17623c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos{ 17723c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulospublic: 17823c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#include "vkVirtualPlatformInterface.inl" 179b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 180b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulosprotected: 181b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos PlatformInterface (void) {} 182b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 183b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulosprivate: 184b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos PlatformInterface (const PlatformInterface&); 185b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos PlatformInterface& operator= (const PlatformInterface&); 186b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos}; 187b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 188b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulosclass InstanceInterface 189b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos{ 190b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulospublic: 191b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos#include "vkVirtualInstanceInterface.inl" 192b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 193b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulosprotected: 194b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos InstanceInterface (void) {} 195b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 196b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulosprivate: 197b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos InstanceInterface (const InstanceInterface&); 198b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos InstanceInterface& operator= (const InstanceInterface&); 19923c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos}; 20023c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 20123c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulosclass DeviceInterface 20223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos{ 20323c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulospublic: 20423c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#include "vkVirtualDeviceInterface.inl" 205b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 206b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulosprotected: 207b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos DeviceInterface (void) {} 208b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos 209b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulosprivate: 210b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos DeviceInterface (const DeviceInterface&); 211b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulos DeviceInterface& operator= (const DeviceInterface&); 21223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos}; 21323c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 21423c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulosclass Error : public tcu::TestError 21523c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos{ 21623c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulospublic: 21723c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos Error (VkResult error, const char* message, const char* expr, const char* file, int line); 21823c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos Error (VkResult error, const std::string& message); 21923c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos virtual ~Error (void) throw(); 22023c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 22123c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos VkResult getError (void) const { return m_error; } 22223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 22323c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulosprivate: 22423c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos const VkResult m_error; 22523c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos}; 22623c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 22723c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulosclass OutOfMemoryError : public tcu::ResourceError 22823c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos{ 22923c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulospublic: 23023c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos OutOfMemoryError (VkResult error, const char* message, const char* expr, const char* file, int line); 23123c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos OutOfMemoryError (VkResult error, const std::string& message); 23223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos virtual ~OutOfMemoryError (void) throw(); 23323c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 23423c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos VkResult getError (void) const { return m_error; } 23523c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 23623c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulosprivate: 23723c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos const VkResult m_error; 23823c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos}; 23923c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 240b1a7d2198497be32dfc22386f99945656ff4080ePyry Haulosvoid checkResult (VkResult result, const char* message, const char* file, int line); 24123c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 24223c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos} // vk 24323c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos 24423c1f9fbfacc654ff2115e74466bb781a058bb9fPyry Haulos#endif // _VKDEFS_HPP 245