11#include "vulkan/vulkan.h"
30#elif defined(__ANDROID__)
32#include <android/asset_manager.h>
34#elif defined(__GNUC__) || defined(__clang__)
39#define VK_FLAGS_NONE 0
41#define DEFAULT_FENCE_TIMEOUT 100000000000
44#if defined(__ANDROID__)
45#define VK_CHECK_RESULT(f) \
48 if (res != VK_SUCCESS) \
50 LOGE("Fatal : VkResult is \" %s \" in %s at line %d", vks::tools::errorString(res).c_str(), __FILE__, __LINE__); \
51 assert(res == VK_SUCCESS); \
55#define VK_CHECK_RESULT(f) \
58 if (res != VK_SUCCESS) \
60 std::cout << "Fatal : VkResult is \"" << vks::tools::errorString(res) << "\" in " << __FILE__ << " at line " << __LINE__ << "\n"; \
61 assert(res == VK_SUCCESS); \
70 if (
typeid(
T).name() ==
typeid(
int).name())
72 else if (
typeid(
T).name() ==
typeid(uint32_t).name())
74 else if (
typeid(
T).name() ==
typeid(
float).name())
77 const static std::string suffix =
".comp.spv";
78 std::string outFileName = fileName;
79 unsigned int suffixPos = outFileName.rfind(suffix);
80 if (suffixPos != (outFileName.length() - suffix.length()))
87 outFileName.insert(suffixPos,
"." + typeName);
88 return getAssetPath() + outFileName;
109 VkBool32
formatIsFilterable(VkPhysicalDevice physicalDevice, VkFormat format, VkImageTiling tiling);
113 VkCommandBuffer cmdbuffer,
115 VkImageLayout oldImageLayout,
116 VkImageLayout newImageLayout,
117 VkImageSubresourceRange subresourceRange,
118 VkPipelineStageFlags srcStageMask = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
119 VkPipelineStageFlags dstStageMask = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT);
122 VkCommandBuffer cmdbuffer,
124 VkImageAspectFlags aspectMask,
125 VkImageLayout oldImageLayout,
126 VkImageLayout newImageLayout,
127 VkPipelineStageFlags srcStageMask = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT,
128 VkPipelineStageFlags dstStageMask = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT);
132 VkCommandBuffer cmdbuffer,
134 VkAccessFlags srcAccessMask,
135 VkAccessFlags dstAccessMask,
136 VkImageLayout oldImageLayout,
137 VkImageLayout newImageLayout,
138 VkPipelineStageFlags srcStageMask,
139 VkPipelineStageFlags dstStageMask,
140 VkImageSubresourceRange subresourceRange);
143 void exitFatal(
const std::string& message, int32_t exitCode);
144 void exitFatal(
const std::string& message, VkResult resultCode);
146 VkShaderModule
loadShaderModule(
const std::string fileName, VkDevice device);
147 VkShaderModule
loadShaderModule(
const std::string& fileName,
const std::map<std::string, std::string>& macros,
const std::string& MD5Encode, VkDevice device);
150#if defined(__ANDROID__)
151 VkShaderModule
loadShader(AAssetManager* assetManager,
const char *fileName, VkDevice device);
152 VkShaderModule
loadShader(AAssetManager* assetManager,
const std::string& fileName,
const std::map<std::string, std::string>& macros,
const std::string& MD5EnCode, VkDevice device);
154 VkShaderModule
loadShader(
const char *fileName, VkDevice device);
155 VkShaderModule
loadShader(
const std::string &fileName,
const std::map<std::string, std::string> ¯os,
const std::string &MD5Encode, VkDevice device);
161 uint32_t
alignedSize(uint32_t value, uint32_t alignment);