summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-11-13Revert "add LockBuffer support for VAImage/VASurface"Philippe Coval1-76/+0
This reverts commit 9dbdd5c26b4a47f0edab79b86ba8d46d8a0c8bd4. Change-Id: I23eeb6b1a4889cc97d13d3ddcb6b9d3cd6eb570b Bug-Tizen: TC-1195/related
2014-11-13packaging: Bump to 1.4.1Philippe Coval1-1/+1
Bug-Tizen: TC-1195/related Change-Id: I276818de14727594d0aff64bcf806d6f3097c0a8 Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
2014-11-13packaging: Bump to 1.3.2Philippe Coval1-1/+1
Change-Id: I8b05b3c43315a818502eb17afd25703fa0f0b4b7 Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
2014-11-13packaging: Bump to 1.3.1Philippe Coval1-1/+1
Change-Id: I65b47c1deb23e6d699efc1b7f195529d5a81736c Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
2014-11-13packaging: Bump to 1.3.0Philippe Coval1-1/+1
Change-Id: I99c20e476ed296cfa39b91e259878427825b00c9 Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
2014-11-13packaging: use upstream tagsPhilippe Coval1-0/+3
Change-Id: I6ef7c1c8016a9aa459968719de5795cdad7dc5cb Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
2014-11-13Build only for Intel architecturesEd Bartosh1-0/+1
This change should fix unresolvable state of the package for arm targets. As libva builds exclusively for Intel archs it's not availabe on arm and turns this package into unresolvable state. Change-Id: I4971c8dfab6eb4c4b99346b31de8977e8d013110 Signed-off-by: Ed Bartosh <eduard.bartosh@intel.com>
2014-11-13Allow "libva-intel-driver" to build into pure Wayland profile.Ronan Le Martret2-3/+11
Change-Id: I47b05a505e83f9bcf7840c95ec7bd369140a4ecf
2014-11-13changelog: update version to 1.2.2Zhao, Halley2-1/+5
Change-Id: I196c61f5534e704ee5049b89edd288347515c158
2014-11-13add LockBuffer support for VAImage/VASurfaceZhao, Halley1-0/+76
2014-11-13packaging: Intial packaging for tizen (on 1.2.0pre)Zhao, Halley2-0/+71
Change-Id: Ic82a374fabfcbda5a0057d359189c8612ce76dd4
2014-10-24Intel driver 1.4.11.4.1Xiang, Haihao2-3/+3
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
2014-10-10Update NEWS & version for 1.4.1 pre11.4.1.pre1Xiang, Haihao2-3/+6
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
2014-10-10build: fix make dist for packaging.Gwenole Beauchesne2-0/+4
If the intel-gen4asm tool is not available, ship with the pre-built EU kernels instead of trying to regenerate them. In particular, just don't expose the build rules if intel-gen4asm is not installed. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> (cherry picked from commit 238d8077705711036d62a6d536311def3ef35035)
2014-10-08Encoding: Add one hook callback function to detect encoding capabilitiy on ↵Zhao Yakui1-0/+111
Haswell Some Haswell machine doesn't support the encoding. So it should be disabled. Otherwise the driver can't report the supported capability correctly. V2->V3:Based on the Matt Turner's suggestion the __cpuid defined in GCC cpuid.h is called directly, which is helpful to handle the PIC issue on 32-bit. And unsigned data type is updated to uint32_t. V1->V2: Minor update based on comment from Gwenole Beauchesne. For example: use the bool tye and remove the hardcoded value Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
2014-10-08change the attribute of hw_codec_info so that it can be updated dynamicallyZhao Yakui3-10/+10
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
2014-10-08Add one callback function for hw_codec_info to initialize hw_codec_infoZhao Yakui2-0/+4
V1->V2: Refine the call back function name from hw_codec_hook to preinit_hw_codec And it is called after VADriverContext is fully initialized. This is based on the comment from Gwenole Beauchesne. Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
2014-09-30Intel driver 1.4.01.4.0Xiang, Haihao2-4/+5
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
2014-09-25Driver 1.4.0.pre21.4.0.pre2Zhao, Yakui1-1/+1
2014-09-25CHV: Add PCIID placeholders for CHVSean V Kelley3-0/+57
Pending branding and differentiation by stepping. CHV is used generically to match libdrm and mesa identification. Signed-off-by: Sean V Kelley <sean.v.kelley@intel.com>
2014-09-09Init driver 1.4.0.pre11.4.0.pre1Zhao Yakui1-3/+3
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
2014-09-09Update NEWS for 1.4.0Zhao Yakui1-1/+13
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
2014-09-09initial export_refcount for obj_bufferZhao, Halley1-0/+1
(cherry picked from commit 11d01d01ce7ceedf19c74bdd8a07961b0fd8dd9b)
2014-09-09Add support for new VA buffer export APIs.Gwenole Beauchesne2-0/+133
Implement va{Acquire,Release}BufferHandle() hooks so that to allow VA surface or VA image buffer sharing with thirdparty APIs like EGL, OpenCL, etc. v2: made sure to sync bo before export, improved VA buffer type check. v3: tracked internal resources on acquire, disposed them on release. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> (cherry picked from commit 483bb130925182f2096cd9e6fa5dbae6a55e7764)
2014-09-09Remove gen7 only limitation for encoding configurationZhong Li2-7/+5
Since all generations from gen6 can support avc encoding configuration, remove gen7 only limitation. MVC also can be support with little change, but it is low priority, it will be support when necessary and this function is stable. Signed-off-by: Zhong Li <zhong.li@intel.com> (cherry picked from commit f2178e267a67bdecab0a30502804c2ce5bccd0c2)
2014-09-09Enabling BDW avc encoding configurationZhong Li4-24/+95
Signed-off-by: Zhong Li <zhong.li@intel.com> (cherry picked from commit 739eb9c0c954eecaf17a24be336ca5054241a338)
2014-09-09Enabling HSW avc encoding configurationZhong Li4-54/+97
Signed-off-by: Zhong Li <zhong.li@intel.com> (cherry picked from commit 1239853edc9c344a823d788c6df57da82eda25bf)
2014-09-09Enabling SNB avc encoding configurationZhong Li5-18/+79
Signed-off-by: Zhong Li <zhong.li@intel.com> (cherry picked from commit 3e531e7d640ef329151b2205c2e61a67fb80862d)
2014-09-09Add multi quality levels encoding support for GEN7Zhong Li8-17/+109
Two encoding quality levels are support on GEN7. Default quality level is set to be 1, which has better quality, but higher gpu usage. The second quality level is set to be 2, which has worse quality but it has lower gpu usage. Other platforms support for multi-quality-level will be added later. v1->v2: 1. follow haihao's comments to init and check quality_level. 2. remove CBR limitation for low quality level. (Zhao Yakui helps to merge several patches on staging so that it can be cherry-picked to master) Signed-off-by: Zhong Li <zhong.li@intel.com> Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
2014-09-05Add phantom slice support on IVB+Zhong Li3-0/+36
HW requires driver to add a phantom slice when FirstMbX and FirstMbY are not 0, in order to avc decoding error concealment. Otherwise, GPU may hang. This patch is a workround for bug: https://bugs.freedesktop.org/show_bug.cgi?id=81447 v1->v2: Follow haihao's suggestion to use common funcion of gen6 phantom slice. v2->v3: Remove an extraneous newline. Signed-off-by: Zhong Li <zhong.li@intel.com> Reviewed-by: Xiang Haihao <haihao.xiang@intel.com> Gwenole Beauchesne <gwenole.beauchesne@intel.com> (cherry picked from commit 9672c5ab17c32f25ce1bbdb883abda689440b116)
2014-09-05Move gen6 phantom slice function as commonZhong Li3-79/+84
Following haihao's suggestion, make gen6 phantom slice funcion can be re-used by SNB+. v1->v2: Remove an unnessary comment. Signed-off-by: Zhong Li <zhong.li@intel.com> Reviewed-by: Xiang Haihao <haihao.xiang@intel.com> Gwenole Beauchesne <gwenole.beauchesne@intel.com> (cherry picked from commit 5e30cc3093407ca2b4dbefa1da8a1262ff8ae7e9)
2014-09-02H264_Encoding: Fix the incorrect Qp setting under CBR when slice_header is ↵Zhao Yakui3-13/+37
passed Fix the issue in https://bugs.freedesktop.org/show_bug.cgi?id=83143 Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> Tested-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> (cherry picked from commit eca8e0065e3a04156e0817d3a5ac14f4df39d603) Conflicts: src/gen6_mfc.c src/gen8_mfc.c
2014-08-18decoder: h264: fix RefPicList0/1 without frame in DPB.Gwenole Beauchesne1-0/+4
Some bitstreams (e.g. truncated, or non conformant), or bugs in codec layers, would incorrectly make decoders to fill in the RefPicList0/1 lists with surfaces that have not received any content yet. There is no reason for the driver to crash in such cases. https://bugs.freedesktop.org/show_bug.cgi?id=82466 Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-07-23Add more check of H264 slice param to avoid GPU hang caused by the incorrect ↵Zhao Yakui1-0/+33
parameter This is to fix the GPU hang in https://bugs.freedesktop.org/show_bug.cgi?id=76363 V1->V2: Use the new check based on Haihao's comment. Discard the current frame with the error slice_param instead of smart fix. In such case it can prompt that the error slice_param can be fixed by the upper-middle. Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> Tested-by: ValdikSS <iam@valdikss.org.ru> Reviewed-by: Xiang Haihao <haihao.xiang@intel.com> (cherry picked from commit 04202281135149a13a32dfb8a902debfac1331fe)
2014-07-01remove fixed uses of inte-gen4asm toolZhao, Yakui2-3/+3
In the gen7 and gen8 post processing Makefiles the GEN4ASM variable is not honored when calling intel-gen4asm. This causes build errors when GEN4ASM is set to a different value This was discovered when using intel-gpu-tools version 1.7 where the shaders are actually compiled. Signed-off-by: Daniel Charles <daniel.charles@intel.com> Reviewed-by: Zhao, Yakui <yakui.zhao@intel.com> (cherry picked from commit f574f2e8a8da27b96abc3936c5b2372ff2b7eefb)
2014-06-16Encoding: Use the different delimeter to pass packed_rawdata and ↵Zhao, Yakui2-25/+104
slice_header based on VAConfigAttribEncPackedHeaders attribute Currently the packed_slice_header is optional. And it uses the VAEncSliceParameterBuffer as the delimeter to decide how to insert the packed rawdata/slice_header for one slice. This is not convenient under some scenario. For example: some user hope to be more flexible. When the user is responsible for generating the packed slice_header, it hopes to use the packed slice_header as the delimeter to determine how to inser the packed rawdata/slice_header for the given slice. So the VAConfigAttribEncPackedHeaders attriburation of encoding_context is used to decide which kind of delimeter. a. When the VAEncPackedSlice is set when calling vaCreateConfig, it will use the packed slice_header as delimeter. Of course the packed rawdata should be parsed before the packed slice_header for one given slice. For exmaple: for the slice 0: the packed rawdata should be parsed before paring the first packed slice_header. After one packed slice_header is parsed, it will start to parse the corresponding data for a new slice. b. When the VAEncPackedSlice is not set when calling vaCreateConfig, it will use the VAEncSliceParameterBuffer as delimeter. V1->V2: Return an error instead of only complaining warning message when packed slice_header is missing for some slice under the VAEncPackedSlice mode. This is the suggestion from Gwenole and Sreerenj Balachandran. Signed-off-by: Zhao, Yakui <yakui.zhao@intel.com> (cherry picked from commit 9d49a6d693aa6c862467a4a879bc86d9cb98dbe5)
2014-06-16Encoding: Update the comment for the data structure about the packed ↵Zhao, Yakui1-2/+6
rawdata/slice_header data Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit 56715c893fa87e2d3af2938b9202d75cdc79a8fd)
2014-06-16Fix the segfault while encoding multiple slice per frame.Sreerenj Balachandran1-0/+7
Zero initialize the packed raw data index array and packed slice header index array during each preallocation. Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> Reviewed-by: Zhao, Yakui <yakui.zhao@intel.com> (cherry picked from commit fbbe401aa28a0b3859d587ef08f0df15a2f7c8f2)
2014-06-16Fix the segfault while inserting packed slice headerSreerenj Balachandran1-2/+2
Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com> Reviewed-by: Zhao, Yakui <yakui.zhao@intel.com> (cherry picked from commit 7c2273f1334d7d45e248d128e17200b7e8beffd1)
2014-06-16Fix the GetConfigAttributes() for H264SteroHighProfileSreerenj Balachandran1-0/+1
(cherry picked from commit 510b271f912afb35edac1d3fb39354ee98b01711)
2014-06-16H264_encoding: Don't update the slice qp for CBR mode when finding packed ↵Zhao, Yakui3-6/+12
slice_header data Otherwise the slice qp is inconsistent and the encoding is incorrect. Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit 897527c30435202927e6cd05cd5189a710d02c91)
2014-06-16H264_Encoding: Add the support of packed slice header to be flexibleZhao, Yakui6-94/+90
Under some encoding scenario, the user hopes to generate the packed slice header data by themself and then the driver can insert the passed slice header packed data into the coded clip. 1.The VA_ENC_PACKED_HEADER_SLICE flag is exported and it is treated as optional. This is to say: if packed slice header data is passed, it will be inserted directly. If no packed slice header data is passed, the driver will help to generate it. 2.Another restriction is that the packed slice header data is inserted after the packed rawdata for one slice. That is to say: If it needs to insert the packed rawdata and slice header data, the packed rawdata will be inserted firstly(This is handled by the driver). Signed-off-by: Zhao, Yakui <yakui.zhao@intel.com> (cherry picked from commit 00111e8a8bfa67b971419b72577eaa1b9f47bc34) Conflicts: src/gen75_mfc.c src/gen8_mfc.c
2014-06-16H264_encoding: Reset the last_packed_header_type to avoid the unpaired ↵Zhao, Yakui1-1/+6
packed header type/data After adding the support of inserting the packed rawdata, more group of packed header data can be passed. In order to insert the packed rawdata correctly, the packed header type/ data should be paired. Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit fd78866bd64d7ab57fe8cb0c4b25e8357973b0b1)
2014-06-16H264_encoding: Add the support of inserting the packed raw data passed from userZhao, Yakui6-11/+121
Under some encoding scenario, the user-space application hopes that the driver can insert the passed packed rawdata into the coded clip. This is to allow the insertion of packed rawdata passed from user. As the position of packed rawdata is related with the slice. So the following restrictions are added: 1. the packed rawdata header type/data should be paired. 2. the packed rawdata data is inserted by following the passed order 3. the packed rawdata header type/data is split by using VAEncSliceParameterBuffer. That is to say: The packed rawdata for slice 0 should be passed before the first VAEncSliceParameterBuffer. After one VAEncSliceParameterBuffer is parsed, the subseuquent packed rawdata is for another new slice. The subsequent packed rawdata after the last VAEncSliceParameterBuffer is ignored. 4. it does not change the rule for the packed data of SPS/PPS/MISC type. Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit 974597ef64dc9a283d4787e1484a75d1610414f4) Conflicts: src/gen75_mfc.c src/gen8_mfc.c
2014-06-16H264_Encoding: Prepare some data structures for adding packed raw dataZhao, Yakui2-0/+63
Under some encoding scenario, the user-space application hopes that the driver can insert the passed packed rawdata into the coded clip. But the insertion of packed rawdata is related with the slice. So some data structures are added so that it can store how the packed rawdata is inserted into the coded clip per-slice. Signed-off-by: Zhao, Yakui <yakui.zhao@intel.com> (cherry picked from commit 65727b1868f01d836659396724b83d2992656242)
2014-06-16H264_Encoding: Parse the packed header data from user to fix the hacked code ↵Zhao, Yakui1-3/+60
of HW skip bytes When the packed header data from user is inserted into the coded clip, it uses the hacked code to check the number of HW skip emulation bytes. This is wrong. So fix it. Of course if the packed header data is generated by the driver, it is unnecessary to check it and it can still use the pre-defined number of HW skip bytes. V1->V2: Based on Gwenole's comment more nal_unit_type is added. Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit cd518563f239cb8523c58010a695098465a4f04e)
2014-06-16Encoding: Reinitialize CBR bit rate-control parameter to support switch of ↵Zhao, Yakui2-2/+56
bitrate under CBR Tested-By: Sean V Kelley <sean.v.kelley@intel.com> Signed-off-by: Zhao Yakui <yakui.zhao@intel.com> (cherry picked from commit 929c1446a28dbefd9655774f2db3e10f7b631dcf)
2014-06-16decoder: h264: fix frame store logic for MVC.Gwenole Beauchesne12-45/+111
In strict MVC decoding mode, when only the necessary set of inter-view reference pictures are passed to the ReferenceFrames array for decoding the current picture, we should not re-use a frame store id that might be needed for decoding another view component in the same access unit. One way to solve this problem is to track when the VA surface in a specified frame store id was last referenced. So, a "ref_age" field is introduced to the GenFrameStore struct and is updated whenever the surface is being referenced. Additionally, the list of retired refs candidates (free_refs) is kept ordered by increasing ref_age. That way, we can immediately know what is the oldest frame store id to recycle. Let deltaAge = CurrAge - RefAge: If deltaAge > 1, we know for sure that the VA surface is gone ; If deltaAge = 1, the surface could be re-used for inter prediction ; If deltaAge = 0, the surface could be re-used for inter-view prediction. The ref_age in each Frame Store entry is always current, i.e. it is the same for all reference frames that intervened in the decoding process of all inter view components of the previous access unit. The age tracks access units. v2: used a more correct representation of age, instead of POC [Yakui] v3: minor optimization for detecting changes of access unit [Haihao] Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> (cherry picked from commit 3b5eb0522fbfe1220dcd0c0bb093a93cfc25e22c)
2014-06-16decoder: h264: improve AVC_REF_IDX_STATE for MVC.Gwenole Beauchesne1-1/+17
Each Reference List Entry has Bit 6 set to one if the reference picture is to be used as a long-term reference picture. However, the H.264 standard, and subsequently the VA-API specs, makes it possible to mark the picture as "used for short-term reference", as "used for long-term reference", or even none of those flags. This means we have to handle a minimum of 3 states. This doesn't fit the range of a single bit. Let's examine how this could be fixed from known practices. There are cases where the picture is added to RefPicListX[] even if it is not marked as "used for short-term reference" or "used for long-term reference": MVC with inter-view reference components or inter-view only reference components [H.8.4]. Ultimately, this has an incidence on the value of colZeroFlag (8.4.1.2.2). Since there is no way to program that, and that it depends on the picture to be marked as "used for short-term reference" or not, then it looks reasonable to imply Bit 6 (LongTermPicFlag) as a picture that is *not* "used for short-term reference", i.e. thus including genuine long-term reference pictures, and those that are neither long-term reference nor short-term reference pictures. In practice, this fixes MVCNV-2.264. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> (cherry picked from commit edbdc0e87919d8b7261d882a32b2d3c271660931)
2014-06-16surface: drop SURFACE_DISPLAYED flag.Gwenole Beauchesne7-15/+20
The optimization by which the VA surface storage is deallocated after it is displayed and not used for reference or vaDeriveImage() purposes cannot be implemented safely. We need to honour explicit lifetimes defined by the upper codec layer. Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com> (cherry picked from commit 84926ace7a2c5b88df1ada167a1c273128469aad)