resource acquire fixes
	
		
			
	
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
					Details
				
			
		
	
				
					
				
			
				
	
				continuous-integration/drone/push Build is passing
				
					Details
				
			
		
	
							parent
							
								
									74112396ec
								
							
						
					
					
						commit
						2ef3c04e8e
					
				|  | @ -833,7 +833,7 @@ typedef struct VulkanSwapchainData | ||||||
| 
 | 
 | ||||||
| 	/* Swapchain images */ | 	/* Swapchain images */ | ||||||
| 	VkExtent2D extent; | 	VkExtent2D extent; | ||||||
| 	VulkanTexture *textures; | 	VulkanTextureContainer *textureContainers; | ||||||
| 	uint32_t imageCount; | 	uint32_t imageCount; | ||||||
| 
 | 
 | ||||||
| 	/* Synchronization primitives */ | 	/* Synchronization primitives */ | ||||||
|  | @ -3695,17 +3695,19 @@ static void VULKAN_INTERNAL_DestroySwapchain( | ||||||
| 	{ | 	{ | ||||||
| 		VULKAN_INTERNAL_RemoveRenderTargetsContainingTexture( | 		VULKAN_INTERNAL_RemoveRenderTargetsContainingTexture( | ||||||
| 			renderer, | 			renderer, | ||||||
| 			&swapchainData->textures[i] | 			swapchainData->textureContainers[i].vulkanTexture | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		renderer->vkDestroyImageView( | 		renderer->vkDestroyImageView( | ||||||
| 			renderer->logicalDevice, | 			renderer->logicalDevice, | ||||||
| 			swapchainData->textures[i].view, | 			swapchainData->textureContainers[i].vulkanTexture->view, | ||||||
| 			NULL | 			NULL | ||||||
| 		); | 		); | ||||||
|  | 
 | ||||||
|  | 		SDL_free(swapchainData->textureContainers[i].vulkanTexture); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	SDL_free(swapchainData->textures); | 	SDL_free(swapchainData->textureContainers); | ||||||
| 
 | 
 | ||||||
| 	renderer->vkDestroySwapchainKHR( | 	renderer->vkDestroySwapchainKHR( | ||||||
| 		renderer->logicalDevice, | 		renderer->logicalDevice, | ||||||
|  | @ -4946,11 +4948,11 @@ static uint8_t VULKAN_INTERNAL_CreateSwapchain( | ||||||
| 		NULL | 		NULL | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	swapchainData->textures = SDL_malloc( | 	swapchainData->textureContainers = SDL_malloc( | ||||||
| 		sizeof(VulkanTexture) * swapchainData->imageCount | 		sizeof(VulkanTextureContainer) * swapchainData->imageCount | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	if (!swapchainData->textures) | 	if (!swapchainData->textureContainers) | ||||||
| 	{ | 	{ | ||||||
| 		SDL_OutOfMemory(); | 		SDL_OutOfMemory(); | ||||||
| 		renderer->vkDestroySurfaceKHR( | 		renderer->vkDestroySurfaceKHR( | ||||||
|  | @ -4985,7 +4987,9 @@ static uint8_t VULKAN_INTERNAL_CreateSwapchain( | ||||||
| 
 | 
 | ||||||
| 	for (i = 0; i < swapchainData->imageCount; i += 1) | 	for (i = 0; i < swapchainData->imageCount; i += 1) | ||||||
| 	{ | 	{ | ||||||
| 		swapchainData->textures[i].image = swapchainImages[i]; | 		swapchainData->textureContainers[i].vulkanTexture = SDL_malloc(sizeof(VulkanTexture)); | ||||||
|  | 
 | ||||||
|  | 		swapchainData->textureContainers[i].vulkanTexture->image = swapchainImages[i]; | ||||||
| 
 | 
 | ||||||
| 		imageViewCreateInfo.image = swapchainImages[i]; | 		imageViewCreateInfo.image = swapchainImages[i]; | ||||||
| 
 | 
 | ||||||
|  | @ -4993,7 +4997,7 @@ static uint8_t VULKAN_INTERNAL_CreateSwapchain( | ||||||
| 			renderer->logicalDevice, | 			renderer->logicalDevice, | ||||||
| 			&imageViewCreateInfo, | 			&imageViewCreateInfo, | ||||||
| 			NULL, | 			NULL, | ||||||
| 			&swapchainData->textures[i].view | 			&swapchainData->textureContainers[i].vulkanTexture->view | ||||||
| 		); | 		); | ||||||
| 
 | 
 | ||||||
| 		if (vulkanResult != VK_SUCCESS) | 		if (vulkanResult != VK_SUCCESS) | ||||||
|  | @ -5004,30 +5008,30 @@ static uint8_t VULKAN_INTERNAL_CreateSwapchain( | ||||||
| 				NULL | 				NULL | ||||||
| 			); | 			); | ||||||
| 			SDL_stack_free(swapchainImages); | 			SDL_stack_free(swapchainImages); | ||||||
| 			SDL_free(swapchainData->textures); | 			SDL_free(swapchainData->textureContainers); | ||||||
| 			SDL_free(swapchainData); | 			SDL_free(swapchainData); | ||||||
| 			LogVulkanResultAsError("vkCreateImageView", vulkanResult); | 			LogVulkanResultAsError("vkCreateImageView", vulkanResult); | ||||||
| 			return 0; | 			return 0; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		swapchainData->textures[i].resourceAccessType = RESOURCE_ACCESS_NONE; | 		swapchainData->textureContainers[i].vulkanTexture->resourceAccessType = RESOURCE_ACCESS_NONE; | ||||||
| 
 | 
 | ||||||
| 		/* Swapchain memory is managed by the driver */ | 		/* Swapchain memory is managed by the driver */ | ||||||
| 		swapchainData->textures[i].usedRegion = NULL; | 		swapchainData->textureContainers[i].vulkanTexture->usedRegion = NULL; | ||||||
| 
 | 
 | ||||||
| 		swapchainData->textures[i].dimensions = swapchainData->extent; | 		swapchainData->textureContainers[i].vulkanTexture->dimensions = swapchainData->extent; | ||||||
| 		swapchainData->textures[i].format = swapchainData->swapchainFormat; | 		swapchainData->textureContainers[i].vulkanTexture->format = swapchainData->swapchainFormat; | ||||||
| 		swapchainData->textures[i].is3D = 0; | 		swapchainData->textureContainers[i].vulkanTexture->is3D = 0; | ||||||
| 		swapchainData->textures[i].isCube = 0; | 		swapchainData->textureContainers[i].vulkanTexture->isCube = 0; | ||||||
| 		swapchainData->textures[i].layerCount = 1; | 		swapchainData->textureContainers[i].vulkanTexture->layerCount = 1; | ||||||
| 		swapchainData->textures[i].levelCount = 1; | 		swapchainData->textureContainers[i].vulkanTexture->levelCount = 1; | ||||||
| 		swapchainData->textures[i].sampleCount = REFRESH_SAMPLECOUNT_1; | 		swapchainData->textureContainers[i].vulkanTexture->sampleCount = REFRESH_SAMPLECOUNT_1; | ||||||
| 		swapchainData->textures[i].usageFlags = | 		swapchainData->textureContainers[i].vulkanTexture->usageFlags = | ||||||
| 			VK_IMAGE_USAGE_TRANSFER_DST_BIT | | 			VK_IMAGE_USAGE_TRANSFER_DST_BIT | | ||||||
| 			VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; | 			VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; | ||||||
| 		swapchainData->textures[i].aspectFlags = VK_IMAGE_ASPECT_COLOR_BIT; | 		swapchainData->textureContainers[i].vulkanTexture->aspectFlags = VK_IMAGE_ASPECT_COLOR_BIT; | ||||||
| 		swapchainData->textures[i].resourceAccessType = RESOURCE_ACCESS_NONE; | 		swapchainData->textureContainers[i].vulkanTexture->resourceAccessType = RESOURCE_ACCESS_NONE; | ||||||
| 		swapchainData->textures[i].msaaTex = NULL; | 		swapchainData->textureContainers[i].vulkanTexture->msaaTex = NULL; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	SDL_stack_free(swapchainImages); | 	SDL_stack_free(swapchainImages); | ||||||
|  | @ -7064,7 +7068,7 @@ static Refresh_Buffer* VULKAN_CreateBuffer( | ||||||
| 	bufferContainer->vulkanBuffer = buffer; | 	bufferContainer->vulkanBuffer = buffer; | ||||||
| 	buffer->container = bufferContainer; | 	buffer->container = bufferContainer; | ||||||
| 
 | 
 | ||||||
| 	return (Refresh_Buffer*) buffer; | 	return (Refresh_Buffer*) bufferContainer; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* Setters */ | /* Setters */ | ||||||
|  | @ -9721,7 +9725,7 @@ static Refresh_Texture* VULKAN_AcquireSwapchainTexture( | ||||||
| 	WindowData *windowData; | 	WindowData *windowData; | ||||||
| 	VulkanSwapchainData *swapchainData; | 	VulkanSwapchainData *swapchainData; | ||||||
| 	VkResult acquireResult = VK_SUCCESS; | 	VkResult acquireResult = VK_SUCCESS; | ||||||
| 	VulkanTexture *swapchainTexture = NULL; | 	VulkanTextureContainer *swapchainTextureContainer = NULL; | ||||||
| 	VulkanPresentData *presentData; | 	VulkanPresentData *presentData; | ||||||
| 
 | 
 | ||||||
| 	windowData = VULKAN_INTERNAL_FetchWindowData(windowHandle); | 	windowData = VULKAN_INTERNAL_FetchWindowData(windowHandle); | ||||||
|  | @ -9784,7 +9788,7 @@ static Refresh_Texture* VULKAN_AcquireSwapchainTexture( | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	swapchainTexture = &swapchainData->textures[swapchainImageIndex]; | 	swapchainTextureContainer = &swapchainData->textureContainers[swapchainImageIndex]; | ||||||
| 
 | 
 | ||||||
| 	VULKAN_INTERNAL_ImageMemoryBarrier( | 	VULKAN_INTERNAL_ImageMemoryBarrier( | ||||||
| 		renderer, | 		renderer, | ||||||
|  | @ -9796,8 +9800,8 @@ static Refresh_Texture* VULKAN_AcquireSwapchainTexture( | ||||||
| 		0, | 		0, | ||||||
| 		1, | 		1, | ||||||
| 		0, | 		0, | ||||||
| 		swapchainTexture->image, | 		swapchainTextureContainer->vulkanTexture->image, | ||||||
| 		&swapchainTexture->resourceAccessType | 		&swapchainTextureContainer->vulkanTexture->resourceAccessType | ||||||
| 	); | 	); | ||||||
| 
 | 
 | ||||||
| 	/* Set up present struct */ | 	/* Set up present struct */ | ||||||
|  | @ -9846,7 +9850,7 @@ static Refresh_Texture* VULKAN_AcquireSwapchainTexture( | ||||||
| 	*pWidth = swapchainData->extent.width; | 	*pWidth = swapchainData->extent.width; | ||||||
| 	*pHeight = swapchainData->extent.height; | 	*pHeight = swapchainData->extent.height; | ||||||
| 
 | 
 | ||||||
| 	return (Refresh_Texture*) swapchainTexture; | 	return (Refresh_Texture*) swapchainTextureContainer; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static Refresh_TextureFormat VULKAN_GetSwapchainFormat( | static Refresh_TextureFormat VULKAN_GetSwapchainFormat( | ||||||
|  | @ -10228,8 +10232,8 @@ static void VULKAN_Submit( | ||||||
| 				0, | 				0, | ||||||
| 				1, | 				1, | ||||||
| 				0, | 				0, | ||||||
| 				currentCommandBuffer->presentDatas[j].windowData->swapchainData->textures[swapchainImageIndex].image, | 				currentCommandBuffer->presentDatas[j].windowData->swapchainData->textureContainers[swapchainImageIndex].vulkanTexture->image, | ||||||
| 				¤tCommandBuffer->presentDatas[j].windowData->swapchainData->textures[swapchainImageIndex].resourceAccessType | 				¤tCommandBuffer->presentDatas[j].windowData->swapchainData->textureContainers[swapchainImageIndex].vulkanTexture->resourceAccessType | ||||||
| 			); | 			); | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue