big refactor
This commit is contained in:
parent
2a0ed55aba
commit
ee6797c69e
8
test.sh
Executable file
8
test.sh
Executable file
@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
glslc -fshader-stage=comp --target-env=vulkan1.2 convert.comp.glsl -oconvert.comp.spv
|
||||
|
||||
ldc2 vulkan.d vulkan_funcs.d vulkan_logging.d vulkan_util.d -L-lvulkan --unittest -J./ -verrors=30
|
||||
|
||||
rm convert.comp.spv
|
||||
rm vulkan.o
|
||||
@ -84,6 +84,7 @@ PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = null;
|
||||
PFN_vkDestroyDevice vkDestroyDevice = null;
|
||||
PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = null;
|
||||
PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = null;
|
||||
PFN_vkDestroyBufferView vkDestroyBufferView = null;
|
||||
PFN_vkQueueSubmit2 vkQueueSubmit2 = null;
|
||||
PFN_vkDestroyImage vkDestroyImage = null;
|
||||
PFN_vkCmdBlitImage vkCmdBlitImage = null;
|
||||
@ -125,36 +126,6 @@ PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = null;
|
||||
PFN_vkWaitSemaphores vkWaitSemaphores = null;
|
||||
PFN_vkQueueWaitIdle vkQueueWaitIdle = null;
|
||||
|
||||
bool
|
||||
LoadGlobalFunctions()
|
||||
{
|
||||
Library lib;
|
||||
Function fn;
|
||||
foreach(name; VULKAN_LIBS)
|
||||
{
|
||||
lib = LoadLibrary(name);
|
||||
if(lib.ptr)
|
||||
{
|
||||
fn = LoadFunction(lib, "vkGetInstanceProcAddr");
|
||||
vkGetInstanceProcAddr = cast(PFN_vkGetInstanceProcAddr)fn.ptr;
|
||||
}
|
||||
}
|
||||
|
||||
if(fn.ptr)
|
||||
{
|
||||
vkGetInstanceProcAddr = cast(PFN_vkGetInstanceProcAddr)vkGetInstanceProcAddr(null, "vkGetInstanceProcAddr");
|
||||
assert(vkGetInstanceProcAddr != null, "LoadGlobalFunctions failure: Unable to load vkGetInstanceProcAddr");
|
||||
|
||||
vkCreateInstance = cast(PFN_vkCreateInstance)vkGetInstanceProcAddr(null, "vkCreateInstance");
|
||||
assert(vkCreateInstance != null, "LoadGlobalFunctions failure: Unable to load VkCreateInstance");
|
||||
|
||||
vkEnumerateInstanceLayerProperties = cast(PFN_vkEnumerateInstanceLayerProperties)vkGetInstanceProcAddr(null, "vkEnumerateInstanceLayerProperties");
|
||||
assert(vkEnumerateInstanceLayerProperties != null, "LoadGlobalFunctions failure: Unable to load vkEnumerateInstanceLayerProperties");
|
||||
}
|
||||
|
||||
return fn.ptr != null;
|
||||
}
|
||||
|
||||
void
|
||||
LoadDeviceFunctions(Vulkan* vk)
|
||||
{
|
||||
@ -190,6 +161,7 @@ LoadDeviceFunctions(Vulkan* vk)
|
||||
vkDestroyDevice = cast(PFN_vkDestroyDevice)vkGetDeviceProcAddr(vk.device, "vkDestroyDevice");
|
||||
vkDestroyDescriptorPool = cast(PFN_vkDestroyDescriptorPool)vkGetDeviceProcAddr(vk.device, "vkDestroyDescriptorPool");
|
||||
vkDestroySwapchainKHR = cast(PFN_vkDestroySwapchainKHR)vkGetDeviceProcAddr(vk.device, "vkDestroySwapchainKHR");
|
||||
vkDestroyBufferView = cast(PFN_vkDestroyBufferView)vkGetDeviceProcAddr(vk.device, "vkDestroyBufferView");
|
||||
vkDestroyImage = cast(PFN_vkDestroyImage)vkGetDeviceProcAddr(vk.device, "vkDestroyImage");
|
||||
vkDestroyImageView = cast(PFN_vkDestroyImageView)vkGetDeviceProcAddr(vk.device, "vkDestroyImageView");
|
||||
vkDestroyCommandPool = cast(PFN_vkDestroyCommandPool)vkGetDeviceProcAddr(vk.device, "vkDestroyCommandPool");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user