rotate uniform buffer if we run out of space
							parent
							
								
									1eb749ed10
								
							
						
					
					
						commit
						38ff5af448
					
				|  | @ -3381,7 +3381,6 @@ static void VULKAN_INTERNAL_CreateUniformBuffer( | ||||||
| 	writeDescriptorSet.pImageInfo = NULL; | 	writeDescriptorSet.pImageInfo = NULL; | ||||||
| 	writeDescriptorSet.pTexelBufferView = NULL; | 	writeDescriptorSet.pTexelBufferView = NULL; | ||||||
| 
 | 
 | ||||||
| 	/* FIXME: this needs a lock */ |  | ||||||
| 	renderer->vkUpdateDescriptorSets( | 	renderer->vkUpdateDescriptorSets( | ||||||
| 		renderer->logicalDevice, | 		renderer->logicalDevice, | ||||||
| 		1, | 		1, | ||||||
|  | @ -6900,9 +6899,13 @@ static uint32_t VULKAN_PushVertexShaderUniforms( | ||||||
| 		graphicsPipeline->vertexUniformBlockSize >= | 		graphicsPipeline->vertexUniformBlockSize >= | ||||||
| 		UBO_BUFFER_SIZE | 		UBO_BUFFER_SIZE | ||||||
| 	) { | 	) { | ||||||
| 		/* FIXME: rotate another UBO in */ | 		/* We're out of space in this buffer, bind the old one and acquire a new one */ | ||||||
| 		Refresh_LogError("Vertex UBO overflow!"); | 		VULKAN_INTERNAL_BindUniformBuffer(vulkanCommandBuffer->vertexUniformBuffer); | ||||||
| 		return 0; | 		vulkanCommandBuffer->vertexUniformBuffer = VULKAN_INTERNAL_AcquireUniformBufferFromPool( | ||||||
|  | 			renderer, | ||||||
|  | 			renderer->vertexUniformBufferPool, | ||||||
|  | 			graphicsPipeline->vertexUniformBlockSize | ||||||
|  | 		); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	offset = vulkanCommandBuffer->vertexUniformBuffer->offset; | 	offset = vulkanCommandBuffer->vertexUniformBuffer->offset; | ||||||
|  | @ -6948,9 +6951,13 @@ static uint32_t VULKAN_PushFragmentShaderUniforms( | ||||||
| 		graphicsPipeline->fragmentUniformBlockSize >= | 		graphicsPipeline->fragmentUniformBlockSize >= | ||||||
| 		UBO_BUFFER_SIZE | 		UBO_BUFFER_SIZE | ||||||
| 	) { | 	) { | ||||||
| 		/* FIXME: rotate another UBO in */ | 		/* We're out of space in this buffer, bind the old one and acquire a new one */ | ||||||
| 		Refresh_LogError("Fragment UBO overflow!"); | 		VULKAN_INTERNAL_BindUniformBuffer(vulkanCommandBuffer->fragmentUniformBuffer); | ||||||
| 		return 0; | 		vulkanCommandBuffer->fragmentUniformBuffer = VULKAN_INTERNAL_AcquireUniformBufferFromPool( | ||||||
|  | 			renderer, | ||||||
|  | 			renderer->fragmentUniformBufferPool, | ||||||
|  | 			graphicsPipeline->fragmentUniformBlockSize | ||||||
|  | 		); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	offset = vulkanCommandBuffer->fragmentUniformBuffer->offset; | 	offset = vulkanCommandBuffer->fragmentUniformBuffer->offset; | ||||||
|  | @ -6995,9 +7002,13 @@ static uint32_t VULKAN_PushComputeShaderUniforms( | ||||||
| 		computePipeline->uniformBlockSize >= | 		computePipeline->uniformBlockSize >= | ||||||
| 		UBO_BUFFER_SIZE | 		UBO_BUFFER_SIZE | ||||||
| 	) { | 	) { | ||||||
| 		/* FIXME: rotate a new uniform buffer in */ | 		/* We're out of space in this buffer, bind the old one and acquire a new one */ | ||||||
| 		Refresh_LogError("Compute UBO overflow!"); | 		VULKAN_INTERNAL_BindUniformBuffer(vulkanCommandBuffer->computeUniformBuffer); | ||||||
| 		return 0; | 		vulkanCommandBuffer->computeUniformBuffer = VULKAN_INTERNAL_AcquireUniformBufferFromPool( | ||||||
|  | 			renderer, | ||||||
|  | 			renderer->computeUniformBufferPool, | ||||||
|  | 			computePipeline->uniformBlockSize | ||||||
|  | 		); | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	offset = vulkanCommandBuffer->computeUniformBuffer->offset; | 	offset = vulkanCommandBuffer->computeUniformBuffer->offset; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue