summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-09-05tools/null_state_gen: gen8 golden stategen8_golden_stateMika Kuoppala6-578/+317
Convert the hackish rendercopy based state to golden state Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2014-09-05tools/null_state_gen: build cmd and state space separatelyMika Kuoppala6-462/+404
Instead of building batch directly to memory, build into cmd and state arrays. This representation allows us more flexibility in batch state expression and batch generation/relocation. As a bonus, we can also attach the line information that produced the batch data to help debugging. There is no change in the output states produced. This can be considered as a preparatory patch to help introduce gen8 golden state. Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2014-09-05lib: Add MI_LOAD_REGISTER_IMMMika Kuoppala4-7/+4
Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2014-09-05lib/gen6_render: fix GEN6_3DSTATE_VF_STATISTICS defineMika Kuoppala1-1/+1
We dont use this pre CTG and we will need it for gen8 golden state. Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2014-09-05lib/rendercopy: fix a typo in defineMika Kuoppala3-3/+3
No functional changes Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2014-09-05tools/null_state_gen: terminate relocs with -1Mika Kuoppala1-0/+1
as this was already changed in kernel. Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
2014-09-05lib/igt_aux: Improve wait_for_keypress helper a bitDaniel Vetter3-8/+23
- Use keys in just one env variable to enable/disable it. - Add an informational message so that the users knows when to press the key (more useful over ssh than when run on the terminal ofc). - Improve the documentation so that it's clearer how to use this when running tests. Cc: Rodrigo Vivi <rodrigo.vivi@intel.com> Cc: Damien Lespiau <damien.lespiau@intel.com> Acked-by: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-09-04igt_core: zero exit_handler_count before forkingPaulo Zanoni1-1/+10
If we don't reset exit_handler_count before forking, we may have a case where the forked process is killed before it even does "exit_handler_count = 0": in that case, it is still finishing forking. When that happens, we may end up calling our exit handlers. On the specific bug I'm investigating, we call igt_reset_connnectors(), which ends up in a deadlock inside malloc_atfork. If we attach gdb to the forked process and get a backtrace, we have: (gdb) bt 0 __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:95 1 0x00007f15634d36bf in _L_lock_10524 () from /lib/x86_64-linux-gnu/libc.so.6 2 0x00007f15634d12ef in malloc_atfork (sz=139729840351352, caller=<optimized out>) at arena.c:181 3 0x00007f15640466a1 in drmMalloc () from /usr/lib/x86_64-linux-gnu/libdrm.so.2 4 0x00007f1564049ad7 in drmModeGetResources () from /usr/lib/x86_64-linux-gnu/libdrm.so.2 5 0x0000000000408f84 in igt_reset_connectors () at igt_kms.c:1656 6 0x00000000004092dc in call_exit_handlers (sig=15) at igt_core.c:1130 7 fatal_sig_handler (sig=15) at igt_core.c:1154 8 <signal handler called> 9 0x00007f15634cce60 in ptmalloc_unlock_all2 () at arena.c:298 10 0x00007f156350ca3f in __libc_fork () at ../nptl/sysdeps/unix/sysv/linux/x86_64/../fork.c:188 11 0x000000000040a029 in __igt_fork_helper (proc=proc@entry=0x610fc4 <signal_helper>) at igt_core.c:910 12 0x000000000040459d in igt_fork_signal_helper () at igt_aux.c:110 13 0x0000000000402ab7 in __real_main63 () at bug.c:76 14 0x000000000040296e in main (argc=<optimized out>, argv=<optimized out>) at bug.c:63 After doing some searches for "stuck at malloc_atfork", it seems to me we probably shouldn't be doing any malloc calls at this point of the code, so the best way to do that is to make sure we can't really run the exit handlers. So on this patch, instead of resetting the exit handlers after forking, we reset them before forking, and then restore the original value on the parent process. I can reproduce this problem by running "./kms_flip --run-subtest 2x-flip-vs-modeset" under an infinite loop. Usually after a few hundred calls, we end up stuck on the deadlock mentioned above. QA says this problem happens every time, but I'm not sure what is the difference between our environments that makes the race condition so much easier for them. The kms_flip.c problem can be considered a regression introduced by: commit eef768f283466b6d7cb3f08381f72ccf3951dc99 Author: Thomas Wood <thomas.wood@intel.com> Date: Wed Jun 18 14:28:43 2014 +0100 tests: enable extra connectors in kms_flip and kms_pipe_crc_basic even though this commit is not the one that introduced the real problem. It is also possible to reproduce this problem with a few modifications to template.c: - Add a call to igt_enable_connectors() inside the first fixture. - Add igt_fork_signal_helper() and igt_stop_signal_helper() calls around subtest B. Note that the crucial piece is that the parent actively kills helper children, and if we skip tests this can happen _really_ fast. See e.g. commit a031a1bf93b828585e7147f06145fc5030814547 Author: Daniel Vetter <daniel.vetter@ffwll.ch> Date: Fri Sep 13 16:43:22 2013 +0200 lib/drmtest: ducttape over fork race for past hilarity in this area. Cc: Thomas Wood <thomas.wood@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=81367 Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-09-03igt/gem_concurrent_blit: Move igt_require() out of childrenChris Wilson1-6/+21
Otherwise the test infrastructure throws a fit. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=83420 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-09-03igt/gem_gtt_hog: Convert opencoded fork()/wait() over to igt_fork()Chris Wilson1-17/+4
No reason not to use the common infrastructure here. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-09-03NEWS: Updates in anticipation of the next releaseDaniel Vetter1-0/+21
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
2014-09-03gem_workarounds: intel_wa_registers is now prefixed with i915Damien Lespiau1-1/+1
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com> Reviewed-by: Arun Siluvery <arun.siluvery@linux.intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-09-01rendercopy/gen8: Fix vertex buffer relocationChris Wilson1-4/+3
I was thrown by the routine calling itself gen7 when in it gen8 specific and required 64bit relocation fixes. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-31igt/gem_concurrent_blit: Use the preallocated dummy bo for temporary copiesChris Wilson1-30/+19
Use the existing allocation, saves having to make fresh allocations in the innermost loop - trimming code and potential failure paths. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-30batch: Fix typo in BLIT_BATCH_BEGINChris Wilson1-1/+1
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-30batch: Specify number of relocations to accommodateChris Wilson45-180/+152
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-29igt/gem_seqno_wrap: Use debugfs singletonChris Wilson1-19/+3
This has the added advantage of automounting debugfs for us. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-29Prepare for 64bit relocation addressesChris Wilson34-109/+47
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-29igt/gem_concurrent_blit: Apply some fence pressure as wellChris Wilson1-27/+75
As before, we also want to race against access through the fence registers. This overlaps slightly with gem_set_tiling_vs_blt, but the different access pattern should make it useful. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-29igt: Tweak the igt_assert_cmpint macroChris Wilson1-2/+2
Minor tweak to embed the constant format string rather than passing it to the vararg printf. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-29lib/batchbuffer: Guard intel_blt_copy with even more assertsChris Wilson1-10/+14
Assert that the source/destination bounds are within the pitch and size of the associated bo. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-29lib/batchbuffer: Store the gen in a local variableChris Wilson2-4/+7
Reduce lookups and improve code clarity. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-29scripts: Add capability to resume interrupted run-tests.sh sessionMike Mason1-4/+10
Piglit provides a 'resume' feature that can restart an interrupted test run at the point where it stopped. This patch adds that feature to run_tests.sh. Signed-off-by: Mike Mason <michael.w.mason@intel.com> [Thomas: remove additional new line from end of file] Signed-off-by: Thomas Wood <thomas.wood@intel.com>
2014-08-29igt/gem_concurrent_blit: Add ring race checksChris Wilson1-27/+79
Similar to the previous commit, we also want to check that every pipeline is serialised correctly. This extends the test to include render copies as well as blits. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-29igt/gem_concurrent_blit: Add GPU-vs-GPU checksChris Wilson1-14/+86
In future, we may allow reordering of GPU batches. This implements a simple race detector by extending the current CPU-vs-GPU checks. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-29igt: Prettify igt_assert_eq() failure messagesChris Wilson11-40/+76
This just improves the language about the exact failure to reduce confusion. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2014-08-27igt/gem_workarounds: igt to test workaround registersArun Siluvery3-0/+233
Some of the workarounds are lost followed by a gpu reset, suspend/resume; this patch adds a test which compares register state before and after the test scenario. This test currently verifies only bdw workarounds. v2: address patch cleanup comments (ThomasW) Add binary to ignore list and use igt_debugfs helper fns to read debugfs file and igt_info for printing debug info. v2.1: address minor comments from Daniel use igt_main as opposed to normal main Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com> [danvet: Drop igt_exit, it's already in igt_main.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-08-27shader-debugger: Force file/stdout IO as UTF-8Rémi Cardona1-1/+4
Not all locales on linux are UTF-8, the most notable being the C locale. Python will use the ASCII codec for stream IO in this case and will barf on the Copyright sign at the top of .g4a files. Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=519434 Signed-off-by: Rémi Cardona <remi@gentoo.org> Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-26lib: Use igt macros moreDaniel Vetter2-18/+19
Stragglers. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-08-26lib/igt_* Use igt macros in igt libariesDaniel Vetter3-38/+29
Except in igt_core since that would lead to some hilarious recursions. v2: Don't fflush any more, spotted by Chris. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-08-26lib/intel_* Use igt checks and macrosDaniel Vetter6-53/+38
Various stuff all over. Most done with the igt.cocci spatch, but with a few fixups by hand. And add igt_core.h includes where needed. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-08-26lib/rendercopy*: Use igt_assertDaniel Vetter6-23/+23
2014-08-26kms_rotation_crc: Calling commit2 instead of legacy commitSonika Jindal1-3/+1
Since planes are universal now, using commit2 so that drmModeSetPlane can be called for primary plane as well instead of drmModeSetCrtc. drmModeSetPlane will update the x,y,w,h for the plane. Cc: Damien Lespiau <damien.lespiau@intel.com> Signed-off-by: Sonika Jindal <sonika.jindal@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-08-26Merge two subtests for pm_rc6_residency IGT caseWendy Wang1-21/+12
Combine two subtests(rc6_residency_check and rc6_residency_counter) into one subtest(residency_accuracy) Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-08-21lib/fb: Assert, instead of silently failing, when creating fbsDamien Lespiau1-12/+6
We were either returning 0, or a negative value cast to an unsigned int for errors and the clients of that API weren't exactly checking anything. We're in luck, we can take shortcuts in a testing library to just assert when an expected error occurs. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21lib/fb: Replace straight igt_fail() by asserts with debug messagesDamien Lespiau1-3/+7
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21testdisplay: Make the desired tiling mode an unsigned intDamien Lespiau1-6/+7
We may be able to scan out more tiling formats in the future. Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21pm_rpm: Adjust to the new igt_create*fb() APIDamien Lespiau1-9/+12
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21pm_lpsp: Adjust to the new igt_create.*fb() APIDamien Lespiau1-3/+2
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21kms_sink_crc_basic: Adjust to the new igt_create.*fb() APIDamien Lespiau1-1/+1
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21kms_setmode: Adjust to the igt_create.*fb() APIDamien Lespiau1-3/+1
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21kms_render: Adjust to the new igt_create.*fb() APIDamien Lespiau1-2/+4
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21kms_psr_sink_crc: Adjust to the new igt_create.*fb() APIDamien Lespiau1-4/+4
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21kms_plane: Adjust to the new igt_create.*fb() APIDamien Lespiau1-4/+4
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21kms_pipe_crc_basic: Adjust to the new igt_create.*fb() APIDamien Lespiau1-1/+1
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21kms_mmio_vs_cs_flip: Adjust to the new igt_create_.*fb() APIDamien Lespiau1-6/+6
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21kms_flip_tiling: Adjust to the new igt_create_.*fb() APIDamien Lespiau1-2/+3
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21kms_flip: Adjust to the new igt_create_fb*() APIDamien Lespiau1-7/+7
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21kms_fence_pin_leak: Use I915_TILING_X to create fbsDamien Lespiau1-2/+2
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
2014-08-21kms_fbc_crc: Use I915_TILING_X to create fbsDamien Lespiau1-2/+2
Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>