OSDN Git Service
carpalis [Mon, 23 Oct 2017 10:05:35 +0000 (12:05 +0200)]
genX_mfd: align dmv buffer use with VC-1 spec and PRM
As stated in VC-1 spec, the direct MV buffer will be written when
decoding a P frame. Subsequently, the direct MV buffer is read when
decoding a B frame that backward references this P frame.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Mon, 23 Oct 2017 09:02:35 +0000 (11:02 +0200)]
genX_mfd: no need for loop filtering for skipped pictures
Skipped pictures are equal to their reference frame and, therefore,
should not pass the loop filter. Although the loop filter was already
a null operation as all transform coefficients are zero for skipped
pictures, this may save some cyles in the decoder hardware.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Mon, 23 Oct 2017 08:23:35 +0000 (10:23 +0200)]
genX_mfd: remove mapping of I frame to BI frame
This mapping does not make sense. Unless the mapping is some workaround
for a hardware quirk, we should be able to safely remove it. If this
breaks things, we can always put it back accompanied with an explanation
in the code.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Mon, 23 Oct 2017 08:13:59 +0000 (10:13 +0200)]
genX_mfd: change order within if-else
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sun, 22 Oct 2017 18:40:31 +0000 (20:40 +0200)]
genX_mfd: use input range instead of mapped range in comparison
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sun, 22 Oct 2017 17:53:11 +0000 (19:53 +0200)]
genX_mfd: remove one-to-one mapping for picture_type
In genX_mfd_vc1_pic_state, the logic of picture_type is not very clear
as it is mapped from the input range to the hardware range. The mapping,
however, is an identity mapping that, effectively, only maps a skipped
picture to a P picture. By putting the skipped picture logic explicitly
in the ocde, we can remove the unnecessary mapping and make the logic
much more clear.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sun, 22 Oct 2017 16:09:21 +0000 (18:09 +0200)]
genX_mfd: fix unnecessary variable reuse
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sun, 22 Oct 2017 14:30:47 +0000 (16:30 +0200)]
genX_mfd: do not scale dmv buffer with height
PRM states that for VC-1 the direct motion vector buffer may be scaled
with frame height but should not be scaled with frame width. Hardware
assumes frame width is fixed at 128 MBs.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sun, 22 Oct 2017 13:54:58 +0000 (15:54 +0200)]
genX_mfd: align hardware programming of Y Offset for V(Cr) with comment
Although the PRM does not state that this field must be zero for
non-JPEG, we might as well set it to zero as indicated in the comment
and to make its use more clear.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sun, 22 Oct 2017 13:13:54 +0000 (15:13 +0200)]
genX_mfd: fix hardware programming for bitplanes coded in raw mode
Bitplanes that are coded in raw mode are signalled through the
raw_coding flags in the VAPictureParameterBufferVC1 structure. The
absence of a bitplane does not necessarily imply that this bit is
encoded in raw mode. A progressive P picture in advanced profile, for
example, does not encode the SKIPMB bitplane nor does it encode this
bit in raw mode.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sun, 22 Oct 2017 11:29:19 +0000 (13:29 +0200)]
genX_mfd: mask unused bits in bitplane_present.value
Due to the union construct, unused bits in bitplane_present.value might
be uninitialized even when the used bits are all set to a value.
Masking the unused bits prevents spurious true values when all used
bits are unset, e.g. skipped pictures.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sat, 21 Oct 2017 14:53:16 +0000 (16:53 +0200)]
genX_mfd: fix bitplane encoding for skipped pictures
VC-1 skipped pictures do not encode a slice or MB layer, nor do they
encode any bitplanes. For a skipped picture, we should unconditionally
encode the bitplane buffer with only the SKIPMB bit set. Furthermore,
we optimize the static picture_type comparison out of the double loop.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sat, 21 Oct 2017 13:07:39 +0000 (15:07 +0200)]
gen75_mfd: Check ptr before dereferencing
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sat, 21 Oct 2017 10:22:19 +0000 (12:22 +0200)]
genX_mfd: remove emulation byte on MB layer boundary
As stated in the PRM, VC-1 decoder hardware cannot handle the case
where the second 0x00 byte in the emulation prevention pattern
0x00 0x00 0x03 (0x00-0x03) coincides with the start of the
MB layer. Fixed by overwriting the 0x03 byte with the previous 0x00
byte and adjusting the MB layer byte offset accordingly.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
Xiang, Haihao [Thu, 19 Oct 2017 23:14:49 +0000 (07:14 +0800)]
Do CSC/scaling from 8bit 420 YUV to RGB32 in the common path
A new vpp shader is added
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Xiang, Haihao [Fri, 20 Oct 2017 00:07:25 +0000 (08:07 +0800)]
Do CSC/scaling for YV12/IMC1/IMC3 surface in the common path
The existing vpp shader is re-used
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Xiang, Haihao [Sun, 22 Oct 2017 00:47:42 +0000 (08:47 +0800)]
Allow loading mulitple kernels for a single GPE for the common path on GEN8
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Xiang, Haihao [Sat, 21 Oct 2017 20:09:03 +0000 (04:09 +0800)]
Move reserved bytes to the end of the structure
This structure defines the input parameters from driver to common
csc/scaling shader, so the corresponding vpp shaders are updated as
well. In addition, more reserved bytes are added for future use
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Mark Thompson [Thu, 30 Nov 2017 22:31:34 +0000 (22:31 +0000)]
Add info messages for failure cases of vaExportSurfaceHandle()
Signed-off-by: Mark Thompson <sw@jkqxz.net>
Mark Thompson [Thu, 30 Nov 2017 22:19:31 +0000 (22:19 +0000)]
Add new functions for logging
These use the error and info callbacks added recently to libva.
Signed-off-by: Mark Thompson <sw@jkqxz.net>
U. Artie Eoff [Fri, 1 Dec 2017 21:16:12 +0000 (13:16 -0800)]
AVC encoder: fix ROI CQP array indexing
Use correct variable for ROI indexing.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
U. Artie Eoff [Fri, 1 Dec 2017 20:59:40 +0000 (12:59 -0800)]
AVC encoder: fix ROI config for CQP
Introduced in:
commit
972e6f2b36499389bc7cb7bb34414423b5525143
Author: Xiang, Haihao <haihao.xiang@intel.com>
Date: Wed Jan 4 09:40:47 2017 +0800
AVC encoder: use generic ROI parameters
num_roi setting was lost and thus always 0, which essentially
disabled the "for (j = num_roi; j ; j--)" loop in the
VA_RC_CQP case.
Fix this by ensuring num_roi is set to the correct value stored
in the common structure.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Mark Thompson [Sun, 17 Sep 2017 17:10:38 +0000 (18:10 +0100)]
Implement vaExportSurfaceHandle()
This is a new interface in libva to support wider use-cases of passing
surfaces to external APIs. In particular, this does not require creation
of derived images before export, and offers richer metadata such as DRM
format information.
Signed-off-by: Mark Thompson <sw@jkqxz.net>
U. Artie Eoff [Wed, 29 Nov 2017 19:26:59 +0000 (11:26 -0800)]
test: add null check assertions to object_heap tests
Ensure objects are not NULL before dereferencing.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
U. Artie Eoff [Wed, 29 Nov 2017 19:06:13 +0000 (11:06 -0800)]
vme_context->private_enc_ctx: check null before dereference
Ensure priv_ctx is not null before dereferencing it.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
U. Artie Eoff [Wed, 29 Nov 2017 18:45:10 +0000 (10:45 -0800)]
fix possible null dereference after null check
obj_surf_input and obj_surf_output are dereferenced unconditionally
and required for successful control flow. Thus, verify they
are not null, else return error.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
U. Artie Eoff [Wed, 29 Nov 2017 18:17:11 +0000 (10:17 -0800)]
fix inadvertent logic error in conditional
The condition:
slice_param->slice_type != SLICE_TYPE_I ||
slice_param->slice_type != SLICE_TYPE_SI
...is always true. This appears to be an inadvertent
logic error by original author. The assumption is that
&& was the intention and makes more sense, thus change it
to us && instead of ||.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
U. Artie Eoff [Thu, 16 Nov 2017 23:25:21 +0000 (15:25 -0800)]
test: fix use of uninitialized variable
Initialize VAImage variable at the point of declaration.
Since i965_DeriveImage is declared as extern in the tests,
a static scanner appears to be unable to detect that VAImage is
actually initialized by the i965_DeriveImage implementation
in the driver. This causes it to flag it as "use of an
uninitialized variable" along the success path.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Xiang, Haihao [Sat, 21 Oct 2017 06:30:24 +0000 (14:30 +0800)]
gtest: Fix 5 failed cases on legacy platforms
Some legacy platforms only support VAProfileH264StereoHigh decoding
[----------] Global test environment tear-down
[==========] 599 tests from 16 test cases ran. (335 ms total)
[ PASSED ] 594 tests.
[ FAILED ] 5 tests, listed below:
[ FAILED ] AVCDecode/I965ConfigTest.Create/3, where GetParam() = VAProfileH264MultiviewHigh : VAEntrypointVLD
[ FAILED ] AVCEncode/I965ConfigTest.Create/12, where GetParam() = VAProfileH264MultiviewHigh : VAEntrypointEncSlice
[ FAILED ] AVCEncode/I965ConfigTest.Create/13, where GetParam() = VAProfileH264MultiviewHigh : VAEntrypointEncSliceLP
[ FAILED ] AVCEncode/I965ConfigTest.Create/14, where GetParam() = VAProfileH264MultiviewHigh : VAEntrypointEncPicture
[ FAILED ] AVCEncode/I965ConfigTest.Create/15, where GetParam() = VAProfileH264MultiviewHigh : VAEntrypointFEI
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Xiang, Haihao [Mon, 30 Oct 2017 21:58:24 +0000 (05:58 +0800)]
Add upper bound check in HCP_IND_OBJ_BASE_ADDR_STATE
The commit
29e375a fixed some VP9 decoding artifacts reported in
https://github.com/01org/intel-vaapi-driver/issues/262, but we still
see artifacts when decoding some VP9 clips. More investigations show
that the artifacts are caused by graphics address 0
The graphics address for a GEM BO may be 0 since the commit
below was merged into i915 KMD
commit
2889caa9232109afc8881f29a2205abeb5709d0c
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date: Fri Jun 16 15:05:19 2017 +0100
drm/i915: Eliminate lots of iterations over the execobjects array
So we never saw this issue before commit
2889caa
Setting upper bound to 0 causes that HW ignores upper bound check, which
works for non-zero base graphics address in HCP pipeline, however the
upper bound check is required for graphics address 0, so we add the bound
check no matter what is the graphics address
This fixes https://github.com/01org/intel-vaapi-driver/issues/297
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Zhong Li [Thu, 16 Nov 2017 09:05:14 +0000 (17:05 +0800)]
vp9enc: limit min_qp of brc to be non-zero
If base_qindex (luma_ac_qindex) is equal to zero, the enode mode will be
lossless mode when
luma_dc_qindex_delta/chroma_ac_qindex_delta/chroma_dc_qindex_delta are
also zero. In this case, the tx_mode should be set to ONLY_4X4, but current
driver only support TX_MODE_SELECT. This will cause the lossless mode
encoding failure.
Limitting the min_qp to be non-zero can force the encoding mode to be normal
mode.
It is to fix issue #284
Signed-off-by: Zhong Li <zhong.li@intel.com>
U. Artie Eoff [Tue, 21 Nov 2017 20:05:39 +0000 (12:05 -0800)]
fix memset size for fixed array
Use sizeof on fixed array instead of hard-coded value.
The hard-coded value did not account for the size of the
data type (uint32_t) and therefore did not zero out the
entire array, rather it only zero'd out number of elements
bytes.
This prevents compiler memset-elt-size error when using
-Wall -Werror compiler flags.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Sebastian Ramacher [Thu, 5 Oct 2017 22:23:54 +0000 (00:23 +0200)]
gen5_6: fix null shader generation
Also null.g4b is not required here.
Signed-off-by: Sebastian Ramacher <sramacher@debian.org>
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>
Xiang, Haihao [Tue, 24 Oct 2017 07:19:39 +0000 (15:19 +0800)]
Merge branch 'v2.0-branch' into master
Conflicts:
configure.ac
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>
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>
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>
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)
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.
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>
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>
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>
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>
Xiang, Haihao [Thu, 28 Sep 2017 07:28:16 +0000 (15:28 +0800)]
Update NEWS
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
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>
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>
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>
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.
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
fritsch [Mon, 4 Sep 2017 05:06:50 +0000 (07:06 +0200)]
gen6_mfd: Check ptr before dereferencing
fritsch [Sat, 26 Aug 2017 21:01:56 +0000 (23:01 +0200)]
gen7_mfd: Check ptr before dereferencing
fritsch [Sat, 26 Aug 2017 20:41:31 +0000 (22:41 +0200)]
gen8_mfd: Check ptr before dereferencing
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Xiang, Haihao [Wed, 16 Aug 2017 06:47:36 +0000 (14:47 +0800)]
Merge branch 'v1.8-branch' into master
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
carpalis [Wed, 26 Jul 2017 07:48:00 +0000 (09:48 +0200)]
add VC-1 intensity compensation for SNB
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.
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>