fixes for compute
This commit is contained in:
parent
2f8929d5fb
commit
c65b5401ab
@ -103,6 +103,7 @@ const char*[] VK_BASE_DEVICE_EXTENSIONS = [
|
|||||||
cast(char*)VK_KHR_8BIT_STORAGE_EXTENSION_NAME,
|
cast(char*)VK_KHR_8BIT_STORAGE_EXTENSION_NAME,
|
||||||
cast(char*)VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME,
|
cast(char*)VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME,
|
||||||
cast(char*)VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
|
cast(char*)VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
|
||||||
|
cast(char*)VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME,
|
||||||
];
|
];
|
||||||
|
|
||||||
const char*[] VK_AMD_DEVICE_EXTENSIONS = [
|
const char*[] VK_AMD_DEVICE_EXTENSIONS = [
|
||||||
@ -882,9 +883,9 @@ GetAspect()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PrepComputeDrawImage()
|
PrepComputeImage(Descriptor* desc = null)
|
||||||
{
|
{
|
||||||
Transition(g_vk.cmd, &g_vk.draw_image, IL.General);
|
Transition(g_vk.cmd, desc ? desc : &g_vk.draw_image, IL.General);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -906,19 +907,22 @@ FinishRendering()
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
SubmitAndPresent()
|
SubmitAndPresent(Descriptor* copy_image = null)
|
||||||
{
|
{
|
||||||
scope(exit)
|
scope(exit)
|
||||||
{
|
{
|
||||||
g_vk.last_pipeline = null;
|
g_vk.last_pipeline = null;
|
||||||
g_vk.frame_index = (g_vk.frame_index + 1) % FRAME_OVERLAP;
|
g_vk.frame_index = (g_vk.frame_index + 1) % FRAME_OVERLAP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Descriptor* src_image = copy_image ? copy_image : &g_vk.draw_image;
|
||||||
|
|
||||||
VkImage image = g_vk.present_image.image.image;
|
VkImage image = g_vk.present_image.image.image;
|
||||||
VkSemaphore acquire_sem = g_vk.acquire_sem;
|
VkSemaphore acquire_sem = g_vk.acquire_sem;
|
||||||
VkSemaphore submit_sem = g_vk.submit_sem;
|
VkSemaphore submit_sem = g_vk.submit_sem;
|
||||||
|
|
||||||
Transition(g_vk.cmd, &g_vk.draw_image, IL.TransferSrc);
|
Transition(g_vk.cmd, g_vk.present_image_ptr, IL.TransferDst);
|
||||||
|
Transition(g_vk.cmd, src_image, IL.TransferSrc);
|
||||||
|
|
||||||
VkExtent2D extent = {
|
VkExtent2D extent = {
|
||||||
width: g_vk.swapchain_extent.width,
|
width: g_vk.swapchain_extent.width,
|
||||||
@ -926,7 +930,7 @@ SubmitAndPresent()
|
|||||||
};
|
};
|
||||||
|
|
||||||
// TODO: Find out how to copy from same dimension images (pretty sure its not blitting)
|
// TODO: Find out how to copy from same dimension images (pretty sure its not blitting)
|
||||||
Copy(g_vk.cmd, &g_vk.draw_image, image, IL.TransferDst, extent, extent);
|
Copy(g_vk.cmd, src_image, image, IL.TransferDst, extent, extent);
|
||||||
|
|
||||||
Transition(g_vk.cmd, image, IL.TransferDst, IL.PresentSrc);
|
Transition(g_vk.cmd, image, IL.TransferDst, IL.PresentSrc);
|
||||||
|
|
||||||
@ -3571,3 +3575,4 @@ version(VULKAN_RENDERER_TEST) unittest
|
|||||||
};
|
};
|
||||||
Init(build_info, 10*1000*1000, 10*1000*1000);
|
Init(build_info, 10*1000*1000, 10*1000*1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user