Vulkan Skybox not filling entire faces

Here’s the situation.
It’s actually quite simple (not for me).
I have six different images that together compose a skybox.
I’ve successfully copied each of the six images to a six layer Image.
But the height of the skybox images are different from each other.
So when I render the skybox, there are black areas within them.
Also when creating the six image layer image I already tell vulkan the width and height of each layer( they are equal for all layers) . I thought that a sampler would clamp the image to edge. But that’s not really happening. How do I make sky box face image fill the entire six layered image I created?

Since the six layerd image is bigger than the images extent, How do I clamp the skybox images to the six layered images extent.

If I understand the situation correctly, you would just make them same size with vkCmdBlitImage.

thank you it seems to be the case.

hmm.
Could please check my implementation that uses VkCmdBlitImage.
apparently the images are not being copied.

for (int i = 0; i < 6; i++) {

	tcreatetextureImage(imagesFile[i], &images[i].image, &images[i].imageMemory, format);
	images[i].imageView = tcreateImageView(images[i].image, format, VK_IMAGE_ASPECT_COLOR_BIT);

	//createHostVisibleImage(imagesFile[i], &buffers[i].buffer, &buffers[i].bufferMemory);

	transitionImageLayout(images[i].image,
		format,
		VK_IMAGE_LAYOUT_UNDEFINED,
		VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
		1,
		0);
	VkImageBlit blit = {};


	int width, height;
	getImageExtent(imagesFile[i], &width, &height);


	blit.srcOffsets[0].x = 0;
	blit.srcOffsets[1].x = width;

	blit.srcOffsets[0].y = 0;
	blit.srcOffsets[1].y = height;

	blit.srcOffsets[0].z = 0 ;
	blit.srcOffsets[1].z = 1;



	blit.dstOffsets[0].x = 0;
	blit.dstOffsets[1].x = 1600;

	blit.dstOffsets[0].y = 0;
	blit.dstOffsets[1].y = 1600;

	blit.dstOffsets[0].z = 0;
	blit.dstOffsets[1].z = 1;


	blit.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
	blit.dstSubresource.baseArrayLayer = i;
	blit.dstSubresource.mipLevel = 0;
	blit.dstSubresource.layerCount = 1;

	blit.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
	blit.srcSubresource.baseArrayLayer = 0;
	blit.srcSubresource.mipLevel = 0;
	blit.srcSubresource.layerCount = 1;






	

	transitionImageLayout(cubeMap->image,
		format,
		VK_IMAGE_LAYOUT_UNDEFINED,
		VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
		1,
		i);

	VkFilter filter = VK_FILTER_NEAREST;


	VkCommandBuffer cmd = beginSingleTimeCommandBuffer();
	
	vkCmdBlitImage(cmd,
		images[i].image, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
		cubeMap->image, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
		1, &blit, filter);


		endCommandBuffer(cmd);
}

Possibly lacks synchronization.