提交纹理CMD_BUF改为随DEVICE创建
This commit is contained in:
parent
056be453f2
commit
f8fed5c8f5
@ -18,6 +18,7 @@ class Device
|
|||||||
Fence *draw_fence,*texture_fence;
|
Fence *draw_fence,*texture_fence;
|
||||||
|
|
||||||
VkSubmitInfo texture_submitInfo;
|
VkSubmitInfo texture_submitInfo;
|
||||||
|
CommandBuffer *texture_cmd_buf;
|
||||||
|
|
||||||
RenderPass *main_rp;
|
RenderPass *main_rp;
|
||||||
ObjectList<Framebuffer> main_fb;
|
ObjectList<Framebuffer> main_fb;
|
||||||
|
@ -25,6 +25,7 @@ Device::Device(DeviceAttribute *da)
|
|||||||
|
|
||||||
hgl_zero(texture_submitInfo);
|
hgl_zero(texture_submitInfo);
|
||||||
texture_submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
|
texture_submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
|
||||||
|
texture_cmd_buf=CreateCommandBuffer();
|
||||||
|
|
||||||
present.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
|
present.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
|
||||||
present.pNext = nullptr;
|
present.pNext = nullptr;
|
||||||
@ -46,6 +47,8 @@ Device::~Device()
|
|||||||
delete main_rp;
|
delete main_rp;
|
||||||
|
|
||||||
delete image_acquired_semaphore;
|
delete image_acquired_semaphore;
|
||||||
|
|
||||||
|
delete texture_cmd_buf;
|
||||||
delete texture_fence;
|
delete texture_fence;
|
||||||
delete draw_fence;
|
delete draw_fence;
|
||||||
|
|
||||||
|
@ -103,8 +103,6 @@ Texture2D *Device::CreateTexture2D(const VkFormat video_format,void *data,uint32
|
|||||||
VK_CHECK_RESULT(vkAllocateMemory(attr->device, &memAllocInfo, nullptr, &tex_data->memory))
|
VK_CHECK_RESULT(vkAllocateMemory(attr->device, &memAllocInfo, nullptr, &tex_data->memory))
|
||||||
VK_CHECK_RESULT(vkBindImageMemory(attr->device, tex_data->image, tex_data->memory, 0))
|
VK_CHECK_RESULT(vkBindImageMemory(attr->device, tex_data->image, tex_data->memory, 0))
|
||||||
|
|
||||||
CommandBuffer *cmd_buf=CreateCommandBuffer();
|
|
||||||
|
|
||||||
VkImageSubresourceRange subresourceRange = {};
|
VkImageSubresourceRange subresourceRange = {};
|
||||||
subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||||
subresourceRange.baseMipLevel = 0;
|
subresourceRange.baseMipLevel = 0;
|
||||||
@ -122,8 +120,8 @@ Texture2D *Device::CreateTexture2D(const VkFormat video_format,void *data,uint32
|
|||||||
imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED;
|
imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED;
|
||||||
imageMemoryBarrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
|
imageMemoryBarrier.newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
|
||||||
|
|
||||||
cmd_buf->Begin();
|
texture_cmd_buf->Begin();
|
||||||
cmd_buf->PipelineBarrier(
|
texture_cmd_buf->PipelineBarrier(
|
||||||
VK_PIPELINE_STAGE_HOST_BIT,
|
VK_PIPELINE_STAGE_HOST_BIT,
|
||||||
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||||
0,
|
0,
|
||||||
@ -131,7 +129,7 @@ Texture2D *Device::CreateTexture2D(const VkFormat video_format,void *data,uint32
|
|||||||
0, nullptr,
|
0, nullptr,
|
||||||
1, &imageMemoryBarrier);
|
1, &imageMemoryBarrier);
|
||||||
|
|
||||||
cmd_buf->CopyBufferToImage(
|
texture_cmd_buf->CopyBufferToImage(
|
||||||
*buf,
|
*buf,
|
||||||
tex_data->image,
|
tex_data->image,
|
||||||
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
|
||||||
@ -143,7 +141,7 @@ Texture2D *Device::CreateTexture2D(const VkFormat video_format,void *data,uint32
|
|||||||
imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
|
imageMemoryBarrier.oldLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL;
|
||||||
imageMemoryBarrier.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
imageMemoryBarrier.newLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
||||||
|
|
||||||
cmd_buf->PipelineBarrier(
|
texture_cmd_buf->PipelineBarrier(
|
||||||
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
VK_PIPELINE_STAGE_TRANSFER_BIT,
|
||||||
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||||
0,
|
0,
|
||||||
@ -151,9 +149,9 @@ Texture2D *Device::CreateTexture2D(const VkFormat video_format,void *data,uint32
|
|||||||
0, nullptr,
|
0, nullptr,
|
||||||
1, &imageMemoryBarrier);
|
1, &imageMemoryBarrier);
|
||||||
|
|
||||||
cmd_buf->End();
|
texture_cmd_buf->End();
|
||||||
|
|
||||||
SubmitTexture(*cmd_buf);
|
SubmitTexture(*texture_cmd_buf);
|
||||||
|
|
||||||
delete buf;
|
delete buf;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user