summaryrefslogtreecommitdiff
path: root/tests/kms_fbc_crc.c
AgeCommit message (Collapse)Author
2014-11-24lib/igt_debugfs: Don't setup crc in _newDaniel Vetter
The problem is that this causes writes to registers, and if the pipe is off they might go nowhere (e.g. when runtime pm is enabled). Furthermore we can only really check once the modeset setup is done, but again most tests set up the CRC structure before calling igt_commit and friends. We could add crc restore support to the kernel's rpm code, but that will end up being rather invasive and fragile hard-to-test code. Now originally this was needed back when CRC support wasn't available everywhere. But that's fixed now. So given all this just drop that sanity check and make sure that we only touch the debugfs file (and so the hw state) when we know the pipe is running in the desired configuration. A complementary kernel patch will try to catch offenders by returning -EIO if the pipe is off. v2: Forgot to git add one hunk. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=86092 Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-11-06docs: add some test descriptionsThomas Wood
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-11-04ioctl_wrappers: Pass in offset to CPU mmapsChris Wilson
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-09-30test/kms, pm: use drm_open_any_masterImre Deak
These tests require DRM master right, so make sure they have it from the beginning. This gives an early indication if another DRM master is running and makes the given test skip (with a proper explanation of the reason) instead of exiting with error. Signed-off-by: Imre Deak <imre.deak@intel.com>
2014-08-30batch: Specify number of relocations to accommodateChris Wilson
Since relocations are variable size, depending upon generation, it is easier to handle the resizing of the batch request inside the BEGIN_BATCH macro. This still leaves us with having to resize commands in a few places - which still need adaption for gen8+. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-29Prepare for 64bit relocation addressesChris Wilson
This reveal that quite a few locations were writing relocation offsets but only allowing for 32 bit addresses. To reveal such places in active tests, we also now double check that we do not use more batch space than declared. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-21kms_fbc_crc: Use I915_TILING_X to create fbsDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-12lib/igt_kms: set_vt_graphics_mode is a low-level helperDaniel Vetter
So give it a kmstest_ prefix and shuffle it around a bit. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-08-12lib/igt_kms: Unify pipe name helpersDaniel Vetter
And add api doc while at it. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-07-11lib/igt.cocci: Add stanza for for_each_pipeDaniel Vetter
Damien dodged this ... Also run the script while at it. v2: Don't just capture identifiers for pipe, but also expressions. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-10tests/kms_fbc_crc: Update blit code for BDWVille Syrjälä
Switch to XY_COLOR_BLT from COLOR_BLT and use the appropriate macros to make the code work on BDW. Also make the blit 8bpp instead if 16bpp. 8bpp is what it was supposed to use all along. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=76307 Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-05-14tests: sprinkle igt loggingDaniel Vetter
All the cases that simply dump some debug information and couldn't be converted to some of the fancier macros. Some information output removed when it's redundant with the subtest status. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-05-13tests/kms_fbc_crc: Use igt_create_color_fb()Ville Syrjälä
No need to hand roll the alloc fb+paint code anymore, just use the common helper. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-05-13tests/kms_fbc_crc: Reset display state between subtestsVille Syrjälä
If a subtest fails it'll leave the display in a state that may prevent the next subtest from working. So reset the display state between subtests. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-05-13tests/kms_fbc_crc: Switch to using the igt_display stuffVille Syrjälä
Let's try to use the common igt_display framework to make the code a bit nicer. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-05-13tests/kms_fbc_crc: Simplify pipe_crc messVille Syrjälä
There's no need to keep an array of pipe_crc objects around. Just keep one for the duration of the specific crtc/connector/test combo. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-05-09tests/kms_fbc_crc: Check context support earlierVille Syrjälä
Check for context support before doing anything else in the subtest. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-05-09tests/kms_fbc_crc: Allow the subtests to pass even if some planes aren't FBC ↵Ville Syrjälä
capable Don't skip the entire subtest if FBC only works on some of the primary planes, as is the case on pre-gen4 and hsw+. Only skip the entire subtest if all crtc/connector combinations skip. Also print some kind of status for all otherwise valid crtc/connector combos if they skip due to FBC being disabled or CRC support not being there. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2014-03-26lib/igt_fb: switch to igt_ prefix from kmstest_Daniel Vetter
Shorter and more in line with our general igt_ prefix for everything which isn't somehow intel or i915-gem or otherwise hw specific - these helpers here are all fully generic framebuffer handling functions based on kms + cairo. Well, the actual buffer alloc is done with i915 gem, but meh ;-) Two special cases: - bpp_depth_to_drm_format and drm_format_to_bpp completely lacked prefixes, so just add igt_. - write_fb was a bit misleading given that we have gem_write for uploading to buffers. Rename that to write_fb_to_png to make it crystal clear what this thing does even without looking at docs. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-26lib/igt_kms: s/kmstest_create_fb2/kmstest_create_fb/Daniel Vetter
Simplify the name since the old _fb function is now gone. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-26lib: remove kmstest_create_fbDaniel Vetter
Use the new-style function using drm fourcc codes instead everywhere. To easily use thew fourcc based interface also expose bpp_depth_to_drm_format from the library. Finally include drm_fourcc.h from the igt_kms.h header since pretty much everyone needs this now. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-22lib: unnecessary header removal for drmtest.h, part 1Daniel Vetter
Brought a few missing headers to light in ioctl_wrappers.h, too. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-22lib/intel_batchbuffer: igt_ prefix for rendercopy/mediafill funcsDaniel Vetter
Now everything is prepared to pour some neat api docs over this all. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-22lib/intel_batchbuffer: igt_ namespace for the buffer structureDaniel Vetter
Step one to properly namespace the rendercpy/mediafill functions. Als give the buf_height/width helpers a proper igt_ prefix. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-22lib: make rendercopy.h an internal headerDaniel Vetter
And move the public interfaces into intel_batchbuffer.[hc]. A bit messy since we are fairly inconsistent with our header #include handling. Also exclude rendercopy.h from the documentation. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-17lib/igt_debugfs: s/igt_pipe_crc_check/igt_require_pipe_crc/Daniel Vetter
Functions which provide feature checks through igt_skip should be of the form <prefix>_require_<feature>. Otoh feature checks which return in a boolean whether the feature is available should be of the form <prefix>_has_<feature>, e.g. gem_has_blt. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-17lib/igt_debugfs: Remove debugfs from pipe crc functionsDaniel Vetter
All tests have now lost explicit references to igt_debugfs_t! Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-17lib/igt_debugfs: Remove debugfs from igt_debugfs_fopenDaniel Vetter
Also add a missing igt_assert to kms_fbc_crc and again add the missing Returns: section to the api doc. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-03-12lib/igt_debugfs: drop drm_fd argument from igt_pipe_crc_newDaniel Vetter
It's nowhere used and removing it gives us a cleaner, more orthogonal interface. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-01-13tests: Drop glib.h include from kms_cursor_crc and kms_fbc_crcVille Syrjälä
kms_cursor_crc and kms_fbc_crc don't need glib.h. This was just some copy-paste error on my part. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
2013-12-31kmstest: Fix up lifetimes of cairo objectsChris Wilson
cairo_t is the short lived drawing context, whereas cairo_surface_t is the heavyweight object that persists and is also tied to underlying GEM objects. So make the kmstest API reflect the different weights and fix the lifetime and underlying object reference leaks. Based on the fix by Paulo Zanoni. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2013-12-06lib: add igt_pipe_crc_checkDaniel Vetter
No need to duplicate this all over the place. Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-12-06tests: drm_open_any doesn't failDaniel Vetter
Or more precisely: It already has an igt_require. So we cant ditch it from tests. Reviewed-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-11-28kms_fbc_crc: Remove unused variableDamien Lespiau
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2013-11-27kms_fbc_crc: Add a CRC based FBC testVille Syrjälä
kms_fbc_crc will perform various write operations to the scanout buffer whilc FBC is enabled. CRC checks will be used to make sure the modifcations to scanout buffer are detected. The operations include: - page flip - GTT mmap - CPU mmap - blit - rendercopy - context switch + rendercopy - combination of a page flip and each operation listed above v2: Use gem_sw_finish instead of drmModeDirtyFB after CPU access v3: Drop pwrite tests, call gem_bo_busy() after rendering, drop set_domain() calls after mmap access, wait for 2 vblanks Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>