summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* i965_device_info.c: Add missing entries to gen7_cpu_hook_listHEADmasterPatrick Thompson2022-11-301-0/+28
| | | | | | Based on https://ark.intel.com/content/www/us/en/ark/products/graphics/96744/intel-hd-graphics-for-3rd-generation-intel-processors.html#@nofilter these processors do not support h264 hardware encoding and should be added to the gen7_cpu_hook_list. Signed-off-by: Patrick Thompson ptf@google.com
* Fix VP9.2 config verificationEd Baker2021-09-281-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit addresses the following test_va_api failures collected on a Braswell with the hybrid codec enabled. Fixes #534. localhost ~ # test_va_api <snip> [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/210, where GetParam() = (21:VAProfileVP9Profile2, 1:VAEntrypointVLD) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/211, where GetParam() = (21:VAProfileVP9Profile2, 2:VAEntrypointIZZ) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/212, where GetParam() = (21:VAProfileVP9Profile2, 3:VAEntrypointIDCT) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/213, where GetParam() = (21:VAProfileVP9Profile2, 4:VAEntrypointMoComp) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/214, where GetParam() = (21:VAProfileVP9Profile2, 5:VAEntrypointDeblocking) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/215, where GetParam() = (21:VAProfileVP9Profile2, 6:VAEntrypointEncSlice) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/216, where GetParam() = (21:VAProfileVP9Profile2, 7:VAEntrypointEncPicture) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/217, where GetParam() = (21:VAProfileVP9Profile2, 8:VAEntrypointEncSliceLP) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/218, where GetParam() = (21:VAProfileVP9Profile2, 10:VAEntrypointVideoProc) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigWithAttributes/219, where GetParam() = (21:VAProfileVP9Profile2, 11:VAEntrypointFEI) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/210, where GetParam() = (21:VAProfileVP9Profile2, 1:VAEntrypointVLD) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/211, where GetParam() = (21:VAProfileVP9Profile2, 2:VAEntrypointIZZ) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/212, where GetParam() = (21:VAProfileVP9Profile2, 3:VAEntrypointIDCT) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/213, where GetParam() = (21:VAProfileVP9Profile2, 4:VAEntrypointMoComp) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/214, where GetParam() = (21:VAProfileVP9Profile2, 5:VAEntrypointDeblocking) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/215, where GetParam() = (21:VAProfileVP9Profile2, 6:VAEntrypointEncSlice) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/216, where GetParam() = (21:VAProfileVP9Profile2, 7:VAEntrypointEncPicture) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/217, where GetParam() = (21:VAProfileVP9Profile2, 8:VAEntrypointEncSliceLP) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/218, where GetParam() = (21:VAProfileVP9Profile2, 10:VAEntrypointVideoProc) [ FAILED ] GetCreateConfig/VAAPIGetCreateConfig.CreateConfigNoAttributes/219, where GetParam() = (21:VAProfileVP9Profile2, 11:VAEntrypointFEI) Signed-off-by: Ed Baker <edward.baker@intel.com>
* The 3D multisample state needs to be resent as part of the gen6 pp state.Haixia Shi2021-09-281-0/+15
| | | | | | | This fixes video corruption and hangs when WebGL with MSAA is running in a separate. Resolves https://github.com/intel/intel-vaapi-driver/issues/526 Signed-off-by: Michele Lim <michele.lim@intel.com>
* Avoid GPU crash with malformed streamsStéphane Marchesin2021-09-174-0/+44
| | | | | | | | | | | | | When streams are malformed, we can get p-frames without any reference picture. However the code still assumes 1 reference picture at least, which leads to a GPU crash. To protect against GPU crashes, we force 0 when we have no pictures. Do this on gen6, 7, 7.5 and 8. BUG=chromium:252389,chroimum:418024 TEST=go to youtube and play http://www.youtube.com/watch?v=6v2L2UGZJAM ; it doesn't crash Signed-off-by: Stéphane Marchesin <marcheu@chromium.org> Signed-off-by: Sean V Kelley <seanvk@posteo.de>
* Handle odd resolutionHaihao Xiang2020-08-193-48/+48
| | | | | | This fixes https://github.com/intel/intel-vaapi-driver/issues/516 Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* README: fix coverity linkU. Artie Eoff2020-07-011-1/+1
|
* gen9_vp9_encoder: Relax the compressed frames minimum size restriction.Sreerenj Balachandran2020-06-011-1/+4
| | | | | | | | | | | | | | | | | The current implementation of the CQP mode encode has a compressed buffer size restriction of 4Kb. The restriction doesn't make sense for low-resolution & low-bitrate video encoding use cases since inter-frames can be encoded with much less number of bytes. For eg: most of the P-frames in a video-conferencing session of 640x480 resolution at 750kbps require only 1Kb bitrate allocation and currently the hardware PAK unit fill the rest of the 3Kb (4Kb-1Kb) with zeros. This will jeopardize the quality & bit-rate allocation of the hybrid CBR encode models[1] where we run the bitrate control algorithm in software clubbed with a CQP hardware encoder: [1]: https://cgit.freedesktop.org/~sree/gstreamer-vaapi/commit/?h=VP9_SVC_and_SoftwareBRC&id=355f16bdb32965425b274aa082c1334b0edd5992).
* test: cast VA_STATSUS_ERROR_UNKNOWN to VAStatusU. Artie Eoff2020-05-141-1/+1
| | | | | | | | This fixes a gcc10 compiler error for the VA_STATUS_ERROR_UNKNOWN 0xFFFFFFFF conversion from unsigned int to int. Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
* Fix HEVCe kernel compile error on gcc10U. Artie Eoff2020-05-141-1/+1
| | | | | | | | | | | This fixes a "multiple definition" compiler error on gcc10 which defaults to -fno-common. https://gcc.gnu.org/gcc-10/porting_to.html#common Fixes #503 Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
* Check for python3 rather than python2William Douglas2019-11-267-13/+13
| | | | | | With python2 being deprecated, it makes sense to switch gpp.py to be python3 compatable and the build system to look for python3 rather than python2.
* gen9_vp9_encoder: Ensure brc-reset irrespective of the frame typeSreerenj Balachandran2019-11-221-1/+8
| | | | | | | | | | If bitrate control is enabled (CBR & VBR), it is legal to have a bitrate change/reset even for non-key frame. Currently the bitrate change is not submitting to the gpu if it is an inter-prediction frame. This patch ensures that all internal structures are getting the updated bitrate values whenever user request. This patch is expected to fix the issue #473
* Fix QualityRange query for the VP8 encoderSreerenj Balachandran2019-11-211-0/+2
| | | | | | | The VP8 encoder supports two quality levels, one for the normal mode and the other for performance-mode(less-quality). This patch ensures that the ConfigAttrib query advertising the correct range.
* ensure that all meson files are part of the release tarballMichael Olbrich2019-11-203-2/+3
| | | | | | Fixes #488 Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
* encoder: vp8: Ensure forced_lf_adjustment update in media kernelSreerenj Balachandran2019-09-101-0/+1
| | | | | | | | | Ensure the submission of forced_lf_adjustment in mode probablity update kernel curbe. This will help to fix the ffmpeg decoder output md5 mismatch with vpxdec for the Intel encoded video samples. Reported, Tested and Verified by Hirokazu Honda<hiroh@google.com>
* Since commit 1591f6c1be689c5265cb5beab18c97771d056cb9 WVC1 videos areJan Burgmeier2019-08-051-1/+4
| | | | | | | | | | | decoded with a green color on sandy bridge platforms. This is because of a wrong ptype before this commit ptype was set to GEN6_VC1_BI_PICTURE if picture_type is GEN6_VC1_I_PICTURE and profile is advanced. With this commit the ptype is correctly set to GEN6_VC1_BI_PICTURE for advanced profiles. Maybe this is also needed for the other generations affected by commit 1591f6c1be689c5265cb5beab18c97771d056cb9 but I have no hardware to test it.
* Make vaExportSurfaceHandle work for IMC3Daniele Castagna2019-07-311-3/+11
| | | | | | | | | | vaExportSurfaceHandle currently doesn't support IMC3 format. This patch adds support for IMC3 in seprate layers mode and fixes ExportSurfaceHandle to work with formats that might have alignment requirements for U/V plane start addresses. This can be used to export VAAPI decoded JPEGs without incurring in additional copies.
* Postpone the update of vp9_frame_ctxHaihao Xiang2019-06-102-17/+23
| | | | | | | | | Mapping the buffer for vp9_frame_ctx at once after batch buffer submission will cause GT frequency boost, so postpone the update of vp9_frame_ctx to next frame Signed-off-by: Haihao Xiang <haihao.xiang@intel.com> Tested-by: Shankar, Vaibhav <vaibhav.shankar@intel.com>
* wayland: Fix for FD leaks in case of invalid image formatMatteo Valdina2019-06-031-0/+4
| | | | In the case the va_GetSurfaceBufferWl is not able to create a prime or planar buffer it will leak the FD get from DRM.
* Fix compilation warnings.Víctor Manuel Jáquez Leal2019-05-091-1/+3
| | | | | | | | In commit f6573cb7 memmem() call is introduced which is a GNU extension, which need to be enabled explicitely, otherwise the compiler will trigger a warning. This patch enables globally the usage of GNU extensions.
* Update AVC media kernel for BDW/BSWHaihao Xiang2019-04-296-10520/+10832
| | | | | | And update the corresponding data structures / parameters as well Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* Use the right buffer for the 2nd level batchbufferHaihao Xiang2019-04-291-1/+1
| | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* Don't reset the current target buffer fullness after initializationHaihao Xiang2019-04-291-1/+2
| | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* [gen8_mfd] Mark jpeg decode function staticvperus2019-04-291-1/+1
| | | | Signed-off-by: Vladyslav Kalyuzhny <vperus@gmail.com>
* i965_encoder: Speed up i965_MapBuffer for JPEG encoding somewhat.Steinar H. Gunderson2019-04-291-6/+6
| | | | | | | | | | | Searching for the EOI marker byte-by-byte turned out to notable in profiles when encoding large amounts of JPEGs (~15% of a core at 480 fps of 1080p images). Using memmem() will typically give us an AVX-optimized version of at least finding the 0xFF character, which is much more efficient. It seems to speed up this part by about 3–4x in practice, taking it largely off the profiles. Signed-off-by: Steinar H. Gunderson <steinar+nageru@gunderson.no>
* Fix off-by-one in use of ROI regions in CQP modeMark Thompson2019-03-071-1/+1
| | | | Signed-off-by: Mark Thompson <sw@jkqxz.net>
* Remove dependency on EncROI attribute to enable encoding with ROIMark Thompson2019-03-071-1/+1
| | | | | | | The VAConfigAttribEncROI attribute is read-only, so a user should not need to write it to enable encoding with ROI. Signed-off-by: Mark Thompson <sw@jkqxz.net>
* android: avoid compile warnningsChih-Wei Huang2019-03-072-0/+2
| | | | | | | | | | | | | | | | | | | | | | | To avoid the warnings(errors): hardware/intel/common/vaapi/src/gen75_vme.c:1070:5: error: variable 'i965_kernel_num' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized] default: ^~~~~~~ hardware/intel/common/vaapi/src/gen75_vme.c:1078:35: note: uninitialized use occurs here vme_context->vme_kernel_sum = i965_kernel_num; ^~~~~~~~~~~~~~~ hardware/intel/common/vaapi/src/gen9_vme.c:2036:5: error: variable 'i965_kernel_num' is used uninitialized whenever switch default is taken [-Werror,-Wsometimes-uninitialized] default: ^~~~~~~ hardware/intel/common/vaapi/src/gen9_vme.c:2044:35: note: uninitialized use occurs here vme_context->vme_kernel_sum = i965_kernel_num; ^~~~~~~~~~~~~~~ I am not going to disable the warning (by -Wno-sometimes-uninitialized) since it's still a useful checking from the compiler. Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
* android: ignore unimportant compile warnningsChih-Wei Huang2019-03-071-3/+5
| | | | Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
* Return false instead of assertion failureHaihao Xiang2019-02-132-3/+9
| | | | | | If so, the upper-layer application or library may handle the error. Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* Revert "VPP: clear a surface using media pipeline on GEN8+"Haihao Xiang2019-01-3034-2042/+78
| | | | | | Commit 5bdb675 causes performance drop This reverts commit 5bdb675 and fixes compiler errors.
* build: meson: compile without wayland supportVíctor Manuel Jáquez Leal2019-01-291-4/+9
| | | | | | This patch replaces the PR https://github.com/intel/intel-vaapi-driver/pull/441
* Check the interface from libva firstHaihao Xiang2019-01-112-12/+17
| | | | | | | | And bump libva dependency to 1.4.0 This fixes https://github.com/intel/intel-vaapi-driver/issues/419 Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* HEVC encoder: correct the minimal bitrate for VBRHaihao Xiang2019-01-081-15/+14
| | | | | | | This fixes https://github.com/intel/intel-vaapi-driver/issues/430 Signed-off-by: Haihao Xiang <haihao.xiang@intel.com> Tested-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
* Merge branch 'v2.3-branch' into masterHaihao Xiang2018-12-116-27/+51
|\
| * intel-vaapi-driver 2.3.02.3.0v2.3-branchHaihao Xiang2018-12-103-5/+5
| | | | | | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
| * intel-vaapi-driver 2.3.0.pre22.3.0.pre2Haihao Xiang2018-12-073-2/+3
| | | | | | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
| * Fix memory leakHaihao Xiang2018-12-075-26/+40
| | | | | | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
| * intel-vaapi-driver 2.3.0.pre12.3.0.pre1Haihao Xiang2018-11-213-4/+13
| | | | | | | | | | | | Update NEWS and bump a new version Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* | intel-vaapi-driver 2.4.0.pre1Haihao Xiang2018-11-212-3/+3
|/ | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* Merge branch 'v2.2-branch' into intel--masterHaihao Xiang2018-11-213-5/+5
|\
| * libva-intel-driver 2.2.02.2.0Haihao Xiang2018-07-113-4/+4
| | | | | | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* | gen8_post_processing: optimization for gen8_pp_object_walkerCole Nelson2018-11-211-29/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | gen8_pp_object_walker makes an unnecessary function call, checks a return value that is always zero and makes non-indexed variable assignments. All of which occurs inside nested for loops. Move non-indexed assignments outside the iterative block and inline the rest. This decreases frame drops for saturating workloads. Fixes: #252 Signed-off-by: Cole Nelson <colex.nelson@intel.com>
* | gen75_proc_picture: check return value from gen75_vpp_veboxXu Guangxin2018-11-211-4/+12
| | | | | | | | | | gen75_vpp_vebox will check many things like invalid param, unsupported features. Better check the return value
* | vp8/enc: Avoid out of boundary MVsHaihao Xiang2018-09-282-662/+674
| | | | | | | | | | | | | | This patch makes sure all MVs are in the right range, otherwise out of boundary MVs will result in corrupted frame. Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* | avc/enc: Fix bitrate resetHaihao Xiang2018-09-141-4/+4
| | | | | | | | | | | | Use the right target bitrate once user changes the bitrate on the fly Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* | Add a new CFL PCI IDHaihao Xiang2018-09-141-0/+1
| | | | | | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* | Add a new KBL PCI IDHaihao Xiang2018-09-141-0/+1
| | | | | | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* | Check for -fstack-protectorBernd Kuhls2018-08-212-1/+21
| | | | | | | | | | | | | | | | Not all toolchains provide support for -fstack-protector. This patch provides a configure check to avoid build errors like /home/buildroot/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-uclibc/6.4.0/../../../../x86_64-buildroot-linux-uclibc/bin/ld: cannot find -lssp_nonshared /home/buildroot/buildroot/output/host/opt/ext-toolchain/bin/../lib/gcc/x86_64-buildroot-linux-uclibc/6.4.0/../../../../x86_64-buildroot-linux-uclibc/bin/ld: cannot find -lssp
* | Enable multiple pass by defaultHaihao Xiang2018-08-131-1/+1
| | | | | | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* | Change the sequence of reading MMIO registersHaihao Xiang2018-08-131-6/+6
| | | | | | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>