summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-02-04igt/vc4_wait_bo: Add tests with rendering performed.vc4Eric Anholt1-0/+41
These caught an unexpected bug with clear colors (we'd get the last executed clear's color in our new BO), while failing to catch the bug I'd been hoping to find all along. Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
2016-02-04igt/vc4_create_bo: Test various paths in BO creation.Eric Anholt3-0/+92
create-bo-0 fails on the current kernel, and it's something I want to fix. v2: Use do_ioctl_err(). Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
2016-02-04igt: Add a helper function for creating VC4 BOs.Eric Anholt3-13/+17
v2: Use do_ioctl(). Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
2016-02-04igt: Add a helper function for mapping VC4 BOs.Eric Anholt2-0/+19
v2: Use do_ioctl(). Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
2016-02-04igt: Add a helper function for getting a VC4 BO that's been drawn to.Eric Anholt3-0/+134
v2: Use do_ioctl(). Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
2016-02-04igt/vc4_wait_bo: Add a test for VC4's wait-for-BO ioctl.Eric Anholt3-0/+90
The pad subtest fails currently. v2: Use do_ioctl() and do_ioctl_err(). Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
2016-02-04igt/vc4_wait_seqno: Add a test for VC4's wait-for-seqno ioctl.Eric Anholt3-0/+76
v2: Use do_ioctl_err(). Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
2016-02-04igt: Add support for DRIVER_VC4 flags on tests.Eric Anholt2-2/+15
Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
2016-02-04configure.ac: Test for libdrm_vc4 and build vc4 tests based on it.Eric Anholt1-0/+12
Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Daniel Stone <daniels@collabora.com>
2016-02-04igt/gem_userptr_blits: Limit amount of mlocked surfacesChris Wilson2-28/+11
When testing surface eviction we don't need that many surfaces as we mlock surplus memory. Reducing the number of surfaces speeds up the test and prevents a couple of integer overflow bugs. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94004 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-02-04igt/gem_reset_stats: Convert from stop-rings to real hang injectionChris Wilson2-578/+299
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-02-04igt/gem_ctx_exec: Convert from stop-rings to a real GPU hang/resetChris Wilson1-2/+2
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-02-04tests/drv_hangman: Convert to using central list of enginesChris Wilson3-21/+17
Rather than encoding our own list of engines, use the common one for greater coverage. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-02-04igt/drv_hangman: Make the batchbuffer check more robustChris Wilson1-85/+24
All the external viewer expects of the GPU error capture is to extract the exact batch that triggered the hang. Everything else is internal detail to aide in post-mortem debugging of the kernel driver (i.e. subject to change) and not of the userspace portion (under control of the test). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-02-04igt/drv_hangman: Inject a true hangChris Wilson1-52/+14
Wean drv_hangman off the atrocious stop_rings and use a real GPU hang instead. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-02-04igt/gem_ringfill: Add exercising the default-ring to basic testingChris Wilson1-12/+9
ringfill generates a few very common errors when submitting requests, and historically these have been where we have had many implementation bugs, repeated over and over again. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-02-04igt/gem_streaming_writes: Set bb start alignment to 64b for IronlakeChris Wilson1-1/+3
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-02-04igt/gem_busy: Refactor to use gem_require_ring()Chris Wilson1-2/+4
Now that gem_require_ring() does the right thing with BSD1/BSD2 we can use it to our advantage here. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-29tools/intel_residency: use setitimer instead of {,u}alarmPaulo Zanoni1-10/+15
It seems that Android doesn't have ualarm(). Let's use setitimer() instead. The tool still won't compile on Android due to igt_fb requiring Cairo, but we're supposed to solve this in another patch since our igt_fb calls don't actually require Cairo. Reported-by: Derek Morton <derek.j.morton@intel.com> Tested-by: Derek Morton <derek.j.morton@intel.com> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-29tests/pm_rpm: find an appropriate CRTC instead of hardcoding CRTC 0Paulo Zanoni1-10/+42
BSW does not allow CRTC 0 to be used on every connector, so we need to write code to actually find a suitable CRTC. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93124 Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-29tests/pm_rpm: remove POWER_DIR definitionPaulo Zanoni1-2/+0
Unused ever since we moved some code from pm_rpm.c to lib/. This is currently defined inside igt_aux.c. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-29tests/igt_fb: rename igt_get_all_formats to igt_get_all_cairo_formatsPaulo Zanoni4-11/+17
I recently had this discussion with Daniel where I didn't want to use igt_drm_format_to_bpp() because it uses the format_desc array, and igt_fb currently assumes that all the format_desc formats have a matching valid Cairo format, so I wouldn't be able to easily add formats such as ARGB2101010. The function that has the assumption mentioned above is igt_get_all_formats: its current users call igt_get_all_formats, and then call cairo-dependent functions, such as igt_get_cairo_ctx on the returned formats. In order to document the current behavior and prevent any problems in case we start adding new formats without matching Cairo versions to format_desc, rename igt_get_all_formats to igt_get_all_cairo_formats and make it explicitly check for CAIRO_FORMAT_INVALID. Requested-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-29lib/igt_fb: fix igt_get_all_formats documentationPaulo Zanoni1-1/+1
We give the callers a const pointer to a static variable that we reuse between multiple calls: they're not supposed to free it, and they don't free it today. Fix the documentation and leave the still reachable pointer instead of reworking the function and its callers. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-29lib/igt_draw: use igt_drm_format_to_bpp()Paulo Zanoni1-15/+1
Don't reimplement the function. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-29kms_frontbuffer_tracking: standardize the used FB sizesPaulo Zanoni1-1/+18
We want to make sure that both tiled and untiled buffers have the same size for the same width/height/format. This will allow better control over the failure paths exercised by our tests: when we try to flip from tiled to untiled, we'll be sure that we won't execute the error path that checks for buffer sizes. v2: Use the new igt_calc_fb_size() instead of implementing our own size calculation (Daniel). v3: We can now use igt_drm_format_to_bpp() (Daniel). Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-29kms_frontbuffer_tracking: use igt_drm_format_to_bpp()Paulo Zanoni1-16/+1
The only format from fb_get_bpp() not supported by igt_drm_format_to_bpp() is ARGB2101010, but we don't really use it in kms_frontbuffer_tracking, so we can do the switch. Adding ARGB2101010 to igt_fb won't be that simple since there's no equivalent Cairo format, and igt_fb users assume that all formats known by igt_fb have equivalent Cairo formats. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-29lib/igt_fb: make the automatic buffer sizes/strides smallerPaulo Zanoni2-17/+96
The big motivation behind this patch is that the current power-of-two granularity from igt_fb is way too big. There was more than one occasion where I had to work around this problem on kms_frontbuffer_tracking, and during my last workaround I was requested to just make igt_fb use more minimal buffers. I also need to export the size computation function so I won't need to reimplement it inside kms_frontbuffer_tracking. v2: - Fix the Yf sizes (Ville). - Don't change the Gen 2/3 behavior for both tiled and non-tiled. v3: - Edit the commit message, clarify that v1 was wrongly treating gen 2/3 non-tiled as tiled (Chris). Requested-by: Daniel Vetter <daniel.vetter@ffwll.ch> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
2016-01-28igt/gem_cs_tlb: Increase BB start alignment to 64bytesChris Wilson1-4/+4
Ironlake requires 64byte alignment for its MI_BATCH_BUFFER_START. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-28igt: More MI_STORE_DWORD fixes for gen5Chris Wilson3-16/+14
A few other tests I have updated recently to use MI_STORE_DWORD also need the magic bit for gen4/5. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-28igt/gem_ringfill: Set MI_MEM_VIRTUAL flag for gen<6Chris Wilson1-4/+3
bit22 of MI_STORE_DWORD is confusing as the meaning changed between physical/virtual addressing in early gen and GTT/ppGTT in later gen. It looks like gen4 and gen5 still need the flag. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-28lib: Hide BSD1/BSD2 rings on hardware without BSD2Chris Wilson1-0/+6
The kernel happily lets us run on I915_EXEC_BSD2 even with such hardware existing. Sigh. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-28tests: Add gem_exec_relocChris Wilson2-0/+231
The first steps towards basic relocation handling. In today's edition, we ask how well does the kernel fare if we pass it relocations via mmappings of our buffer objects. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_reset_stats: Convert residual calllers of gem_exec() to gem_execbuf()Chris Wilson1-4/+2
Missed from e3b68bb66683ad4cb4c80df904a3a21c98a2b6c2 due to rebasing fun. gem_reset_stats.c: In function 'inject_hang_ring': gem_reset_stats.c:227:19: error: implicit declaration of function 'gem_exec' [-Werror=implicit-function-declaration] gem_reset_stats.c:227:2: warning: nested extern declaration of 'gem_exec' [-Wnested-externs] Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_concurrent_blit: Disable libdrm buffer cache for child inheritanceChris Wilson1-13/+7
It just ends up with buffer leaks all over. On the flip side, it does allow us to inherit the bufmgr directly without worry of stomping over the aliased entries (and causing double closes). Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_concurrent_all: Pass buffer data downChris Wilson1-159/+151
In order reduce the number of parameters being passed everywhere, whilst simultaneously making more information available to the lower levels, pass the struct buffers around. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_cs_prefetch: Check each ringChris Wilson1-63/+68
Since each engine has its own ring, each is subject to CS prefetching and has its own layout that needs probing. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27Add I915_EXEC_DEFAULT to list of known enginesChris Wilson3-2/+7
I dropped this from the list of rings for some tests when refactoring to a common array. Almost all of the tests should be run over the default exec engine to ensure ABI backwards compatiblity. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_sync: Use common array of ringsChris Wilson1-16/+9
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_ringfill: Use common array of ringsChris Wilson1-17/+6
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_cs_tlb: Use common array of ringsChris Wilson1-11/+4
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_exec_nop: Use common array of ringsChris Wilson1-11/+4
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_storedw_loop: Use common array of ringsChris Wilson1-19/+10
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt: Add gem_exec_basicChris Wilson2-0/+64
Extremely basic check that we can dispatch an execbuf on every ring. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2016-01-27Extract array of execution enginesChris Wilson3-12/+20
A few tests wish to execute on every engine, so centralise the array of known engines. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27lib: Query the kernel for support of a particular exec idChris Wilson1-20/+22
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27lib: Share common __gem_execbuf()Chris Wilson17-133/+26
An oft-repeated function to check EXECBUFFER2 for a particular fail condition. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_ringfill: Allow listing subtests in gem_ringfillGabriel Feceoru1-1/+2
Moved gem_quiescent_gpu() call to the run path. Signed-off-by: Gabriel Feceoru <gabriel.feceoru@intel.com> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2016-01-27gem_ringfill: fix typo in test nameMaarten Lankhorst1-1/+1
Missing a r! Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
2016-01-27igt/gem_concurrent_blit: Tighter scoping of buffers variableChris Wilson1-5/+4
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2016-01-27igt/gem_concurrent_blit: Close userptr handle after importing into bufmgrChris Wilson1-0/+1
The bufmgr import creates a new handle from a name for the userptr - we can discard our original handle immediately. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>