partially revert memory barrier change
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
2db60e5ab0
commit
3741a95cb3
|
@ -1356,6 +1356,9 @@ typedef struct VulkanCommandBuffer
|
||||||
VulkanComputePipeline *currentComputePipeline;
|
VulkanComputePipeline *currentComputePipeline;
|
||||||
VulkanGraphicsPipeline *currentGraphicsPipeline;
|
VulkanGraphicsPipeline *currentGraphicsPipeline;
|
||||||
|
|
||||||
|
VulkanRenderTarget *renderPassColorTargets[MAX_COLOR_TARGET_BINDINGS];
|
||||||
|
uint32_t renderPassColorTargetCount;
|
||||||
|
|
||||||
VulkanUniformBuffer *vertexUniformBuffer;
|
VulkanUniformBuffer *vertexUniformBuffer;
|
||||||
VulkanUniformBuffer *fragmentUniformBuffer;
|
VulkanUniformBuffer *fragmentUniformBuffer;
|
||||||
VulkanUniformBuffer *computeUniformBuffer;
|
VulkanUniformBuffer *computeUniformBuffer;
|
||||||
|
@ -7034,20 +7037,6 @@ static void VULKAN_BindVertexSamplers(
|
||||||
descriptorImageInfos[i].imageView = currentTexture->view;
|
descriptorImageInfos[i].imageView = currentTexture->view;
|
||||||
descriptorImageInfos[i].sampler = (VkSampler) pSamplers[i];
|
descriptorImageInfos[i].sampler = (VkSampler) pSamplers[i];
|
||||||
descriptorImageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
descriptorImageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
||||||
|
|
||||||
VULKAN_INTERNAL_ImageMemoryBarrier(
|
|
||||||
renderer,
|
|
||||||
vulkanCommandBuffer->commandBuffer,
|
|
||||||
RESOURCE_ACCESS_VERTEX_SHADER_READ_SAMPLED_IMAGE,
|
|
||||||
VK_IMAGE_ASPECT_COLOR_BIT,
|
|
||||||
0,
|
|
||||||
currentTexture->layerCount,
|
|
||||||
0,
|
|
||||||
currentTexture->levelCount,
|
|
||||||
0,
|
|
||||||
currentTexture->image,
|
|
||||||
¤tTexture->resourceAccessType
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
vulkanCommandBuffer->vertexSamplerDescriptorSet = VULKAN_INTERNAL_FetchDescriptorSet(
|
vulkanCommandBuffer->vertexSamplerDescriptorSet = VULKAN_INTERNAL_FetchDescriptorSet(
|
||||||
|
@ -7086,20 +7075,6 @@ static void VULKAN_BindFragmentSamplers(
|
||||||
descriptorImageInfos[i].imageView = currentTexture->view;
|
descriptorImageInfos[i].imageView = currentTexture->view;
|
||||||
descriptorImageInfos[i].sampler = (VkSampler) pSamplers[i];
|
descriptorImageInfos[i].sampler = (VkSampler) pSamplers[i];
|
||||||
descriptorImageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
descriptorImageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
|
||||||
|
|
||||||
VULKAN_INTERNAL_ImageMemoryBarrier(
|
|
||||||
renderer,
|
|
||||||
vulkanCommandBuffer->commandBuffer,
|
|
||||||
RESOURCE_ACCESS_FRAGMENT_SHADER_READ_SAMPLED_IMAGE,
|
|
||||||
VK_IMAGE_ASPECT_COLOR_BIT,
|
|
||||||
0,
|
|
||||||
currentTexture->layerCount,
|
|
||||||
0,
|
|
||||||
currentTexture->levelCount,
|
|
||||||
0,
|
|
||||||
currentTexture->image,
|
|
||||||
¤tTexture->resourceAccessType
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
vulkanCommandBuffer->fragmentSamplerDescriptorSet = VULKAN_INTERNAL_FetchDescriptorSet(
|
vulkanCommandBuffer->fragmentSamplerDescriptorSet = VULKAN_INTERNAL_FetchDescriptorSet(
|
||||||
|
@ -7682,6 +7657,13 @@ static void VULKAN_BeginRenderPass(
|
||||||
vulkanCommandBuffer->renderPassInProgress = 1;
|
vulkanCommandBuffer->renderPassInProgress = 1;
|
||||||
|
|
||||||
SDL_stack_free(clearValues);
|
SDL_stack_free(clearValues);
|
||||||
|
|
||||||
|
for (i = 0; i < colorAttachmentCount; i += 1)
|
||||||
|
{
|
||||||
|
vulkanCommandBuffer->renderPassColorTargets[i] =
|
||||||
|
(VulkanRenderTarget*) colorAttachmentInfos[i].pRenderTarget;
|
||||||
|
}
|
||||||
|
vulkanCommandBuffer->renderPassColorTargetCount = colorAttachmentCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void VULKAN_EndRenderPass(
|
static void VULKAN_EndRenderPass(
|
||||||
|
@ -7690,6 +7672,8 @@ static void VULKAN_EndRenderPass(
|
||||||
) {
|
) {
|
||||||
VulkanRenderer* renderer = (VulkanRenderer*) driverData;
|
VulkanRenderer* renderer = (VulkanRenderer*) driverData;
|
||||||
VulkanCommandBuffer *vulkanCommandBuffer = (VulkanCommandBuffer*) commandBuffer;
|
VulkanCommandBuffer *vulkanCommandBuffer = (VulkanCommandBuffer*) commandBuffer;
|
||||||
|
VulkanTexture *currentTexture;
|
||||||
|
uint32_t i;
|
||||||
|
|
||||||
renderer->vkCmdEndRenderPass(
|
renderer->vkCmdEndRenderPass(
|
||||||
vulkanCommandBuffer->commandBuffer
|
vulkanCommandBuffer->commandBuffer
|
||||||
|
@ -7713,8 +7697,32 @@ static void VULKAN_EndRenderPass(
|
||||||
vulkanCommandBuffer->fragmentUniformBuffer
|
vulkanCommandBuffer->fragmentUniformBuffer
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
vulkanCommandBuffer->fragmentUniformBuffer = NULL;
|
vulkanCommandBuffer->fragmentUniformBuffer = NULL;
|
||||||
|
|
||||||
|
/* If the render targets can be sampled, transition them to sample layout */
|
||||||
|
for (i = 0; i < vulkanCommandBuffer->renderPassColorTargetCount; i += 1)
|
||||||
|
{
|
||||||
|
currentTexture = vulkanCommandBuffer->renderPassColorTargets[i]->texture;
|
||||||
|
|
||||||
|
if (currentTexture->usageFlags & VK_IMAGE_USAGE_SAMPLED_BIT)
|
||||||
|
{
|
||||||
|
VULKAN_INTERNAL_ImageMemoryBarrier(
|
||||||
|
renderer,
|
||||||
|
vulkanCommandBuffer->commandBuffer,
|
||||||
|
RESOURCE_ACCESS_ANY_SHADER_READ_SAMPLED_IMAGE,
|
||||||
|
VK_IMAGE_ASPECT_COLOR_BIT,
|
||||||
|
0,
|
||||||
|
currentTexture->layerCount,
|
||||||
|
0,
|
||||||
|
currentTexture->levelCount,
|
||||||
|
0,
|
||||||
|
currentTexture->image,
|
||||||
|
¤tTexture->resourceAccessType
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
vulkanCommandBuffer->renderPassColorTargetCount = 0;
|
||||||
|
|
||||||
vulkanCommandBuffer->currentGraphicsPipeline = NULL;
|
vulkanCommandBuffer->currentGraphicsPipeline = NULL;
|
||||||
vulkanCommandBuffer->renderPassInProgress = 0;
|
vulkanCommandBuffer->renderPassInProgress = 0;
|
||||||
}
|
}
|
||||||
|
@ -8251,7 +8259,9 @@ static Refresh_CommandBuffer* VULKAN_AcquireCommandBuffer(
|
||||||
commandBuffer->fixed = fixed;
|
commandBuffer->fixed = fixed;
|
||||||
commandBuffer->submitted = 0;
|
commandBuffer->submitted = 0;
|
||||||
commandBuffer->present = 0;
|
commandBuffer->present = 0;
|
||||||
|
|
||||||
commandBuffer->renderPassInProgress = 0;
|
commandBuffer->renderPassInProgress = 0;
|
||||||
|
commandBuffer->renderPassColorTargetCount = 0;
|
||||||
|
|
||||||
VULKAN_INTERNAL_BeginCommandBuffer(renderer, commandBuffer);
|
VULKAN_INTERNAL_BeginCommandBuffer(renderer, commandBuffer);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue