Age | Commit message (Collapse) | Author | Files | Lines |
|
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
|
|
Otherwise the package created by 'make dist' doesn't include the
missing file
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
|
|
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
|
|
The YUVImage class allows for more efficient (faster)
operations on the YUV input/output of these tests.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 77ff763fa44c36d3154ee9267e9eb940dd4c10fc)
|
|
Add stream operators for std::valarray.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 2bbdc90be2f41198619c073ce1409dc5c64334dc)
|
|
Add a class that employs std::valarray and std::slice
to manage YUV input/output data. Using valarray's and
slice's are generally more efficient than std::vector
in most test use cases where YUV data is needed.
Current test cases that are using different (yet
similar) code to manage it's own YUV input/output
data can eventually converge onto use of this common
class instead.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit fd26aa497dff3361e31e3d99066915a34a67ae64)
|
|
The speed of random number generation can have a
significant impact on test execution time when
initializing large arrays of random values. The C++
random number engines and generators are much slower
than std::rand.
Thus, use C's rand() to generate pseudo-random values
within a given [min,max] range. For testing purposes,
deterministic sequences would be preferable anyway.
That is, if a particular sequence exposes a test failure,
then we can reproduce it later. Also, we seed the
pseudo-random number generator with the current time
so that the sequence is not always the same across
executions. The seed is then recorded in the test
results so that the sequence can be reproduced if
needed.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 9edf73284039f31720eb03f4c2196bb7c4dd033f)
|
|
The timer is useful to quickly instrument various sections
of code during test development optimization tasks or other
timing needs.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 1eae2167650c5159b510534d022cf79e38c9799c)
|
|
VDEnc/HuC only works with the 1st VCS ring, however SKL GT3+ has 2 VCS rings.
To avoid executing the corresponding batch buffer from the 2nd VCS ring in i915, we
have to specify the 1st ring in the driver.
SKL GT1/GT2 has only one VCS ring, so specifying the 1st ring in the driver has no
any impact to GT1/GT2
v2: Use the right bug URL
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97872
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 63b98a529522385254c0f50dfb8e566679017c89)
|
|
Hence we can use separate parameters to estimate QP per layer and get more
accurate QP for next frame in the same layer.
Tested-by: Wang, Fei W <fei.w.wang@intel.com>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 972c1c67fbfb83f37a6aef7af7be32ffbdc7f7f8)
|
|
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit f4656a78b80d9cf402ddc86b2d0261359623e180)
|
|
Use the right frame numbers in a GOP to estimate a QP for next frame
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 218cca1856bfae6090a842342522a9018d6a328a)
|
|
Use the right previous slice type to estimate a QP for next frame
in the same layer
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 36003e66b46bdb740813c021fe61dcd5538f1e11)
|
|
Use the the right previous frame size to estimate a QP for next frame in the
same layer
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 495e905a7c6e05c3b6a9c0c81f153f56aafcb759)
|
|
We can do QP compensation per layer.
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 755bed214e30b1ea96f88f3f5011bdff228ee3c8)
|
|
AVS can't gurantee bit-match for a large surface. This fixes the
failure reported by gtest case Common/JPEGEncodeInputTest.Full/95.
before:
[ FAILED ] Common/JPEGEncodeInputTest.Full/95, where GetParam() = (Fixed Size 7680x4320, 0x501176 pointing to "I420") (9239 ms)
[----------] 1 test from Common/JPEGEncodeInputTest (9239 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (9361 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] Common/JPEGEncodeInputTest.Full/95, where GetParam() = (Fixed Size 7680x4320, 0x501176 pointing to "I420")
after:
[ OK ] Common/JPEGEncodeInputTest.Full/95 (15250 ms)
[----------] 1 test from Common/JPEGEncodeInputTest (15250 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (15365 ms total)
[ PASSED ] 1 test.
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
Tested-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 78b6841fa3e247f15005ea3450d8404c59938ac3)
|
|
std::valarray can fuse elementwise operations across arrays for
more efficient comparison.
Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>
Reviewed-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
(cherry picked from commit 852cea1cdfc83e0b6531dfefda14badafc9ee206)
|
|
vpp to report the chroma formats according to what's allowed
by vaCreateSurfaces2
Signed-off-by: Daniel Charles <daniel.charles@intel.com>
Reviewed-by: Xiang, Haihao <haihao.xiang@intel.com>
(cherry picked from commit e748bc7f0565d59a7ec2ba038e76a0a1de19c15c)
|
|
Add some simple avce context tests to verify various
encode context fields are appropriately configured.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit fc7bd0639a83b182b6e8a02217b22fd544253e08)
|
|
Driver does not require config attributes to create a config.
Thus, allow I965TestFixture::createConfig to be called without
specifying ConfigAttribs.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 31d499ebdd0fe080d8e3654ab90fede155b148fe)
|
|
The driver does not require surfaces to create a context.
That is, i965_CreateContext can accept an empty render_targets
list. Thus, make Surfaces an optional parameter to
I965TestFixture::createContext so that simple tests don't
have to bother with Surfaces if they are irrelevant to
the test case.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 5c013c55e458a7f476f600e7ff78f59f3246168f)
|
|
The attribute VAConfigAttribEncROI has to check that the entrypoint
is actually a VAEntrypointEncSlice or VAEntrypointEncSliceLP
Signed-off-by: Daniel Charles <daniel.charles@intel.com>
Reviewed-by: Xiang, Haihao <haihao.xiang@intel.com>
(cherry picked from commit 8652f05e834bf2c0bbd8a324ee7d2040e1c0cc77)
|
|
Actually IYUV is indentical to I420. This fixes the failue reported by
CreateSurfacesTest.SupportedPixelFormats in gtest
before:
[ FAILED ] CreateSurfacesTest.SupportedPixelFormats (0 ms)
[----------] 1 test from CreateSurfacesTest (0 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (2 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] CreateSurfacesTest.SupportedPixelFormats
after:
[----------] 1 test from CreateSurfacesTest
[ RUN ] CreateSurfacesTest.SupportedPixelFormats
[ OK ] CreateSurfacesTest.SupportedPixelFormats (1 ms)
[----------] 1 test from CreateSurfacesTest (1 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (4 ms total)
[ PASSED ] 1 test.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98033
Tested-by: Eoff, Ullysses A <ullysses.a.eoff@intel.com>
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Eoff, Ullysses A <ullysses.a.eoff@intel.com>
(cherry picked from commit 7ef5135054a3f6c6baff9c6dca4383079ff5f072)
|
|
Instantiate the JPEG encode/decode Entrypoint tests from
the common I965ConfigTest fixture with additional test
inputs. Also, separate them into their own files. This
changes their test case names, too.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit dd73514209d7942f2d8c8b0bbb541fe6884ea1bc)
|
|
Add a common I965ConfigTest parameterized test fixture with
a i965_CreateConfig test case and add the AVC encode/decode
create config test instantiations with associated profile
and entrypoint inputs.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 91caa8167d5b6b16ee8c58bd238f8a4773a4707a)
|
|
Add ostream operators for VAProfile and VAEntrypoint so
the testing framework and tests can log them by name.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit d36e351ef5d073f24aca0e0fb6dd3171d9b1914c)
|
|
Move the VADisplay, vaInitialize and vaTerminate responsibility
out of the I965TestFixture class and into a global
I965TestEnvironment (::testing::Environment) singleton.
The I965TestEnvironment singleton instance is registered with
the gtest framework at startup and it's SetUp and TearDown routines
are executed before and after all tests are executed. This
allows all tests to obtain access to the VADisplay et. al.
outside of an I965TestFixture instance.
Essentially, this results in only one VADisplay being shared
between all executed test cases and one init/term sequence
for the entire test program execution. This more closely
resembles how several real-world programs would use the
driver (i.e. init driver once, encode/decode multiple streams
and terminate driver once).
Prior to this, each test case had it's own VADisplay instance
and init/term sequence. That behavior can still be achieved by
executing one test case at a time via the --gtest_filter option.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 8fb4dd957ff1db28c54430a47b5305a4e05f1e1d)
|
|
sequence parameter
User can update framerate using VAEncMiscParameterTypeFrameRate buffer later
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 464d36dda586addb32379b8c74b2055da73783d3)
|
|
Add test to verify correct result for create surfaces with
supported and unsupported pixel formats.
Currently the IYUV pixel format case fails... see
https://bugs.freedesktop.org/show_bug.cgi?id=98033
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 0c5176a46e329e3d95f14f998b75a320621c769e)
|
|
When the jpeg picture params have 1 component the
fourcc needs to be set to VA_FOURCC_Y800.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 0287ca6f3871d202624ddbea97a4b3771e982e68)
|
|
Add support for Y800 input data for jpeg encode tests.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit fa21a443ae83eb90bef041b114c4308f5d0e3847)
|
|
...plus optimize TestInput::toOutputFourcc()
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 2d0bb8fbdc15c0323fdbee2dfb5f10e7226fcb1b)
|
|
Move JPEG::Encode::TestInput member initialization to its static
"create" routine so that an empty/invalid Shared can be returned
if the input fourcc is not handled/implemented. This will allow
a caller/test to react appropriately.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 9dd60d7fc73e35207d629519102afdc4f6ff668d)
|
|
Make initialization of YUV input for jpeg encode a
little faster, esp. for larger resolution.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 6bf510f54b41dc9a4aca3d3ad921ec47d5fbfafe)
|
|
Let the ::JPEG::Encode::TestInput class deal with
converting from its input fourcc to its expected
output fourcc.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 37a15c1e9e6bf67a37c8d664f93d5946ff2819ce)
|
|
...and make the constructor private so that only Shared
instances can be created.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit f6ee6933a9d1e7d922817dd1ef770e8939bdedb9)
|
|
Move the ::JPEG::Encode::TestInputCreator's to the
i965_jpeg_test_data[.h|.cpp] files.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit b3a8049d5cd9e44daa255173f9783cd4f4b2fa55)
|
|
Move the implementation of JPEG::Encode::TestInput to the
compilation unit file (.cpp). This helps reduce the number
of include headers needed in the header file.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 034440cd4cee59f76ad211cb80108c1566561d10)
|
|
The ::JPEG::Encode::TestInput::SharedConst typedef should
actually use a 'const TestInput' template parameter
for the std::shared_ptr. Hence, the name.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 393019134cfe9bde212b87f04362be4ad649e42c)
|
|
The toString template is generic and should be part of the
i965_streamable.h header.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 0442e739adc068ad86f084fb8582297fccb4117e)
|
|
Both jpeg decode and encode test files use this macro.
So move it to the common test.h header to avoid duplicating
it.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Sean V Kelley <seanvk@posteo.de>
(cherry picked from commit 8b876d6cd7ae8911bef38de673731556e300999f)
|
|
V2: add vpp_sharpness_filtering() in gen75&gen8_vebox_process_picture()
It fixes below issues:
https://bugs.freedesktop.org/show_bug.cgi?id=96987
https://bugs.freedesktop.org/show_bug.cgi?id=96988
Signed-off-by: peng.chen <peng.c.chen@intel.com>
(cherry picked from commit fa3d1c3799c2633ff49fffb9dc6fc684e2db6565)
|
|
v2: The ending position in VEB_DI_IECP must be within the surface region
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
(cherry picked from commit 20edbb18570d5ec5e87906d87afa98885c12fac7)
|
|
CBR and VBR for low power encode depend on the fully loaded HuC firmware.
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
(cherry picked from commit f3d975c39ad1b63a3afa8cf1534e7a508deb2625)
|
|
Signed-off-by: Xiang, Haihao <haihao.xiang@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
(cherry picked from commit 60a27d6bf7bf69accabe5b783000eb7aebbb2ed7)
|
|
Add JPEG encode tests that encode raw I420 and NV12 data
at quality 100 and then decodes them to verify proper
encoding.
Currently, the 7680x4320 I420 test fails because ~40-60
Y-values (i.e. plane 0) in each line from the decoded
bitstream are off by more than 2 of the original raw
I420 values. It is not clear why only this resolution
exhibits this problem.
v2: don't create any input data in test fixture if
jpeg encoding is not supported.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
(cherry picked from commit 6ee403d2576d85c62a51ce291a1e37ef14858d1a)
|
|
Common utilities and functions that may be useful for multiple
tests.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
(cherry picked from commit 1c1e91cb597910111c5acea238d68d666c515655)
|
|
Add a wrapper that calls the driver i965_SyncSurface.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
(cherry picked from commit 0f8dc3d11e470747a1b90fe9c2eea5c8070893a5)
|
|
Add convenience streamable operators for VA and other common
data structures so that tests can log them as needed.
v2: put std::array stream operators into the std namespace
otherwise gcc 5.x complains.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
(cherry picked from commit d41af8d42e6f3522d7a1af40cae7232c52d47d9c)
|
|
Add support for calling i965_CreateSurfaces2 so that we
can pass VASurfaceAttributes. This is needed to set a
particular surface pixel format in some tests.
We must call i965_CreateSurfaces2 via the vtable since
it is a static function within the i965_drv_video.c
file... thus hidden.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Reviewed-by: Zhao Yakui <yakui.zhao@intel.com>
(cherry picked from commit f4adf3fe4d9bfa2fc8675abf73f6e3ad28881b7c)
|