fix that buffoonery
Some checks failed
Build and Test verification / build (push) Failing after 28m1s
Build and Test verification / test (push) Has been skipped

This commit is contained in:
2026-05-13 19:24:55 -05:00
parent 6835359510
commit cedb80cb03

View File

@@ -45,25 +45,10 @@ bool Engine::createInstance() {
.apiVersion = VK_API_VERSION_1_4 // this one is most important
};
// get necessary extensions that our windowing library requires
// get extensions that our windowing library requires
uint32_t instanceExtensionsCount = 0;
char const* const* instanceExtensions{ SDL_Vulkan_GetInstanceExtensions(&instanceExtensionsCount) };
// get required validation layers as specified by our app
std::vector<const char*> requiredValidationLayers;
if(enableValidationLayers) requiredValidationLayers.assign(validationLayers.begin(), validationLayers.end());
auto validationLayerProperties = context_.enumerateInstanceLayerProperties();
auto unsupportedLayer = std::ranges::find_if(requiredValidationLayers, [&validationLayerProperties](const auto& requiredLayer) {
return std::ranges::none_of(validationLayerProperties, [requiredLayer](const auto& layerProperty) {
return strcmp(layerProperty.layerName, requiredLayer) == 0;
});
}); // TODO: what black magic even is this
if(unsupportedLayer != requiredValidationLayers.end()) {
std::cout << "[" << __FUNCTION__ << ": " << __LINE__ << "] Required validation layer not supported: " << *unsupportedLayer << std::endl;
errorCount++;
}
// get all available extensions
auto extensionProperties = context_.enumerateInstanceExtensionProperties();
@@ -73,12 +58,11 @@ bool Engine::createInstance() {
std::cout << "\t" << extensionProperty.extensionName << std::endl;
}
// check that all required extensions are available
for(uint32_t i = 0; i < instanceExtensionsCount; i++) { // for each extension that we require
bool found = false;
for(const auto& extensionProperty : extensionProperties) { // see if it matches any extensions that are provided
if(strcmp(extensionProperty.extensionName, instanceExtensions[i]) == 0) {
std::cout << "[" << __FUNCTION__ << ": " << __LINE__ << "] Required SDL3 extension not supported: " << instanceExtensions[i] << std::endl;
} else {
found = true;
break;
}
@@ -90,7 +74,39 @@ bool Engine::createInstance() {
// in case you're curious
//std::cout << "[" << __FUNCTION__ << ": " << __LINE__ << "] SDL3 extension located: " << instanceExtensions[i] << std::endl;
}
} // if any weren't then we must exit
}
// get required validation layers as specified by our app
std::vector<const char*> requiredValidationLayers;
if(enableValidationLayers) requiredValidationLayers.assign(validationLayers.begin(), validationLayers.end());
// get available validation layers
auto validationLayerProperties = context_.enumerateInstanceLayerProperties();
// again print if we feel like it
std::cout << "Available Vulkan Validation Layers: " << std::endl;
for(const auto& validationLayer : validationLayerProperties) {
std::cout << "\t" << validationLayer.layerName << std::endl;
}
// check that all required validation layers are avilable
for(int i = 0; i < requiredValidationLayers.size(); i++) {
bool found = false;
for(const auto& validationLayer : validationLayerProperties) {
if(strcmp(requiredValidationLayers[i], validationLayer.layerName) == 0) {
found = true;
break;
}
}
if(!found) {
errorCount++;
std::cout << "[" << __FUNCTION__ << ": " << __LINE__ << "] Required validation layer not supported: " << requiredValidationLayers[i] << std::endl;
} else { // in case you're curious
//std::cout << "[" << __FUNCTION__ << ": " << __LINE__ << "] VkValidation layer located: " << requiredValidationLayers[i] << std::endl;
}
}
// if any we had errors then we must exit
if(errorCount != 0) return false;
vk::InstanceCreateInfo instanceCreateInfo {