mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-08 16:36:14 +00:00
tests: Add kms_legacy_colorkey
Add a quick test to make sure the legacy set colorkey ioctl only works for sprite planes. v2: Drop igt_fixtures Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
This commit is contained in:
parent
4271b15f3c
commit
2b74b2bb33
@ -274,6 +274,10 @@ void igt_wait_for_vblank(int drm_fd, enum pipe pipe);
|
|||||||
#define for_each_pipe(display, pipe) \
|
#define for_each_pipe(display, pipe) \
|
||||||
for (pipe = 0; pipe < igt_display_get_n_pipes(display); pipe++) \
|
for (pipe = 0; pipe < igt_display_get_n_pipes(display); pipe++) \
|
||||||
|
|
||||||
|
#define for_each_plane_on_pipe(display, pipe, plane) \
|
||||||
|
for (int i__ = 0; (plane) = &(display)->pipes[(pipe)].planes[i__], \
|
||||||
|
i__ < (display)->pipes[(pipe)].n_planes; i__++)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Can be used with igt_output_set_pipe() to mean we don't care about the pipe
|
* Can be used with igt_output_set_pipe() to mean we don't care about the pipe
|
||||||
* that should drive this output
|
* that should drive this output
|
||||||
|
1
tests/.gitignore
vendored
1
tests/.gitignore
vendored
@ -131,6 +131,7 @@ kms_flip
|
|||||||
kms_flip_event_leak
|
kms_flip_event_leak
|
||||||
kms_flip_tiling
|
kms_flip_tiling
|
||||||
kms_force_connector
|
kms_force_connector
|
||||||
|
kms_legacy_colorkey
|
||||||
kms_mmio_vs_cs_flip
|
kms_mmio_vs_cs_flip
|
||||||
kms_pipe_b_c_ivb
|
kms_pipe_b_c_ivb
|
||||||
kms_pipe_crc_basic
|
kms_pipe_crc_basic
|
||||||
|
@ -64,6 +64,7 @@ TESTS_progs_M = \
|
|||||||
kms_flip \
|
kms_flip \
|
||||||
kms_flip_event_leak \
|
kms_flip_event_leak \
|
||||||
kms_flip_tiling \
|
kms_flip_tiling \
|
||||||
|
kms_legacy_colorkey \
|
||||||
kms_mmio_vs_cs_flip \
|
kms_mmio_vs_cs_flip \
|
||||||
kms_pipe_b_c_ivb \
|
kms_pipe_b_c_ivb \
|
||||||
kms_pipe_crc_basic \
|
kms_pipe_crc_basic \
|
||||||
|
72
tests/kms_legacy_colorkey.c
Normal file
72
tests/kms_legacy_colorkey.c
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
* Copyright © 2015 Intel Corporation
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
* copy of this software and associated documentation files (the "Software"),
|
||||||
|
* to deal in the Software without restriction, including without limitation
|
||||||
|
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
* and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice (including the next
|
||||||
|
* paragraph) shall be included in all copies or substantial portions of the
|
||||||
|
* Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
* IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
|
#include "drmtest.h"
|
||||||
|
#include "igt_kms.h"
|
||||||
|
#include "igt_aux.h"
|
||||||
|
|
||||||
|
IGT_TEST_DESCRIPTION("Check that the legacy set colorkey ioctl only works on sprite planes.");
|
||||||
|
|
||||||
|
static int drm_fd;
|
||||||
|
static igt_display_t display;
|
||||||
|
static int p;
|
||||||
|
static igt_plane_t *plane;
|
||||||
|
static uint32_t max_id;
|
||||||
|
|
||||||
|
static void test_plane(uint32_t plane_id, int expected_ret)
|
||||||
|
{
|
||||||
|
struct drm_intel_sprite_colorkey ckey = {
|
||||||
|
.plane_id = plane_id,
|
||||||
|
};
|
||||||
|
|
||||||
|
igt_assert(drmCommandWrite(drm_fd, DRM_I915_SET_SPRITE_COLORKEY, &ckey,
|
||||||
|
sizeof(ckey)) == expected_ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
igt_simple_main
|
||||||
|
{
|
||||||
|
igt_skip_on_simulation();
|
||||||
|
|
||||||
|
drm_fd = drm_open_any_master();
|
||||||
|
|
||||||
|
kmstest_set_vt_graphics_mode();
|
||||||
|
|
||||||
|
igt_display_init(&display, drm_fd);
|
||||||
|
|
||||||
|
for_each_pipe(&display, p) {
|
||||||
|
for_each_plane_on_pipe(&display, p, plane) {
|
||||||
|
test_plane(plane->drm_plane->plane_id,
|
||||||
|
(plane->is_cursor || plane->is_primary) ? -ENOENT : 0);
|
||||||
|
|
||||||
|
max_id = max(max_id, plane->drm_plane->plane_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* try some invalid IDs too */
|
||||||
|
test_plane(0, -ENOENT);
|
||||||
|
test_plane(max_id + 1, -ENOENT);
|
||||||
|
|
||||||
|
igt_display_fini(&display);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user