Re: [Mesa-dev] [PATCH v2] radv/winsys: make use of radeon_emit()

2018-07-05 Thread Bas Nieuwenhuizen
Reviewed-by: Bas Nieuwenhuizen 

On Thu, Jul 5, 2018 at 5:07 PM, Samuel Pitoiset
 wrote:
> v2: - do not use it in the chained path (because cdw isn't incremented)
>
> Signed-off-by: Samuel Pitoiset 
> ---
>  src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 23 ++-
>  1 file changed, 12 insertions(+), 11 deletions(-)
>
> diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c 
> b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
> index 848e81924f..2741fc0f3b 100644
> --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
> +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
> @@ -355,7 +355,7 @@ static void radv_amdgpu_cs_grow(struct radeon_cmdbuf 
> *_cs, size_t min_size)
> ib_size = MIN2(ib_size, 0xf);
>
> while (!cs->base.cdw || (cs->base.cdw & 7) != 4)
> -   cs->base.buf[cs->base.cdw++] = 0x1000;
> +   radeon_emit(>base, 0x1000);
>
> *cs->ib_size_ptr |= cs->base.cdw + 4;
>
> @@ -389,11 +389,12 @@ static void radv_amdgpu_cs_grow(struct radeon_cmdbuf 
> *_cs, size_t min_size)
>
> cs->ws->base.cs_add_buffer(>base, cs->ib_buffer, 8);
>
> -   cs->base.buf[cs->base.cdw++] = PKT3(PKT3_INDIRECT_BUFFER_CIK, 2, 0);
> -   cs->base.buf[cs->base.cdw++] = 
> radv_amdgpu_winsys_bo(cs->ib_buffer)->base.va;
> -   cs->base.buf[cs->base.cdw++] = 
> radv_amdgpu_winsys_bo(cs->ib_buffer)->base.va >> 32;
> -   cs->ib_size_ptr = cs->base.buf + cs->base.cdw;
> -   cs->base.buf[cs->base.cdw++] = S_3F2_CHAIN(1) | S_3F2_VALID(1);
> +   radeon_emit(>base, PKT3(PKT3_INDIRECT_BUFFER_CIK, 2, 0));
> +   radeon_emit(>base, radv_amdgpu_winsys_bo(cs->ib_buffer)->base.va);
> +   radeon_emit(>base, radv_amdgpu_winsys_bo(cs->ib_buffer)->base.va 
> >> 32);
> +   radeon_emit(>base, S_3F2_CHAIN(1) | S_3F2_VALID(1));
> +
> +   cs->ib_size_ptr = cs->base.buf + cs->base.cdw - 1;
>
> cs->base.buf = (uint32_t *)cs->ib_mapped;
> cs->base.cdw = 0;
> @@ -407,7 +408,7 @@ static bool radv_amdgpu_cs_finalize(struct radeon_cmdbuf 
> *_cs)
>
> if (cs->ws->use_ib_bos) {
> while (!cs->base.cdw || (cs->base.cdw & 7) != 0)
> -   cs->base.buf[cs->base.cdw++] = 0x1000;
> +   radeon_emit(>base, 0x1000);
>
> *cs->ib_size_ptr |= cs->base.cdw;
>
> @@ -590,10 +591,10 @@ static void radv_amdgpu_cs_execute_secondary(struct 
> radeon_cmdbuf *_parent,
> if (parent->base.cdw + 4 > parent->base.max_dw)
> radv_amdgpu_cs_grow(>base, 4);
>
> -   parent->base.buf[parent->base.cdw++] = 
> PKT3(PKT3_INDIRECT_BUFFER_CIK, 2, 0);
> -   parent->base.buf[parent->base.cdw++] = 
> child->ib.ib_mc_address;
> -   parent->base.buf[parent->base.cdw++] = 
> child->ib.ib_mc_address >> 32;
> -   parent->base.buf[parent->base.cdw++] = child->ib.size;
> +   radeon_emit(>base, PKT3(PKT3_INDIRECT_BUFFER_CIK, 2, 
> 0));
> +   radeon_emit(>base, child->ib.ib_mc_address);
> +   radeon_emit(>base, child->ib.ib_mc_address >> 32);
> +   radeon_emit(>base, child->ib.size);
> } else {
> if (parent->base.cdw + child->base.cdw > parent->base.max_dw)
> radv_amdgpu_cs_grow(>base, child->base.cdw);
> --
> 2.18.0
>
> ___
> 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 v2] radv/winsys: make use of radeon_emit()

2018-07-05 Thread Samuel Pitoiset
v2: - do not use it in the chained path (because cdw isn't incremented)

Signed-off-by: Samuel Pitoiset 
---
 src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c | 23 ++-
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c 
b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
index 848e81924f..2741fc0f3b 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_cs.c
@@ -355,7 +355,7 @@ static void radv_amdgpu_cs_grow(struct radeon_cmdbuf *_cs, 
size_t min_size)
ib_size = MIN2(ib_size, 0xf);
 
while (!cs->base.cdw || (cs->base.cdw & 7) != 4)
-   cs->base.buf[cs->base.cdw++] = 0x1000;
+   radeon_emit(>base, 0x1000);
 
*cs->ib_size_ptr |= cs->base.cdw + 4;
 
@@ -389,11 +389,12 @@ static void radv_amdgpu_cs_grow(struct radeon_cmdbuf 
*_cs, size_t min_size)
 
cs->ws->base.cs_add_buffer(>base, cs->ib_buffer, 8);
 
-   cs->base.buf[cs->base.cdw++] = PKT3(PKT3_INDIRECT_BUFFER_CIK, 2, 0);
-   cs->base.buf[cs->base.cdw++] = 
radv_amdgpu_winsys_bo(cs->ib_buffer)->base.va;
-   cs->base.buf[cs->base.cdw++] = 
radv_amdgpu_winsys_bo(cs->ib_buffer)->base.va >> 32;
-   cs->ib_size_ptr = cs->base.buf + cs->base.cdw;
-   cs->base.buf[cs->base.cdw++] = S_3F2_CHAIN(1) | S_3F2_VALID(1);
+   radeon_emit(>base, PKT3(PKT3_INDIRECT_BUFFER_CIK, 2, 0));
+   radeon_emit(>base, radv_amdgpu_winsys_bo(cs->ib_buffer)->base.va);
+   radeon_emit(>base, radv_amdgpu_winsys_bo(cs->ib_buffer)->base.va >> 
32);
+   radeon_emit(>base, S_3F2_CHAIN(1) | S_3F2_VALID(1));
+
+   cs->ib_size_ptr = cs->base.buf + cs->base.cdw - 1;
 
cs->base.buf = (uint32_t *)cs->ib_mapped;
cs->base.cdw = 0;
@@ -407,7 +408,7 @@ static bool radv_amdgpu_cs_finalize(struct radeon_cmdbuf 
*_cs)
 
if (cs->ws->use_ib_bos) {
while (!cs->base.cdw || (cs->base.cdw & 7) != 0)
-   cs->base.buf[cs->base.cdw++] = 0x1000;
+   radeon_emit(>base, 0x1000);
 
*cs->ib_size_ptr |= cs->base.cdw;
 
@@ -590,10 +591,10 @@ static void radv_amdgpu_cs_execute_secondary(struct 
radeon_cmdbuf *_parent,
if (parent->base.cdw + 4 > parent->base.max_dw)
radv_amdgpu_cs_grow(>base, 4);
 
-   parent->base.buf[parent->base.cdw++] = 
PKT3(PKT3_INDIRECT_BUFFER_CIK, 2, 0);
-   parent->base.buf[parent->base.cdw++] = child->ib.ib_mc_address;
-   parent->base.buf[parent->base.cdw++] = child->ib.ib_mc_address 
>> 32;
-   parent->base.buf[parent->base.cdw++] = child->ib.size;
+   radeon_emit(>base, PKT3(PKT3_INDIRECT_BUFFER_CIK, 2, 
0));
+   radeon_emit(>base, child->ib.ib_mc_address);
+   radeon_emit(>base, child->ib.ib_mc_address >> 32);
+   radeon_emit(>base, child->ib.size);
} else {
if (parent->base.cdw + child->base.cdw > parent->base.max_dw)
radv_amdgpu_cs_grow(>base, child->base.cdw);
-- 
2.18.0

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