summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* 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>
* 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).
* 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-266-12/+12
| | | | | | 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-201-1/+1
| | | | | | 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.
* Check the interface from libva firstHaihao Xiang2019-01-111-11/+16
| | | | | | | | 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>
* Fix memory leakHaihao Xiang2018-12-075-26/+40
| | | | 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-211-1/+4
| | | | | | | | 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>
* Removed the padded bytesHaihao Xiang2018-08-131-1/+0
| | | | | | | | Image status mask and ctrl are used as compare mask and data in MI_CONDITIONAL_BATCH_BUFFER_END, so they must be adjacent in memory Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* Use the original picture sizeHaihao Xiang2018-08-131-2/+2
| | | | | | | vp8_context->frame_width/vp8_context->frame_height is aligned to 16 bytes, however the original size is required Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* Correct the base address for the 2nd level batchbufferHaihao Xiang2018-08-131-0/+1
| | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* VPP: clear a surface using media pipeline on GEN8+Haihao Xiang2018-07-0334-78/+2037
| | | | | | Remove the extra sync between BCS and CS rings Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* render: clear background using 3D pipeline on GEN8+Haihao Xiang2018-07-0310-130/+389
| | | | | | Remove the extra sync between BCS and CS rings Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* Update some CSC kernels for packed pixelsHaihao Xiang2018-07-033-22/+25
| | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* Move the function declaration to an internal header fileHaihao Xiang2018-07-032-9/+8
| | | | | | gen9_p010_scaling_post_processing was added for VPP internal usage only Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* Don't show an error on hybrid driver failureNicolas Chauvet2018-06-291-1/+1
| | | | | | | | Distribution wants to have situation where both hybrid/i965 drivers are avaible. Even when only the latter is relevant on a given hardware. Signed-off-by: Nicolas Chauvet <kwizart@gmail.com>
* android: get vaapi version from configure.acChih-Wei Huang2018-06-292-5/+32
| | | | Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
* android: get libva version from va_version.hChih-Wei Huang2018-06-291-1/+6
| | | | Signed-off-by: Chih-Wei Huang <cwhuang@linux.org.tw>
* Always set pre/post deblocking output bufferHaihao Xiang2018-05-311-8/+2
| | | | Signed-off-by: Haihao Xiang <haihao.xiang@intel.com>
* genX_mfd: fix out-of-bounds reference pixel replicationcarpalis2018-05-314-33/+19
| | | | | | | | Out-of-bounds reference pixel replication should take into account the frame coding mode of the reference frame(s), not the frame coding mode of the current frame. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
* i965_pciids: add kbl-y refresh PCI IDPatrick Waterlander2018-05-311-0/+1
| | | | Signed-off-by: Patrick Waterlander <patrick.waterlander@intel.com>
* make sure there is no copy_buffer_to_golden/copy_buffer_to_alternate if ↵ottingerg2018-05-181-2/+2
| | | | refresh_golden/refresh_alternate is set