fix transition bug
This commit is contained in:
parent
bb4188feaa
commit
9dbeec7b63
124
vulkan.d
124
vulkan.d
@ -1021,67 +1021,6 @@ CreateImageView(Vulkan* vk, ImageView* view, u32 w, u32 h, u32 ch, u8[] data)
|
||||
}
|
||||
}
|
||||
|
||||
pragma(inline): void
|
||||
BeginComputePass(Vulkan* vk)
|
||||
{
|
||||
VkResult result = vkWaitForFences(vk.device, 1, &vk.comp_fence, VK_TRUE, 1000000000);
|
||||
VkCheckA("BeginComputePass failure: vkWaitForFences error", result);
|
||||
|
||||
result = vkResetFences(vk.device, 1, &vk.comp_fence);
|
||||
VkCheckA("BeginComputepass failure: vkResetFences error", result);
|
||||
|
||||
|
||||
result = vkResetCommandBuffer(vk.comp_cmd, 0);
|
||||
VkCheckA("BeginComputePass failure: vkResetCommandBuffer error", result);
|
||||
|
||||
VkCommandBufferBeginInfo cmd_info = {
|
||||
sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
|
||||
flags: VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
|
||||
};
|
||||
|
||||
result = vkBeginCommandBuffer(vk.comp_cmd, &cmd_info);
|
||||
VkCheckA("BeginComputePass failure: vkBeginCommandBuffer error", result);
|
||||
}
|
||||
|
||||
pragma(inline): void
|
||||
FinishComputePass(Vulkan* vk)
|
||||
{
|
||||
VkResult result = vkEndCommandBuffer(vk.comp_cmd);
|
||||
VkCheckA("FinishComputePass failure: vkEndCommandBuffer error", result);
|
||||
|
||||
VkCommandBufferSubmitInfo cmd_info = {
|
||||
sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
|
||||
commandBuffer: vk.comp_cmd,
|
||||
};
|
||||
|
||||
VkSubmitInfo2 submit_info = {
|
||||
sType: VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
|
||||
commandBufferInfoCount: 1,
|
||||
pCommandBufferInfos: &cmd_info,
|
||||
};
|
||||
|
||||
result = vkQueueSubmit2(vk.gfx_queue, 1, &submit_info, vk.comp_fence);
|
||||
VkCheckA("FinishComputePass failure: vkQueueSubmit2 error", result);
|
||||
}
|
||||
|
||||
pragma(inline): void
|
||||
CreateBufferView(Vulkan* vk, Descriptor* desc, u64 size, Format format, DescType type)
|
||||
{
|
||||
CreateBuffer(vk, &desc.buf_view.base, BT.BufferView, size, false);
|
||||
|
||||
VkBufferViewCreateInfo info = {
|
||||
sType: VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
|
||||
buffer: desc.buf_view.buffer,
|
||||
format: format,
|
||||
range: size,
|
||||
};
|
||||
|
||||
VkResult result = vkCreateBufferView(vk.device, &info, null, &desc.buf_view.view);
|
||||
VkCheckA("CreateBufferView failure: vkCreateBufferView failed", result);
|
||||
|
||||
desc.buf_view.size = size;
|
||||
}
|
||||
|
||||
void
|
||||
CreateImageView(Vulkan* vk, Descriptor* desc, u32 w, u32 h, Format format, ImageUsage usage, DescType type)
|
||||
{
|
||||
@ -1151,6 +1090,67 @@ CreateImageView(Vulkan* vk, ImageView* view, u32 w, u32 h, Format format, ImageU
|
||||
view.usage = usage;
|
||||
}
|
||||
|
||||
pragma(inline): void
|
||||
BeginComputePass(Vulkan* vk)
|
||||
{
|
||||
VkResult result = vkWaitForFences(vk.device, 1, &vk.comp_fence, VK_TRUE, 1000000000);
|
||||
VkCheckA("BeginComputePass failure: vkWaitForFences error", result);
|
||||
|
||||
result = vkResetFences(vk.device, 1, &vk.comp_fence);
|
||||
VkCheckA("BeginComputepass failure: vkResetFences error", result);
|
||||
|
||||
|
||||
result = vkResetCommandBuffer(vk.comp_cmd, 0);
|
||||
VkCheckA("BeginComputePass failure: vkResetCommandBuffer error", result);
|
||||
|
||||
VkCommandBufferBeginInfo cmd_info = {
|
||||
sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO,
|
||||
flags: VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT,
|
||||
};
|
||||
|
||||
result = vkBeginCommandBuffer(vk.comp_cmd, &cmd_info);
|
||||
VkCheckA("BeginComputePass failure: vkBeginCommandBuffer error", result);
|
||||
}
|
||||
|
||||
pragma(inline): void
|
||||
FinishComputePass(Vulkan* vk)
|
||||
{
|
||||
VkResult result = vkEndCommandBuffer(vk.comp_cmd);
|
||||
VkCheckA("FinishComputePass failure: vkEndCommandBuffer error", result);
|
||||
|
||||
VkCommandBufferSubmitInfo cmd_info = {
|
||||
sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
|
||||
commandBuffer: vk.comp_cmd,
|
||||
};
|
||||
|
||||
VkSubmitInfo2 submit_info = {
|
||||
sType: VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
|
||||
commandBufferInfoCount: 1,
|
||||
pCommandBufferInfos: &cmd_info,
|
||||
};
|
||||
|
||||
result = vkQueueSubmit2(vk.gfx_queue, 1, &submit_info, vk.comp_fence);
|
||||
VkCheckA("FinishComputePass failure: vkQueueSubmit2 error", result);
|
||||
}
|
||||
|
||||
pragma(inline): void
|
||||
CreateBufferView(Vulkan* vk, Descriptor* desc, u64 size, Format format, DescType type)
|
||||
{
|
||||
CreateBuffer(vk, &desc.buf_view.base, BT.BufferView, size, false);
|
||||
|
||||
VkBufferViewCreateInfo info = {
|
||||
sType: VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO,
|
||||
buffer: desc.buf_view.buffer,
|
||||
format: format,
|
||||
range: size,
|
||||
};
|
||||
|
||||
VkResult result = vkCreateBufferView(vk.device, &info, null, &desc.buf_view.view);
|
||||
VkCheckA("CreateBufferView failure: vkCreateBufferView failed", result);
|
||||
|
||||
desc.buf_view.size = size;
|
||||
}
|
||||
|
||||
void
|
||||
PushConstants(T)(Vulkan* vk, Pipeline pipeline_id, T* pc)
|
||||
{
|
||||
@ -1571,7 +1571,7 @@ void
|
||||
Transition(VkCommandBuffer cmd, Descriptor* desc, VkImageLayout new_layout)
|
||||
{
|
||||
ImageDescCheck(desc);
|
||||
Transition(cmd, &desc.view.base, new_layout);
|
||||
Transition(cmd, &desc.view, new_layout);
|
||||
}
|
||||
|
||||
pragma(inline): void
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user