mirror of
https://github.com/libretro/RetroArch
synced 2025-04-01 13:20:43 +00:00
(vulkan_common) Prevent memsets and implicit memsets
This commit is contained in:
parent
9684bde88a
commit
9e65ab63fe
@ -899,12 +899,20 @@ struct vk_texture vulkan_create_texture(vk_t *vk,
|
|||||||
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||||
VK_PIPELINE_STAGE_TRANSFER_BIT);
|
VK_PIPELINE_STAGE_TRANSFER_BIT);
|
||||||
|
|
||||||
memset(®ion, 0, sizeof(region));
|
region.bufferOffset = 0;
|
||||||
region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
region.bufferRowLength = 0;
|
||||||
region.imageSubresource.layerCount = 1;
|
region.bufferImageHeight = 0;
|
||||||
region.imageExtent.width = width;
|
region.imageSubresource.aspectMask =
|
||||||
region.imageExtent.height = height;
|
VK_IMAGE_ASPECT_COLOR_BIT;
|
||||||
region.imageExtent.depth = 1;
|
region.imageSubresource.mipLevel = 0;
|
||||||
|
region.imageSubresource.baseArrayLayer = 0;
|
||||||
|
region.imageSubresource.layerCount = 1;
|
||||||
|
region.imageOffset.x = 0;
|
||||||
|
region.imageOffset.y = 0;
|
||||||
|
region.imageOffset.z = 0;
|
||||||
|
region.imageExtent.width = width;
|
||||||
|
region.imageExtent.height = height;
|
||||||
|
region.imageExtent.depth = 1;
|
||||||
|
|
||||||
vkCmdCopyBufferToImage(staging,
|
vkCmdCopyBufferToImage(staging,
|
||||||
tmp.buffer,
|
tmp.buffer,
|
||||||
@ -923,17 +931,21 @@ struct vk_texture vulkan_create_texture(vk_t *vk,
|
|||||||
unsigned src_height = MAX(height >> (i - 1), 1);
|
unsigned src_height = MAX(height >> (i - 1), 1);
|
||||||
unsigned target_width = MAX(width >> i, 1);
|
unsigned target_width = MAX(width >> i, 1);
|
||||||
unsigned target_height = MAX(height >> i, 1);
|
unsigned target_height = MAX(height >> i, 1);
|
||||||
memset(&blit_region, 0, sizeof(blit_region));
|
|
||||||
|
|
||||||
blit_region.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
blit_region.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||||
blit_region.srcSubresource.mipLevel = i - 1;
|
blit_region.srcSubresource.mipLevel = i - 1;
|
||||||
blit_region.srcSubresource.baseArrayLayer = 0;
|
blit_region.srcSubresource.baseArrayLayer = 0;
|
||||||
blit_region.srcSubresource.layerCount = 1;
|
blit_region.srcSubresource.layerCount = 1;
|
||||||
blit_region.dstSubresource = blit_region.srcSubresource;
|
blit_region.srcOffsets[0].x = 0;
|
||||||
blit_region.dstSubresource.mipLevel = i;
|
blit_region.srcOffsets[0].y = 0;
|
||||||
|
blit_region.srcOffsets[0].z = 0;
|
||||||
blit_region.srcOffsets[1].x = src_width;
|
blit_region.srcOffsets[1].x = src_width;
|
||||||
blit_region.srcOffsets[1].y = src_height;
|
blit_region.srcOffsets[1].y = src_height;
|
||||||
blit_region.srcOffsets[1].z = 1;
|
blit_region.srcOffsets[1].z = 1;
|
||||||
|
blit_region.dstSubresource = blit_region.srcSubresource;
|
||||||
|
blit_region.dstSubresource.mipLevel = i;
|
||||||
|
blit_region.dstOffsets[0].x = 0;
|
||||||
|
blit_region.dstOffsets[0].y = 0;
|
||||||
|
blit_region.dstOffsets[0].z = 0;
|
||||||
blit_region.dstOffsets[1].x = target_width;
|
blit_region.dstOffsets[1].x = target_width;
|
||||||
blit_region.dstOffsets[1].y = target_height;
|
blit_region.dstOffsets[1].y = target_height;
|
||||||
blit_region.dstOffsets[1].z = 1;
|
blit_region.dstOffsets[1].z = 1;
|
||||||
@ -3648,14 +3660,20 @@ void vulkan_framebuffer_copy(VkImage image,
|
|||||||
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT,
|
||||||
VK_PIPELINE_STAGE_TRANSFER_BIT);
|
VK_PIPELINE_STAGE_TRANSFER_BIT);
|
||||||
|
|
||||||
memset(®ion, 0, sizeof(region));
|
region.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||||
|
region.srcSubresource.mipLevel = 0;
|
||||||
region.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
region.srcSubresource.baseArrayLayer = 0;
|
||||||
region.srcSubresource.layerCount = 1;
|
region.srcSubresource.layerCount = 1;
|
||||||
region.dstSubresource = region.srcSubresource;
|
region.srcOffset.x = 0;
|
||||||
region.extent.width = size.width;
|
region.srcOffset.y = 0;
|
||||||
region.extent.height = size.height;
|
region.srcOffset.z = 0;
|
||||||
region.extent.depth = 1;
|
region.dstSubresource = region.srcSubresource;
|
||||||
|
region.dstOffset.x = 0;
|
||||||
|
region.dstOffset.y = 0;
|
||||||
|
region.dstOffset.z = 0;
|
||||||
|
region.extent.width = size.width;
|
||||||
|
region.extent.height = size.height;
|
||||||
|
region.extent.depth = 1;
|
||||||
|
|
||||||
vkCmdCopyImage(cmd,
|
vkCmdCopyImage(cmd,
|
||||||
src_image, src_layout,
|
src_image, src_layout,
|
||||||
@ -3688,12 +3706,15 @@ void vulkan_framebuffer_clear(VkImage image, VkCommandBuffer cmd)
|
|||||||
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT,
|
||||||
VK_PIPELINE_STAGE_TRANSFER_BIT);
|
VK_PIPELINE_STAGE_TRANSFER_BIT);
|
||||||
|
|
||||||
memset(&color, 0, sizeof(color));
|
color.int32[0] = 0;
|
||||||
memset(&range, 0, sizeof(range));
|
color.int32[1] = 0;
|
||||||
|
color.int32[2] = 0;
|
||||||
range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
color.int32[3] = 0;
|
||||||
range.levelCount = 1;
|
range.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||||
range.layerCount = 1;
|
range.baseMipLevel = 0;
|
||||||
|
range.levelCount = 1;
|
||||||
|
range.baseArrayLayer = 0;
|
||||||
|
range.layerCount = 1;
|
||||||
|
|
||||||
vkCmdClearColorImage(cmd,
|
vkCmdClearColorImage(cmd,
|
||||||
image,
|
image,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user