Re: [Mesa-dev] [PATCH 2/2] radv: ignore subpass self-dependencies for CreateRenderPass() too

2018-11-23 Thread Bas Nieuwenhuizen
Reviewed-by: Bas Nieuwenhuizen 

for both.
On Fri, Nov 23, 2018 at 9:45 AM Samuel Pitoiset
 wrote:
>
> We really need to refactor this...
>
> Signed-off-by: Samuel Pitoiset 
> ---
>  src/amd/vulkan/radv_pass.c | 10 ++
>  1 file changed, 10 insertions(+)
>
> diff --git a/src/amd/vulkan/radv_pass.c b/src/amd/vulkan/radv_pass.c
> index f8e5ea40954..b41ae89deec 100644
> --- a/src/amd/vulkan/radv_pass.c
> +++ b/src/amd/vulkan/radv_pass.c
> @@ -180,7 +180,17 @@ VkResult radv_CreateRenderPass(
> }
>
> for (unsigned i = 0; i < pCreateInfo->dependencyCount; ++i) {
> +   uint32_t src = pCreateInfo->pDependencies[i].srcSubpass;
> uint32_t dst = pCreateInfo->pDependencies[i].dstSubpass;
> +
> +   /* Ignore subpass self-dependencies as they allow the app to
> +* call vkCmdPipelineBarrier() inside the render pass and the
> +* driver should only do the barrier when called, not when
> +* starting the render pass.
> +*/
> +   if (src == dst)
> +   continue;
> +
> if (dst == VK_SUBPASS_EXTERNAL) {
> pass->end_barrier.src_stage_mask = 
> pCreateInfo->pDependencies[i].srcStageMask;
> pass->end_barrier.src_access_mask = 
> pCreateInfo->pDependencies[i].srcAccessMask;
> --
> 2.19.1
>
> ___
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


[Mesa-dev] [PATCH 2/2] radv: ignore subpass self-dependencies for CreateRenderPass() too

2018-11-23 Thread Samuel Pitoiset
We really need to refactor this...

Signed-off-by: Samuel Pitoiset 
---
 src/amd/vulkan/radv_pass.c | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/src/amd/vulkan/radv_pass.c b/src/amd/vulkan/radv_pass.c
index f8e5ea40954..b41ae89deec 100644
--- a/src/amd/vulkan/radv_pass.c
+++ b/src/amd/vulkan/radv_pass.c
@@ -180,7 +180,17 @@ VkResult radv_CreateRenderPass(
}
 
for (unsigned i = 0; i < pCreateInfo->dependencyCount; ++i) {
+   uint32_t src = pCreateInfo->pDependencies[i].srcSubpass;
uint32_t dst = pCreateInfo->pDependencies[i].dstSubpass;
+
+   /* Ignore subpass self-dependencies as they allow the app to
+* call vkCmdPipelineBarrier() inside the render pass and the
+* driver should only do the barrier when called, not when
+* starting the render pass.
+*/
+   if (src == dst)
+   continue;
+
if (dst == VK_SUBPASS_EXTERNAL) {
pass->end_barrier.src_stage_mask = 
pCreateInfo->pDependencies[i].srcStageMask;
pass->end_barrier.src_access_mask = 
pCreateInfo->pDependencies[i].srcAccessMask;
-- 
2.19.1

___
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev