OSDN Git Service

android-x86/hardware-intel-common-vaapi.git
6 years agoh264: fix null shader generation
Sebastian Ramacher [Thu, 5 Oct 2017 22:25:55 +0000 (00:25 +0200)]
h264: fix null shader generation

Signed-off-by: Sebastian Ramacher <sramacher@debian.org>
6 years agoMerge branch 'v2.0-branch' into master
Xiang, Haihao [Tue, 24 Oct 2017 07:19:39 +0000 (15:19 +0800)]
Merge branch 'v2.0-branch' into master

Conflicts:
configure.ac

6 years agointel-vaapi-driver 2.0.0
Xiang, Haihao [Sat, 21 Oct 2017 04:55:59 +0000 (12:55 +0800)]
intel-vaapi-driver 2.0.0

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agotest/streamables: use new vaStr methods when appropriate
U. Artie Eoff [Wed, 18 Oct 2017 02:13:14 +0000 (19:13 -0700)]
test/streamables: use new vaStr methods when appropriate

New vaStr methods were added in libva 2.0.

Fixes #273

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6 years agointel-vaapi-driver 2.0.0.pre3
Xiang, Haihao [Fri, 13 Oct 2017 17:32:42 +0000 (01:32 +0800)]
intel-vaapi-driver 2.0.0.pre3

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoChange the vertical alignment for linear surface
Xiang, Haihao [Wed, 30 Aug 2017 07:26:25 +0000 (15:26 +0800)]
Change the vertical alignment for linear surface

The memory is allocated together for planar YUV, but we may use
Y, U, V surfaces for 3-plane YUV or Y, UV surfaces for 2-plane YUV
separately, e.g. a NV12 surface is taken as 2 separate surfaces by
the implemetation of vaPutSurface() in the driver. The memory format
for each surface is either linear or tiled. In the past we thought linear
surface requires 4K aligned surface base address, like as tiled surface,
so we set the alighment for height to 16. Actually linear surface only
requires base address is naturally-aligned to the element size. In
addition, some operations in the driver requires surface height is a
multiple of 4. so we can set the alignment for height to 4 for linear
surface.

In addition, it is wrong to check whether surface height is aligned to 16

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
(cherry picked from commit c8f2493fd870438c3b7b1c269ca95ef334ed094a)

6 years agoRemove some unused static tables
Mark Thompson [Sun, 8 Oct 2017 15:28:23 +0000 (16:28 +0100)]
Remove some unused static tables

Also fix a minor infelicity highlighted by astyle.

6 years agoRemove unused variable
Mark Thompson [Sun, 1 Oct 2017 14:54:22 +0000 (15:54 +0100)]
Remove unused variable

The last reference to it was removed in c408627e.

Signed-off-by: Mark Thompson <sw@jkqxz.net>
6 years agoChange the vertical alignment for linear surface
Xiang, Haihao [Wed, 30 Aug 2017 07:26:25 +0000 (15:26 +0800)]
Change the vertical alignment for linear surface

The memory is allocated together for planar YUV, but we may use
Y, U, V surfaces for 3-plane YUV or Y, UV surfaces for 2-plane YUV
separately, e.g. a NV12 surface is taken as 2 separate surfaces by
the implemetation of vaPutSurface() in the driver. The memory format
for each surface is either linear or tiled. In the past we thought linear
surface requires 4K aligned surface base address, like as tiled surface,
so we set the alighment for height to 16. Actually linear surface only
requires base address is naturally-aligned to the element size. In
addition, some operations in the driver requires surface height is a
multiple of 4. so we can set the alignment for height to 4 for linear
surface.

In addition, it is wrong to check whether surface height is aligned to 16

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agointel-vaapi-driver 2.0.0.pre2
Xiang, Haihao [Fri, 29 Sep 2017 06:56:49 +0000 (14:56 +0800)]
intel-vaapi-driver 2.0.0.pre2

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoBump intel-vaapi-driver to 2.0.1.pre1 for development
Xiang, Haihao [Fri, 29 Sep 2017 05:44:41 +0000 (13:44 +0800)]
Bump intel-vaapi-driver to 2.0.1.pre1 for development

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoUpdate NEWS
Xiang, Haihao [Thu, 28 Sep 2017 07:28:16 +0000 (15:28 +0800)]
Update NEWS

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoUpdate Makefile.am for 'make dist'
Xiang, Haihao [Thu, 28 Sep 2017 07:35:59 +0000 (15:35 +0800)]
Update Makefile.am for 'make dist'

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoInitialize kernel_param for the scaling kernel of avc encoder
Peng.Chen [Wed, 27 Sep 2017 08:53:00 +0000 (16:53 +0800)]
Initialize kernel_param for the scaling kernel of avc encoder

Signed-off-by: Peng.Chen <peng.c.chen@intel.com>
6 years agoDon't create SEI unit
Xiang, Haihao [Tue, 12 Sep 2017 03:03:35 +0000 (11:03 +0800)]
Don't create SEI unit

Instead the application should provide a right packed SEI buffer if
SEI is required because it is hard to know the value for each SEI
element in the driver.

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoRevert "test: ignore deprecated-declarations for GCC >= 6.x"
Xiang, Haihao [Thu, 31 Aug 2017 02:21:02 +0000 (10:21 +0800)]
Revert "test: ignore deprecated-declarations for GCC >= 6.x"

This reverts commit ba9d2268b81e5bdde6ec80d52c28fd03d6ae5abe.

6 years agoRemove VAProfileH264Baseline from gtest
Xiang, Haihao [Thu, 31 Aug 2017 03:07:24 +0000 (11:07 +0800)]
Remove VAProfileH264Baseline from gtest

VAProfileH264Baseline was marked as deprecated

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoFix deprecated warning
Xiang, Haihao [Wed, 1 Jan 2098 01:41:42 +0000 (09:41 +0800)]
Fix deprecated warning

enums and VA features marked as deprecated should not be used any more.

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoFix a typo in VAConfigAttribValEncROI
Xiang, Haihao [Tue, 20 Jun 2017 04:38:22 +0000 (12:38 +0800)]
Fix a typo in VAConfigAttribValEncROI

The corresponding typo in libva has been fixed in libva 2.0

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoUse the latest symbol name
Xiang, Haihao [Fri, 30 Jun 2017 13:29:37 +0000 (21:29 +0800)]
Use the latest symbol name

A namespace prefix has been added to global DRI functions
in libva-x11, so the driver should be updated as well

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agotest: ignore deprecated-declarations for GCC >= 6.x
U. Artie Eoff [Fri, 7 Jul 2017 01:51:47 +0000 (18:51 -0700)]
test: ignore deprecated-declarations for GCC >= 6.x

In libva 2.0 the VAProfileH264Baseline declaration has been
deprecated.

In the test/Makefile.am, we use -Wall -Werror so all warnings
are treated as errors.  For GCC < 6.x, deprecated-declarations
are not flagged as warnings, thus don't break compilation.
However, GCC >= 6.x treats deprecated-declarations as warnings
and therefore breaks compilation.

Ignore deprecated-declarations with the -Wno-deprecated-declarations
compiler flag for now.

Fixes #219

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6 years agointel-vaapi-driver 2.0.0.pre1 for development
Xiang, Haihao [Mon, 12 Jun 2017 16:53:32 +0000 (00:53 +0800)]
intel-vaapi-driver 2.0.0.pre1 for development

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agochange file name prefix from gen9 to i965 for avc encoder
Wang Tiatian [Mon, 18 Sep 2017 14:36:49 +0000 (10:36 -0400)]
change file name prefix from gen9 to i965 for avc encoder

Signed-off-by: Wang Tiatian <tiantian.wang@intel.com>
6 years agoupdate gen8 avc encoder code path
Wang Tiatian [Fri, 8 Sep 2017 15:15:31 +0000 (11:15 -0400)]
update gen8 avc encoder code path

Signed-off-by: Wang Tiatian <tiantian.wang@intel.com>
6 years agoadd init kernel, set curbe, send surface for gen8 avc encoder
Wang Tiatian [Fri, 8 Sep 2017 15:13:26 +0000 (11:13 -0400)]
add init kernel, set curbe, send surface for gen8 avc encoder

Signed-off-by: Wang Tiatian <tiantian.wang@intel.com>
6 years agoadd structures and const tables related with gen8 avc
Wang Tiatian [Wed, 6 Sep 2017 15:03:30 +0000 (11:03 -0400)]
add structures and const tables related with gen8 avc

Signed-off-by: Wang Tiatian <tiantian.wang@intel.com>
6 years agoadd gen8 avc encoder kernel
Wang Tiatian [Wed, 6 Sep 2017 15:01:42 +0000 (11:01 -0400)]
add gen8 avc encoder kernel

Signed-off-by: Wang Tiatian <tiantian.wang@intel.com>
Conflicts:
src/gen9_avc_encoder_kernels.c

6 years agochange prefix of function name from gen9 to i965 in gpe utils
Wang Tiatian [Fri, 8 Sep 2017 15:01:46 +0000 (11:01 -0400)]
change prefix of function name from gen9 to i965 in gpe utils

Signed-off-by: Wang Tiatian <tiantian.wang@intel.com>
6 years agomake gpe utils compatible with gen8
laureatian [Mon, 21 Aug 2017 20:42:01 +0000 (16:42 -0400)]
make gpe utils compatible with gen8

Signed-off-by: Wang Tiantian <tiantian.wang@intel.com>
6 years agoUpdate the right codename for KBL/GLK
peng.chen [Mon, 11 Sep 2017 08:44:07 +0000 (16:44 +0800)]
Update the right codename for KBL/GLK

Signed-off-by: peng.chen <peng.c.chen@intel.com>
6 years agoSet pipe_buffer_state before ind_obj_base_addr for VP9 decoder
peng.chen [Wed, 6 Sep 2017 03:15:45 +0000 (11:15 +0800)]
Set pipe_buffer_state before ind_obj_base_addr for VP9 decoder

it fixed a potential VP9 decoding issue at some cases

Signed-off-by: peng.chen <peng.c.chen@intel.com>
6 years agoAdd the support of Coffee Lake
peng.chen [Mon, 14 Aug 2017 19:18:10 +0000 (03:18 +0800)]
Add the support of Coffee Lake

Signed-off-by: peng.chen <peng.c.chen@intel.com>
6 years agoAdd several asserts to detect unvalid NULL pointer
peng.chen [Sun, 27 Aug 2017 18:03:50 +0000 (02:03 +0800)]
Add several asserts to detect unvalid NULL pointer

Signed-off-by: peng.chen <peng.c.chen@intel.com>
6 years agogen6_mfd: Check ptr before dereferencing
fritsch [Mon, 4 Sep 2017 05:06:50 +0000 (07:06 +0200)]
gen6_mfd: Check ptr before dereferencing

6 years agogen7_mfd: Check ptr before dereferencing
fritsch [Sat, 26 Aug 2017 21:01:56 +0000 (23:01 +0200)]
gen7_mfd: Check ptr before dereferencing

6 years agogen8_mfd: Check ptr before dereferencing
fritsch [Sat, 26 Aug 2017 20:41:31 +0000 (22:41 +0200)]
gen8_mfd: Check ptr before dereferencing

6 years agoFEI: validate VAConfigAttribRateControl in i965_CreateConfig
U. Artie Eoff [Wed, 23 Aug 2017 16:14:17 +0000 (09:14 -0700)]
FEI: validate VAConfigAttribRateControl in i965_CreateConfig

VAEntrypointFEI only supports VA_RC_CQP in VAConfigAttribRateControl
config attribute.  Return VA_STATUS_ERROR_INVALID_CONFIG if it's
set to anything else.

Fixes #257

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6 years agoFEI: test: update brc expectation for VAEntrypointFEI
U. Artie Eoff [Wed, 23 Aug 2017 16:12:03 +0000 (09:12 -0700)]
FEI: test: update brc expectation for VAEntrypointFEI

VAEntrypointFEI only supports VA_RC_CQP.

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6 years agoFEI: Bump the required VA-API version
Sreerenj Balachandran [Wed, 23 Aug 2017 00:45:53 +0000 (17:45 -0700)]
FEI: Bump the required VA-API version

FEI support has been added in VA-API version 0.40.1, which
is the minum required version for the driver too.

libva PR: https://github.com/01org/libva/pull/105

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6 years agoFEI: tests: Add VAEntrypointFEI
Sreerenj Balachandran [Fri, 18 Aug 2017 18:19:44 +0000 (11:19 -0700)]
FEI: tests: Add VAEntrypointFEI

Add the FEI entrypoint in test case scenarios

Fixes #228

6 years agoFEI: Select VME and/or PAK as per user request
Sreerenj Balachandran [Fri, 18 Aug 2017 18:19:14 +0000 (11:19 -0700)]
FEI: Select VME and/or PAK as per user request

Driver supports VME only(ENC), PAK only(PAK)
and VME_PAK(ENC_PAK) modes.

Fixes #228

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6 years agoFEI : Add FEI support for AVC Encode in SKL
Sreerenj Balachandran [Fri, 18 Aug 2017 18:18:45 +0000 (11:18 -0700)]
FEI : Add FEI support for AVC Encode in SKL

Below is the list of contributions from Zhong Li <zhong.li@intel.com>

a) Fixed issues with P/B Macroblock encoding
b) Fixed a GPU Hang with I frame encoding and unnecessary flushing in PAK
c) Fixed the avc and fei kernel size setting error
d) Disabled all scaling operations because of no HME support

Fixes #228

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6 years agoFEI: Add GEN9 AVC FEI specific constants
Sreerenj Balachandran [Fri, 18 Aug 2017 18:17:22 +0000 (11:17 -0700)]
FEI: Add GEN9 AVC FEI specific constants

Added curbe init data for I,P,B and I_DIST kernels

Fixes #228

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6 years agoFEI: Add AVC FEI media kernels for SKL
Sreerenj Balachandran [Fri, 18 Aug 2017 18:16:56 +0000 (11:16 -0700)]
FEI: Add AVC FEI media kernels for SKL

We only have the media kernel binaries at this point.

Fixes #228

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6 years agoFEI: Add basic infrastructure for FEI enablement
Sreerenj Balachandran [Fri, 18 Aug 2017 18:16:36 +0000 (11:16 -0700)]
FEI: Add basic infrastructure for FEI enablement

Add necessary changes in common structures and apis
to support FEI (Flexible Encoder Infrastructure).

* add support for the new entrypoing VAEntrypointFEI
* fixes in vaQueryConfigEntrypoints(), vaGetConfigAttributes(),
vaCreateContext(), vaCreateBuffer(), vaRenderPicture() and vaEndPicture()

Fixes #228

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
6 years agoAdd a new shader for CSC/scaling from P010/I010 to YUY2/UYVY/NV12/I420 on GEN9
Xiang, Haihao [Mon, 7 Aug 2017 08:23:21 +0000 (16:23 +0800)]
Add a new shader for CSC/scaling from P010/I010 to YUY2/UYVY/NV12/I420 on GEN9

With the new shader, the driver can convert 10bit surface to 8bit
surface in a single step

This fixes https://github.com/01org/intel-vaapi-driver/issues/212

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoUpdate the P010/I010 shader on GEN9
Xiang, Haihao [Thu, 3 Aug 2017 05:54:10 +0000 (13:54 +0800)]
Update the P010/I010 shader on GEN9

This fixes the conversion from I010 to P010

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoReturn UYVY format for vaQuerySurfaceAttributes
Xiang, Haihao [Wed, 9 Aug 2017 03:01:33 +0000 (11:01 +0800)]
Return UYVY format for vaQuerySurfaceAttributes

The driver supports UYVY surface, but UYVY is missed in
vaQuerySurfaceAttributes.

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoUse single GPE context for the optimization for 8bit/10bit scaling/CSC
Xiang, Haihao [Fri, 4 Aug 2017 01:30:45 +0000 (09:30 +0800)]
Use single GPE context for the optimization for 8bit/10bit scaling/CSC

The interface description table can used for multiple kernels and we can
use interface offset to specify the used kernel

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoTry the fast path of CSC/scaling first in va{Get,Put}Image()
Xiang, Haihao [Wed, 2 Aug 2017 02:20:35 +0000 (10:20 +0800)]
Try the fast path of CSC/scaling first in va{Get,Put}Image()

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoFactor out CSC/scaling in the fast path
Xiang, Haihao [Fri, 28 Jul 2017 06:10:29 +0000 (14:10 +0800)]
Factor out CSC/scaling in the fast path

The factored-out code will be re-used for va{Get,Put}Image()
implementation

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agowayland: Implement registry remove handler
Philipp Kerling [Tue, 15 Aug 2017 08:52:54 +0000 (10:52 +0200)]
wayland: Implement registry remove handler

Wayland event handlers are never optional. libwayland-client will abort
the program if events for unbound handlers are to be dispatched.
Although the event queue is only dispatched a few times during
initialization for getting the wl_drm global and authenticating the DRM
device, in rare circumstances it can happen that another global such as
a wl_output - or even wl_drm itself - is removed during that time, which
would crash the program. Implement the handler to fix this.

Signed-off-by: Philipp Kerling <pkerling@casix.org>
6 years agoMerge branch 'v1.8-branch' into master
Xiang, Haihao [Wed, 16 Aug 2017 06:47:36 +0000 (14:47 +0800)]
Merge branch 'v1.8-branch' into master

6 years agotest: fix AVCEContextTest/RateControl regression nougat-x86 android-x86-7.1-r1 android-x86-7.1-r2 android-x86-7.1-r3 android-x86-7.1-r4 android-x86-7.1-r5
U. Artie Eoff [Thu, 10 Aug 2017 18:23:57 +0000 (11:23 -0700)]
test: fix AVCEContextTest/RateControl regression

Update AVCEContextTest/RateControl expectations that changed
since PR #197

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6 years agotest: add status expectation in I965TestFixture::createConfig
U. Artie Eoff [Thu, 10 Aug 2017 18:21:19 +0000 (11:21 -0700)]
test: add status expectation in I965TestFixture::createConfig

Add VAStatus parameter to I965TestFixture::createConfig to allow
users to pass in the expected status for testing.

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6 years agoavoid NULL pointer deref in i965_CreateConfig
U. Artie Eoff [Thu, 10 Aug 2017 18:15:57 +0000 (11:15 -0700)]
avoid NULL pointer deref in i965_CreateConfig

The attrib_found pointer variable might be NULL in many cases.
Thus, check it before attempting to dereference it.

Fixes #246

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
6 years agoadd brc mode check for AVC when creating the config
Pengfei Qu [Thu, 8 Jun 2017 09:55:17 +0000 (17:55 +0800)]
add  brc mode check for AVC when creating the config

v0:this add the RC check for AVC encoder

Fixes #35

Signed-off-by: Pengfei Qu <Pengfei.Qu@intel.com>
6 years agoVAEncROI on GEN7 chipset fix
Guilherme [Tue, 25 Jul 2017 15:34:41 +0000 (12:34 -0300)]
VAEncROI on GEN7 chipset fix

Copying line intel_h264_enc_roi_config() from gen75_vme.c to gen7_vme.c

6 years agoAdd the configure attributes of EncMaxRefs for GEN9 HEVC encoder
peng.chen [Tue, 8 Aug 2017 06:11:27 +0000 (14:11 +0800)]
Add the configure attributes of EncMaxRefs for GEN9 HEVC encoder

Fixes #200

Signed-off-by: peng.chen <peng.c.chen@intel.com>
6 years agoDo not apply AUD hack to non-RawData headers
Mark Thompson [Sat, 29 Jul 2017 20:24:10 +0000 (21:24 +0100)]
Do not apply AUD hack to non-RawData headers

Headers which are not VAEncPackedHeaderRawData should not be inserted
at the front of the access unit by the AUD hack - if they are, they will
end up duplicated if they match the test because they are also placed
later in the access unit.

Signed-off-by: Mark Thompson <sw@jkqxz.net>
6 years agoUpdate new media kernels for HEVC encoder
peng.chen [Thu, 3 Aug 2017 07:23:19 +0000 (15:23 +0800)]
Update new media kernels for HEVC encoder

Fixes #240

Signed-off-by: peng.chen <peng.c.chen@intel.com>
6 years agoCorrect the data type
Xiang, Haihao [Mon, 24 Jul 2017 06:25:37 +0000 (14:25 +0800)]
Correct the data type

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoDon't align the bitrate to 1000 for VDEnc AVC encoding
Xiang, Haihao [Fri, 21 Jul 2017 04:22:36 +0000 (12:22 +0800)]
Don't align the bitrate to 1000 for VDEnc AVC encoding

The HuC accepts the real bitrate setting

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoInitialize the HME mv cost table for VDEnc AVC encoding
Xiang, Haihao [Thu, 20 Jul 2017 08:26:58 +0000 (16:26 +0800)]
Initialize the HME mv cost table for VDEnc AVC encoding

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoadd VC-1 intensity compensation for SNB
carpalis [Wed, 26 Jul 2017 07:48:00 +0000 (09:48 +0200)]
add VC-1 intensity compensation for SNB

6 years agoimplement intensity compensation for VC-1 decoding
carpalis [Mon, 24 Jul 2017 11:21:16 +0000 (13:21 +0200)]
implement intensity compensation for VC-1 decoding

Intensity compensation was not present for B-frames, but only for P-frames. When a P-frame flags intensity compensation for its forward reference frame, all subsequent B-frames that use this reference frame as well, need to do intensity compensation as well.

6 years agotest: fix GCC 7.1.1 warnings/errors
Kelly Ledford [Thu, 27 Jul 2017 22:12:27 +0000 (15:12 -0700)]
test: fix GCC 7.1.1 warnings/errors

Fixes #236: add explicit braces to avoid 'ambiguous else' warning.

Signed-off-by: Kelly Ledford <kelly.ledford@intel.com>
6 years agoEncoder: Avoid memory leak
Xiang, Haihao [Fri, 14 Jul 2017 07:19:39 +0000 (15:19 +0800)]
Encoder: Avoid memory leak

An internal surface is created when the input surface doesn't meet the
HW requirement for encoding, however this surface is not destroyed when
the corresponding context is destroyed which causes the memory leak
issue. This patch fixes this issue.

This fixes https://github.com/01org/libyami/issues/751

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoRemove useless frame dimension check for VP9
Mark Thompson [Wed, 28 Jun 2017 23:41:21 +0000 (00:41 +0100)]
Remove useless frame dimension check for VP9

Signed-off-by: Mark Thompson <sw@jkqxz.net>
6 years agoDon't check the stride in the y direction for a single plane surface
Xiang, Haihao [Wed, 12 Jul 2017 01:44:11 +0000 (09:44 +0800)]
Don't check the stride in the y direction for a single plane surface

obj_surface->height is used to calculate the offset for U/V plane. for a
surface with single plane, the check is unnecessary

This fixes https://github.com/01org/intel-vaapi-driver/issues/222

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Daniel Charles <daniel.charles@intel.com>
Tested-by: Daniel Charles <daniel.charles@intel.com>
6 years agoAdd HEVC ROI attributes for VAConfigAttribEncROI
peng.chen [Tue, 20 Jun 2017 06:33:21 +0000 (14:33 +0800)]
Add HEVC ROI attributes for VAConfigAttribEncROI

Fixes #179

Signed-off-by: peng.chen <peng.c.chen@intel.com>
6 years agoAdd the support of ROI for HEVC encoder on GEN9 SKL+
peng.chen [Tue, 20 Jun 2017 06:25:58 +0000 (14:25 +0800)]
Add the support of ROI for HEVC encoder on GEN9 SKL+

Fixes #179

Signed-off-by: peng.chen <peng.c.chen@intel.com>
6 years agoParse ROI Misc parameters for CQP mode
peng.chen [Tue, 20 Jun 2017 06:18:05 +0000 (14:18 +0800)]
Parse ROI Misc parameters for CQP mode

Signed-off-by: peng.chen <peng.c.chen@intel.com>
6 years agoUpdate media kernels for hevc encoder
peng.chen [Fri, 16 Jun 2017 05:16:48 +0000 (13:16 +0800)]
Update media kernels for hevc encoder

Signed-off-by: peng.chen <peng.c.chen@intel.com>
6 years agoFix VDENC_PIPE_BUF_ADDR_STATE for AVC VDEnc encoding
Xiang, Haihao [Wed, 12 Jul 2017 06:04:17 +0000 (14:04 +0800)]
Fix VDENC_PIPE_BUF_ADDR_STATE for AVC VDEnc encoding

DW22-DW27 are the first 2 reference surfaces in list0, not the down
scaling referece surfaces.

This fixes https://github.com/01org/intel-vaapi-driver/issues/224

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoEnc: add max ref number query for AVC encoder on SKL+
Pengfei Qu [Fri, 23 Jun 2017 01:54:36 +0000 (09:54 +0800)]
Enc: add max ref number query for AVC encoder on SKL+

Fixes #199

Signed-off-by: Pengfei Qu <Pengfei.Qu@intel.com>
6 years agoRemove generated file from tree and on clean
Philipp Kerling [Thu, 22 Jun 2017 07:46:38 +0000 (09:46 +0200)]
Remove generated file from tree and on clean

Signed-off-by: Philipp Kerling <pkerling@casix.org>
6 years agointel-vaapi-driver 1.8.3
Xiang, Haihao [Wed, 28 Jun 2017 00:27:07 +0000 (08:27 +0800)]
intel-vaapi-driver 1.8.3

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agowayland: Also support wl_drm version 1
Philipp Kerling [Tue, 20 Jun 2017 17:32:34 +0000 (19:32 +0200)]
wayland: Also support wl_drm version 1

Just using version 2 without checking would lead to a protocol error
bringing down the entire application, and wl_drm version 1 is still
supported since v2 only adds PRIME capabilities.

6 years agoFix the ROI bottom setting issue in vdenc
peng.chen [Thu, 15 Jun 2017 01:35:57 +0000 (09:35 +0800)]
Fix the ROI bottom setting issue in vdenc

Signed-off-by: peng.chen <peng.c.chen@intel.com>
6 years agowayland: Use private event queue for compositor communication
Philipp Kerling [Tue, 13 Jun 2017 11:39:27 +0000 (13:39 +0200)]
wayland: Use private event queue for compositor communication

(Ab)using the default queue that the application might itself use
already and work on in parallel to initializing libva is not
thread-safe. Make it thread-safe by setting a private queue on a
wrapped wl_display. Also print some more error messages in case things
go wrong.

Signed-off-by: Philipp Kerling <pkerling@casix.org>
Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
6 years agowayland: Bump wayland-client dependency to 1.11.0
Philipp Kerling [Tue, 13 Jun 2017 11:38:55 +0000 (13:38 +0200)]
wayland: Bump wayland-client dependency to 1.11.0

Signed-off-by: Philipp Kerling <pkerling@casix.org>
6 years agowayland: Cleanup wl_registry on terminate
Philipp Kerling [Tue, 13 Jun 2017 11:38:20 +0000 (13:38 +0200)]
wayland: Cleanup wl_registry on terminate

Signed-off-by: Philipp Kerling <pkerling@casix.org>
Signed-off-by: Olivier Crete <olivier.crete@collabora.com>
6 years agoBump intel-vaapi-driver to 1.8.4.pre1 for development
Xiang, Haihao [Mon, 12 Jun 2017 16:05:20 +0000 (00:05 +0800)]
Bump intel-vaapi-driver to 1.8.4.pre1 for development

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoUpdate NEWS and README
Xiang, Haihao [Mon, 12 Jun 2017 07:31:37 +0000 (15:31 +0800)]
Update NEWS and README

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoCheck pointers against NULL before using
Xiang, Haihao [Mon, 12 Jun 2017 08:45:20 +0000 (16:45 +0800)]
Check pointers against NULL before using

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
(cherry picked from commit cac54c9b5d3a7bc85f147a072b1d36ee1587dea9)

6 years agoCheck pointers against NULL before using
Xiang, Haihao [Mon, 12 Jun 2017 08:45:20 +0000 (16:45 +0800)]
Check pointers against NULL before using

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agoAdd gen9_hevc_enc_kernels.h to the corresponding list
Xiang, Haihao [Mon, 12 Jun 2017 07:48:20 +0000 (15:48 +0800)]
Add gen9_hevc_enc_kernels.h to the corresponding list

Otherwise the package created by 'make dist' doesn't include the
missing file, which will break the build

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
(cherry picked from commit 69bc6959e848426d3170ea67819a6f9a5aaa9246)

6 years agoAdd gen9_hevc_enc_kernels.h to the corresponding list
Xiang, Haihao [Mon, 12 Jun 2017 07:48:20 +0000 (15:48 +0800)]
Add gen9_hevc_enc_kernels.h to the corresponding list

Otherwise the package created by 'make dist' doesn't include the
missing file, which will break the build

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
6 years agocorrect subsampling calculate methods of various fourcc that jpeg support.
Wang, Tiantian [Tue, 18 Apr 2017 10:53:12 +0000 (06:53 -0400)]
correct subsampling calculate methods of various fourcc that jpeg support.

This fixes https://github.com/01org/intel-vaapi-driver/issues/10

Signed-off-by: Wang Tiantian <tiantian.wang@intel.com>
(cherry picked from commit 4055625baf6fcfb4a93ed64e3a7c491bc143d757)

6 years agocorrect subsampling calculate methods of various fourcc that jpeg support.
Wang, Tiantian [Tue, 18 Apr 2017 10:53:12 +0000 (06:53 -0400)]
correct subsampling calculate methods of various fourcc that jpeg support.

This fixes https://github.com/01org/intel-vaapi-driver/issues/10

Signed-off-by: Wang Tiantian <tiantian.wang@intel.com>
6 years agoENC: add RC query for AVC mb rc mode on SKL+
Pengfei Qu [Tue, 16 May 2017 07:49:13 +0000 (15:49 +0800)]
ENC: add RC query for AVC mb rc mode on SKL+

v0: add h264_brc_mode to store the RC capability of H264

Fixes #168

Signed-off-by: Pengfei Qu <Pengfei.Qu@intel.com>
(cherry picked from commit 3416db0c8280a321db0b8d2afde9c30c3229ee7d)

6 years agoENC: add RC query for AVC mb rc mode on SKL+
Pengfei Qu [Tue, 16 May 2017 07:49:13 +0000 (15:49 +0800)]
ENC: add RC query for AVC mb rc mode on SKL+

v0: add h264_brc_mode to store the RC capability of H264

Fixes #168

Signed-off-by: Pengfei Qu <Pengfei.Qu@intel.com>
6 years agoFix: AVC/HEVC encoder quality range should be 7 on SKL+
Pengfei Qu [Wed, 7 Jun 2017 02:45:59 +0000 (10:45 +0800)]
Fix: AVC/HEVC encoder quality range should be 7 on SKL+

Fixes #192

Signed-off-by: Pengfei Qu <Pengfei.Qu@intel.com>
(cherry picked from commit 53fa3daa12f6dbdd391d24ab479dc601ae37a89d)

6 years agoEnable is_16bpp flag of gpe_surface for P010 surface
peng.chen [Tue, 6 Jun 2017 05:54:00 +0000 (13:54 +0800)]
Enable is_16bpp flag of gpe_surface for P010 surface

It is only for media_block_rw mode

Signed-off-by: peng.chen <peng.c.chen@intel.com>
(cherry picked from commit c036ab3c14f9e17158d6bf36b63cf0979ee4c548)

6 years agoFix the max slice number definition error in hevc encoder
peng.chen [Wed, 7 Jun 2017 06:16:10 +0000 (14:16 +0800)]
Fix the max slice number definition error in hevc encoder

The real max slice number is defined by I965_MAX_NUM_SLICE,
so also need to use this macro in hevc encoder

Fixes #162

Signed-off-by: peng.chen <peng.c.chen@intel.com>
(cherry picked from commit 81cf65d67052d174a43a5c0ba46168109529c6c6)

6 years agoUse ASSERT_RET() instead of assert() for some assertions
Xiang, Haihao [Fri, 2 Jun 2017 04:12:14 +0000 (12:12 +0800)]
Use ASSERT_RET() instead of assert() for some assertions

This avoids assertion fault, and the caller can handle the error
properly when the driver returns false or error.

This avoids the assertion fault in
https://github.com/01org/intel-vaapi-driver/issues/186, it also avoids
the assertion fault after https://github.com/01org/libva/issues/51 is fixed
in libva.

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
(cherry picked from commit 5a984aeec3781ab8cd937bc633db9c5bfe4a546c)

6 years agoAdd the missing parameter type in a function definition
Xiang, Haihao [Mon, 22 May 2017 08:08:29 +0000 (16:08 +0800)]
Add the missing parameter type in a function definition

Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
(cherry picked from commit 7c42a134376ed8ecdae6fa4f003180659bdc0770)

6 years agodecode: release huffman_table from decode state
U. Artie Eoff [Fri, 2 Jun 2017 18:00:17 +0000 (11:00 -0700)]
decode: release huffman_table from decode state

In i965_destroy_context, ensure we release the huffman_table
buffer_store from the decode state to avoid memory leak.

Fixes #190

Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
(cherry picked from commit b86d86de86c4f071415e6519ae778859193c0b7e)

6 years agogen9_avc_encoder: brc_curbe_size is not static anymore
Víctor Manuel Jáquez Leal [Thu, 1 Jun 2017 10:09:49 +0000 (12:09 +0200)]
gen9_avc_encoder: brc_curbe_size is not static anymore

Static memory allocation in general is the allocation of memory at compile
time before the associated program is executed.

And this is the case when compiling with clang: it tries to optimize the
allocation of static memory in compilation time, thus commit f896ca2a breaks
the compilation, since the structure can only be defined at execution time.

Fix #184

Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
(cherry picked from commit 533193a2e187601ad976060d11b7fda679058295)