OSDN Git Service
Xiang, Haihao [Fri, 8 Sep 2017 08:42:26 +0000 (16:42 +0800)]
Add support for VP8 encode on CNL
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: peng.chen <peng.c.chen@intel.com>
Zhao Yakui [Tue, 28 Jun 2016 09:38:19 +0000 (17:38 +0800)]
Add the initial support of CNL
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Signed-off-by: peng.chen <peng.c.chen@intel.com>
Pengfei Qu [Tue, 28 Nov 2017 07:35:04 +0000 (15:35 +0800)]
Fix: AVC encoder use at most 4 fwd ref frames and 1 bwd ref frames
Fixes #272
Signed-off-by: Pengfei Qu <Pengfei.Qu@intel.com>
Sreerenj Balachandran [Fri, 1 Dec 2017 23:02:24 +0000 (15:02 -0800)]
Stats/PreEnc: tests: Add VAEntryPointStats
Add the Stats entrypoint in test case scenarios.
intel-vaapi-driver PR: https://github.com/01org/intel-vaapi-driver/pull/282
libva PR: https://github.com/01org/libva/pull/110
Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Sreerenj Balachandran [Fri, 1 Dec 2017 22:47:11 +0000 (14:47 -0800)]
Stats/PreEnc: Add GEN9 AVC PreEnc support
The AVC PreEnc includes three stage processing:
1: It does the dowscaling of source and reference pictures.
Also generate the variance and pixel average of current frame,
past and future ref based on user request.
2: Second stage involves the Hierarchical Motion Estimation
Only the 4x hme is supported in PreEnc.
3:Third stage is a PreProc which can generate the Motion Vectors and
Distortion values
libva PR: https://github.com/01org/libva/pull/110
Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Sreerenj Balachandran [Fri, 1 Dec 2017 22:45:59 +0000 (14:45 -0800)]
Stat/PreEnc: Add GEN9 AVC PreEnc specific constants
* Added preproc curbe init data for I,P and B frames.
* Add preproc ftq lut init constants
libva PR: https://github.com/01org/libva/pull/110
Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Sreerenj Balachandran [Fri, 1 Dec 2017 22:44:58 +0000 (14:44 -0800)]
Stats/PreEnc: Add basic infrastructure for PreEnc enablement
Add necessary changes in common structures and apis
to support Stats Entrypoint.
* add support for the new entrypoint VAEntrypointStats
* added new preproc encode operation enum
* define virtual methods for preproc_set_curbe/send_surface
* add fixes in vaQueryConfigEntrypoints(), vaQueryConfigProfiles,
vaGetConfigAttributes(), vaQuerySurfaceAttributes(),
vaCreateContext(), vaCreateBuffer(),vaBeginPicture(),
vaRenderPicture() and vaEndPicture()
* If PreEnc enabled, only invoke VME.
Note: Enabled the PreEnc Support only for avc encode in Skylake.
libva PR: https://github.com/01org/libva/pull/110
Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
Mark Thompson [Fri, 8 Dec 2017 14:30:08 +0000 (14:30 +0000)]
Add informational messages for developers on failed H.265 checks
Signed-off-by: Mark Thompson <sw@jkqxz.net>
Mark Thompson [Sat, 2 Dec 2017 16:00:40 +0000 (16:00 +0000)]
Add informational messages for developers on failed H.264 checks
Includes a warning if the level appears to be invalid, but continues anyway
in this case (it could be a correct future value or an unknown extension).
Signed-off-by: Mark Thompson <sw@jkqxz.net>
Mark Thompson [Sat, 2 Dec 2017 16:00:22 +0000 (16:00 +0000)]
Fix coding style error from astyle
Signed-off-by: Mark Thompson <sw@jkqxz.net>
Mark Thompson [Thu, 30 Nov 2017 21:47:55 +0000 (21:47 +0000)]
Add support for H.264 levels 6, 6.1 and 6.2
Fixes #307.
Signed-off-by: Mark Thompson <sw@jkqxz.net>
Mark Thompson [Thu, 30 Nov 2017 21:46:33 +0000 (21:46 +0000)]
Convert H.264 level limit lookup functions to use a table
Do not abort on unknown values - instead use the limits for the nearest
valid value of level_idc less than the given one.
Signed-off-by: Mark Thompson <sw@jkqxz.net>
Mark Thompson [Thu, 30 Nov 2017 21:25:03 +0000 (21:25 +0000)]
Remove unused functions for slice and mv limits
Signed-off-by: Mark Thompson <sw@jkqxz.net>
Victor Toso [Tue, 19 Dec 2017 09:05:10 +0000 (10:05 +0100)]
Include missing do in do/while macro
i965_encoder_vp8.c:1895:123: note: put the semicolon on a separate line
to silence this warning
i965_encoder_vp8.c:1898:112: warning: while loop has empty body
> ALLOC_VP8_RESOURCE_BUFFER(pak_mpu_tpu_picture_state_buffer,
> VP8_PICTURE_STATE_SIZE,
> "Picture state buffer");
Signed-off-by: Victor Toso <victortoso@redhat.com>
Victor Toso [Tue, 19 Dec 2017 07:07:40 +0000 (08:07 +0100)]
Use enum's type name to fix implicit conversion
The implicit conversion happens because there is another enum defined with
the name GEN9_HEVC_ENC_SURFACE_TYPE introduced in the same commit
455351f9
To avoid the several warnings below (by clang), let's use the enum's
defined type name.
gen9_hevc_encoder.c:5754:34: warning: implicit conversion from
enumeration type 'enum _GEN9_HEVC_ENC_SURFACE_TYPE' to different
enumeration type 'enum GEN9_HEVC_ENC_SURFACE_TYPE' [-Wenum-conversion]
HEVC_ENC_SURFACE_Y_2X, bti_idx,
^~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Victor Toso <victortoso@redhat.com>
Victor Toso [Tue, 19 Dec 2017 07:15:41 +0000 (08:15 +0100)]
Fix coding style
Fix requested by the pre-commit hook introduced in
2f0a8449f37b
> astyle --style=linux -cnpUH -s4 -M120 \
> src/gen9_hevc_encoder.c src/i965_encoder_vp8.c
This is necessary to avoid unrelated changes in the next two commits.
Signed-off-by: Victor Toso <victortoso@redhat.com>
Victor Toso [Tue, 19 Dec 2017 08:52:41 +0000 (09:52 +0100)]
Fix possible implicit conversion
Change variables and function's return type to unsigned int to be able to
hold
4010803200 (level_idc is 186) which is bigger then INT_MAX.
> gen9_hevc_enc_utils.c:72:19: warning: implicit conversion from 'long' to
> 'int' changes value from
4010803200 to -
284164096 [-Wconstant-conversion]
> max_bps =
4010803200;
> ~ ^~~~~~~~~~
Signed-off-by: Victor Toso <victortoso@redhat.com>
Victor Toso [Tue, 19 Dec 2017 08:17:33 +0000 (09:17 +0100)]
Fix check return value without assignment
gen9_hevc_encoder.c:1248:19: warning: using the result of an assignment
as a condition without parentheses [-Wparentheses]
if (va_status |= VA_STATUS_SUCCESS)
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
Signed-off-by: Victor Toso <victortoso@redhat.com>
Victor Toso [Mon, 18 Dec 2017 15:28:32 +0000 (16:28 +0100)]
i965: Remove negative check on unsigned variable
Since its intoduction at
58a4a6afe80835829e95d
> i965_drv_video.c:2860:23: warning: comparison of unsigned
> expression < 0 is always false [-Wtautological-compare]
> if ((num_elements < 0) ||
> ~~~~~~~~~~~~ ^ ~
Signed-off-by: Victor Toso <victortoso@redhat.com>
Victor Toso [Mon, 18 Dec 2017 15:01:24 +0000 (16:01 +0100)]
Small optimization while removing warning
Removed the helper array and its initialization loop as we can achieve the
same with two variables in one loop.
This patch also removes the warning below:
> gen8_mfc.c:2735:9: warning: variable 'i' is incremented both in the loop
> header and in the loop body [-Wfor-loop-analysis]
> i++;
> ^
> gen8_mfc.c:2732:25: note: incremented here
> for (i = 0; i < 64; i++) {
> ^
Signed-off-by: Victor Toso <victortoso@redhat.com>
Xiang, Haihao [Mon, 8 Jan 2018 12:34:11 +0000 (20:34 +0800)]
VC1: Fix for frame coding mode
Some VC1 clips might be marked interlaced but have fcm < 2, and the
wrong fcm will lead to undefined behavior, such as GPU hang.
This fixes https://github.com/01org/intel-vaapi-driver/issues/316
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
carpalis [Wed, 6 Dec 2017 11:02:32 +0000 (12:02 +0100)]
genX_mfd: add comment on dmv buffer scaling
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sun, 12 Nov 2017 14:56:57 +0000 (15:56 +0100)]
genX_mfd: optimize comparison out of loop
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Wed, 1 Nov 2017 19:08:49 +0000 (20:08 +0100)]
genX_mfd: fix code indenting
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Wed, 1 Nov 2017 19:04:13 +0000 (20:04 +0100)]
gen8_mfd: program hardware for range reduction scaling
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Wed, 1 Nov 2017 18:45:42 +0000 (19:45 +0100)]
genX_mfd: clean up the use of profile bitstream element
Only gen6 needs mapping from input range to the hardware range for
the profile bitstream element. For gen7 and up there is no need for a
mapping as the hardware uses only one bit indicating simple/main profile
or advanced profile. Therefore, we can remove the mapping for gen7 and
clean up the code a bit.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Wed, 1 Nov 2017 15:11:59 +0000 (16:11 +0100)]
genX_mfd: fix range reduction scaling
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Tue, 31 Oct 2017 14:22:14 +0000 (15:22 +0100)]
genX_mfd: fix dmv buffer size calculation
The picture size may vary within a VC-1 stream. We should calculate
the dmv buffer size from the size of the surface instead of the
size of the first picture that uses the surface. Subsequent pictures
may be larger, which could overflow the dmv buffer.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sat, 28 Oct 2017 13:21:39 +0000 (15:21 +0200)]
genX_mfd: fix intensity compensation for frame-interlaced content
When frame-interlaced pictures are signalled to be intensity
compensated, we need to set the hardware to compensating both the top and
the bottom field.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Sat, 28 Oct 2017 09:07:13 +0000 (11:07 +0200)]
gen7_mfd: remove obsolete gen7_vc1_surface fields
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 12:58:53 +0000 (14:58 +0200)]
i965_decoder_utils: enable decoding of VC-1 interlaced pictures
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 12:57:00 +0000 (14:57 +0200)]
gen8_mfd: add support for VC-1 interlaced intensity compensation
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 12:56:26 +0000 (14:56 +0200)]
gen8_mfd: add support for VC-1 interlaced reference frames
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 12:55:56 +0000 (14:55 +0200)]
gen8_mfd: add support for VC-1 interlaced pictures
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 12:54:57 +0000 (14:54 +0200)]
gen7_mfd: add support for VC-1 interlaced intensity compensation
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 12:53:59 +0000 (14:53 +0200)]
gen7_mfd: add support for VC-1 interlaced reference frames
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 12:53:21 +0000 (14:53 +0200)]
gen7_mfd: add support for VC-1 interlaced pictures
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 12:26:18 +0000 (14:26 +0200)]
gen75_mfd: add support for VC-1 interlaced intensity compensation
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 12:24:24 +0000 (14:24 +0200)]
gen75_mfd: add support for VC-1 interlaced reference frames
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 12:23:07 +0000 (14:23 +0200)]
gen75_mfd: add support for VC-1 interlaced pictures
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 12:19:10 +0000 (14:19 +0200)]
i965_decoder_utils: add support for VC-1 interlaced pictures
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Fri, 27 Oct 2017 11:04:33 +0000 (13:04 +0200)]
genX_mfd: fix calculation of motion vector mode
As stated in the PRM, the FastUVMCFlag field should be equal to the LSB
of the Motion Vector Mode field. This also conforms to VC-1 spec, as
FASTUVMC controls whether color difference motion vectors are
reconstructed with quarter of half pixel resolution.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Wed, 25 Oct 2017 11:26:01 +0000 (13:26 +0200)]
genX_mfd: no raw coded bitplanes for skipped pictures
Skipped pictures should not signal raw coded bitplanes as there are no
MBs encoded. Failure to do so results in decoding errors.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
carpalis [Tue, 24 Oct 2017 18:30:16 +0000 (20:30 +0200)]
genX_mfd: fix BitplanePresentFlag for skipped pictures
Skipped pictures do not pass a bitplane buffer. We do, however,
locally encode a bitplane buffer with only the SKIPMB bit set. The
presence of this buffer must be passed through the BitplanePresentFlag
hardware field.
Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
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>