Re: [Mesa-dev] [PATCH v3 4/8] radeon/uvd:add uvd hevc enc hw ib implementation

2018-02-13 Thread James Zhu



On 2018-02-10 11:20 AM, Mark Thompson wrote:

On 09/02/18 20:35, James Zhu wrote:

Implement required IBs for UVD HEVC encode.

Signed-off-by: James Zhu 
---
  src/gallium/drivers/radeon/radeon_uvd_enc_1_1.c | 1115 +++
  1 file changed, 1115 insertions(+)
  create mode 100644 src/gallium/drivers/radeon/radeon_uvd_enc_1_1.c

diff --git a/src/gallium/drivers/radeon/radeon_uvd_enc_1_1.c 
b/src/gallium/drivers/radeon/radeon_uvd_enc_1_1.c
new file mode 100644
index 000..2b8156e
--- /dev/null
+++ b/src/gallium/drivers/radeon/radeon_uvd_enc_1_1.c
@@ -0,0 +1,1115 @@
...
+
+static void
+radeon_uvd_enc_emulation_prevention(struct radeon_uvd_encoder *enc,
+unsigned char byte)
+{
+   if (enc->emulation_prevention) {
+  if ((enc->num_zeros >= 2)
+  && ((byte == 0x00) || (byte == 0x01) || (byte == 0x03))) {

Shouldn't { 0, 0, 2 } also trigger emulation prevention?  Or am I not 
understanding what this function does?


Hi, Mark,
You are right. should add 00 00 02 case.
pls check the update in PATCH v5 4/8
Thanks! James

+ radeon_uvd_enc_output_one_byte(enc, 0x03);
+ enc->bits_output += 8;
+ enc->num_zeros = 0;
+  }
+  enc->num_zeros = (byte == 0 ? (enc->num_zeros + 1) : 0);
+   }
+}
+
...

Thanks,

- Mark


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


Re: [Mesa-dev] [PATCH v3 4/8] radeon/uvd:add uvd hevc enc hw ib implementation

2018-02-10 Thread Mark Thompson
On 09/02/18 20:35, James Zhu wrote:
> Implement required IBs for UVD HEVC encode.
> 
> Signed-off-by: James Zhu 
> ---
>  src/gallium/drivers/radeon/radeon_uvd_enc_1_1.c | 1115 
> +++
>  1 file changed, 1115 insertions(+)
>  create mode 100644 src/gallium/drivers/radeon/radeon_uvd_enc_1_1.c
> 
> diff --git a/src/gallium/drivers/radeon/radeon_uvd_enc_1_1.c 
> b/src/gallium/drivers/radeon/radeon_uvd_enc_1_1.c
> new file mode 100644
> index 000..2b8156e
> --- /dev/null
> +++ b/src/gallium/drivers/radeon/radeon_uvd_enc_1_1.c
> @@ -0,0 +1,1115 @@
> ...
> +
> +static void
> +radeon_uvd_enc_emulation_prevention(struct radeon_uvd_encoder *enc,
> +unsigned char byte)
> +{
> +   if (enc->emulation_prevention) {
> +  if ((enc->num_zeros >= 2)
> +  && ((byte == 0x00) || (byte == 0x01) || (byte == 0x03))) {

Shouldn't { 0, 0, 2 } also trigger emulation prevention?  Or am I not 
understanding what this function does?

> + radeon_uvd_enc_output_one_byte(enc, 0x03);
> + enc->bits_output += 8;
> + enc->num_zeros = 0;
> +  }
> +  enc->num_zeros = (byte == 0 ? (enc->num_zeros + 1) : 0);
> +   }
> +}
> +
> ...

Thanks,

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