zworld/engine/renderapi/vulkan/instance/instance_help.go
2024-01-20 18:44:07 +08:00

55 lines
1.3 KiB
Go

package instance
import (
"github.com/vkngwrapper/core/v2"
"github.com/vkngwrapper/extensions/v2/ext_debug_utils"
"github.com/vkngwrapper/extensions/v2/khr_get_physical_device_properties2"
"github.com/vkngwrapper/extensions/v2/khr_surface"
"log"
)
var (
extensions = []string{
khr_surface.ExtensionName,
ext_debug_utils.ExtensionName,
khr_get_physical_device_properties2.ExtensionName,
"VK_KHR_win32_surface",
"VK_EXT_debug_report",
"VK_KHR_portability_enumeration",
}
layers = []string{
"VK_LAYER_KHRONOS_validation",
"VK_LAYER_LUNARG_api_dump",
}
engineName = "goworld"
)
func _EnabledExtensionNames(loader *core.VulkanLoader) []string {
availableExtensions, _, _ := loader.AvailableExtensions()
var _extensions []string
for _, ext := range extensions {
_, hasExt := availableExtensions[ext]
if !hasExt {
log.Printf("cann't support extension: %s", ext)
continue
}
_extensions = append(_extensions, ext)
}
extensions = _extensions
return _extensions
}
func _EnabledLayerNames(loader *core.VulkanLoader) []string {
avaliableLayers, _, _ := loader.AvailableLayers()
var _layers []string
for _, lay := range layers {
_, hasExt := avaliableLayers[lay]
if !hasExt {
log.Printf("cann't support layer: %s", lay)
continue
}
_layers = append(_layers, lay)
}
layers = _layers
return layers
}