aboutsummaryrefslogtreecommitdiff
path: root/samples
diff options
context:
space:
mode:
authordan sinclair <dj2@everburning.com>2019-03-07 15:44:31 -0500
committerGitHub <noreply@github.com>2019-03-07 15:44:31 -0500
commit0d744484eba498e30ad02cfb91b35426df470ece (patch)
tree15e738f15a7c5e4f33a37b538700831bdadcdaa5 /samples
parent6d37d69d4cde35d95f8420e879d1fa6543e4ff1c (diff)
downloadamber-0d744484eba498e30ad02cfb91b35426df470ece.tar.gz
Build with local vulkan data if requested (#319)
This CL adds a flag AMBER_USE_LOCAL_VULKAN which if set when running cmake will have amber use the vulkan header and loaders out of the third_party directory. This should let amber try to build on a system without vulkan so the build can be tested on the bots.
Diffstat (limited to 'samples')
-rw-r--r--samples/config_helper_vulkan.cc37
-rw-r--r--samples/config_helper_vulkan.h6
2 files changed, 26 insertions, 17 deletions
diff --git a/samples/config_helper_vulkan.cc b/samples/config_helper_vulkan.cc
index b6de67f..0bf0ef5 100644
--- a/samples/config_helper_vulkan.cc
+++ b/samples/config_helper_vulkan.cc
@@ -592,7 +592,11 @@ std::string deviceTypeToName(VkPhysicalDeviceType type) {
} // namespace
-ConfigHelperVulkan::ConfigHelperVulkan() = default;
+ConfigHelperVulkan::ConfigHelperVulkan()
+ : available_features_(VkPhysicalDeviceFeatures()),
+ available_features2_(VkPhysicalDeviceFeatures2KHR()),
+ variable_pointers_feature_(VkPhysicalDeviceVariablePointerFeaturesKHR()) {
+}
ConfigHelperVulkan::~ConfigHelperVulkan() = default;
@@ -601,11 +605,11 @@ amber::Result ConfigHelperVulkan::CreateVulkanInstance(
uint32_t engine_minor,
std::vector<std::string> required_extensions,
bool disable_validation_layer) {
- VkApplicationInfo app_info = {};
+ VkApplicationInfo app_info = VkApplicationInfo();
app_info.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
app_info.apiVersion = VK_MAKE_VERSION(engine_major, engine_minor, 0);
- VkInstanceCreateInfo instance_info = {};
+ VkInstanceCreateInfo instance_info = VkInstanceCreateInfo();
instance_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
instance_info.pApplicationInfo = &app_info;
@@ -655,7 +659,8 @@ amber::Result ConfigHelperVulkan::CreateVulkanInstance(
}
amber::Result ConfigHelperVulkan::CreateDebugReportCallback() {
- VkDebugReportCallbackCreateInfoEXT info = {};
+ VkDebugReportCallbackCreateInfoEXT info =
+ VkDebugReportCallbackCreateInfoEXT();
info.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
info.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT;
info.pfnCallback = debugCallback;
@@ -691,15 +696,17 @@ amber::Result ConfigHelperVulkan::ChooseVulkanPhysicalDevice(
return amber::Result("Unable to enumerate physical devices");
}
- VkPhysicalDeviceFeatures required_vulkan_features = {};
+ VkPhysicalDeviceFeatures required_vulkan_features =
+ VkPhysicalDeviceFeatures();
for (uint32_t i = 0; i < count; ++i) {
if (use_physical_device_features2_) {
- VkPhysicalDeviceVariablePointerFeaturesKHR var_ptrs = {};
+ VkPhysicalDeviceVariablePointerFeaturesKHR var_ptrs =
+ VkPhysicalDeviceVariablePointerFeaturesKHR();
var_ptrs.sType =
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR;
var_ptrs.pNext = nullptr;
- VkPhysicalDeviceFeatures2KHR features2 = {};
+ VkPhysicalDeviceFeatures2KHR features2 = VkPhysicalDeviceFeatures2KHR();
features2.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR;
features2.pNext = &var_ptrs;
@@ -767,7 +774,7 @@ amber::Result ConfigHelperVulkan::ChooseVulkanPhysicalDevice(
amber::Result ConfigHelperVulkan::CreateVulkanDevice(
const std::vector<std::string>& required_features,
const std::vector<std::string>& required_extensions) {
- VkDeviceQueueCreateInfo queue_info = {};
+ VkDeviceQueueCreateInfo queue_info = VkDeviceQueueCreateInfo();
const float priorities[] = {1.0f};
queue_info.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
@@ -781,7 +788,7 @@ amber::Result ConfigHelperVulkan::CreateVulkanDevice(
std::back_inserter(required_extensions_in_char),
[](const std::string& ext) -> const char* { return ext.c_str(); });
- VkDeviceCreateInfo info = {};
+ VkDeviceCreateInfo info = VkDeviceCreateInfo();
info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
info.pQueueCreateInfos = &queue_info;
info.queueCreateInfoCount = 1;
@@ -797,7 +804,8 @@ amber::Result ConfigHelperVulkan::CreateVulkanDevice(
amber::Result ConfigHelperVulkan::CreateDeviceWithFeatures1(
const std::vector<std::string>& required_features,
VkDeviceCreateInfo* info) {
- VkPhysicalDeviceFeatures required_vulkan_features = {};
+ VkPhysicalDeviceFeatures required_vulkan_features =
+ VkPhysicalDeviceFeatures();
amber::Result r =
NamesToVulkanFeatures(required_features, &required_vulkan_features);
if (!r.IsSuccess())
@@ -831,7 +839,8 @@ amber::Result ConfigHelperVulkan::CreateDeviceWithFeatures2(
variable_pointers_feature_.variablePointersStorageBuffer = VK_TRUE;
}
- VkPhysicalDeviceFeatures required_vulkan_features = {};
+ VkPhysicalDeviceFeatures required_vulkan_features =
+ VkPhysicalDeviceFeatures();
amber::Result r =
NamesToVulkanFeatures(feature1_names, &required_vulkan_features);
if (!r.IsSuccess())
@@ -860,9 +869,9 @@ void ConfigHelperVulkan::DumpPhysicalDeviceInfo() {
std::cout << std::endl;
std::cout << "Physical device properties:" << std::endl;
- std::cout << " apiVersion: " << VK_VERSION_MAJOR(api_version) << "."
- << VK_VERSION_MINOR(api_version) << "."
- << VK_VERSION_PATCH(api_version) << std::endl;
+ std::cout << " apiVersion: " << static_cast<uint32_t>(api_version >> 22)
+ << "." << static_cast<uint32_t>((api_version >> 12) & 0x3ff) << "."
+ << static_cast<uint32_t>(api_version & 0xfff) << std::endl;
std::cout << " driverVersion: " << props.driverVersion << std::endl;
std::cout << " vendorID: " << props.vendorID << std::endl;
std::cout << " deviceID: " << props.deviceID << std::endl;
diff --git a/samples/config_helper_vulkan.h b/samples/config_helper_vulkan.h
index 10e66d2..bf956fb 100644
--- a/samples/config_helper_vulkan.h
+++ b/samples/config_helper_vulkan.h
@@ -103,9 +103,9 @@ class ConfigHelperVulkan : public ConfigHelperImpl {
VkDevice vulkan_device_ = VK_NULL_HANDLE;
bool use_physical_device_features2_ = false;
- VkPhysicalDeviceFeatures available_features_ = {};
- VkPhysicalDeviceFeatures2KHR available_features2_ = {};
- VkPhysicalDeviceVariablePointerFeaturesKHR variable_pointers_feature_ = {};
+ VkPhysicalDeviceFeatures available_features_;
+ VkPhysicalDeviceFeatures2KHR available_features2_;
+ VkPhysicalDeviceVariablePointerFeaturesKHR variable_pointers_feature_;
};
} // namespace sample