mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-08 16:36:14 +00:00
kms_rotation_crc: Just store the igt_plane_t in data
Now that we're always using an igt_plane_t, we can get rid of ->type to use ->directly without those switch() or if()/else Signed-off-by: Damien Lespiau <damien.lespiau@intel.com>
This commit is contained in:
parent
0b3a30ee5a
commit
063d22ecea
@ -57,7 +57,7 @@ typedef struct {
|
|||||||
int gfx_fd;
|
int gfx_fd;
|
||||||
igt_display_t display;
|
igt_display_t display;
|
||||||
igt_output_t *output;
|
igt_output_t *output;
|
||||||
int type;
|
igt_plane_t *plane;
|
||||||
int pipe;
|
int pipe;
|
||||||
struct igt_fb fb;
|
struct igt_fb fb;
|
||||||
igt_crc_t ref_crc;
|
igt_crc_t ref_crc;
|
||||||
@ -96,7 +96,6 @@ static bool prepare_crtc(data_t *data)
|
|||||||
drmModeModeInfo *mode;
|
drmModeModeInfo *mode;
|
||||||
igt_display_t *display = &data->display;
|
igt_display_t *display = &data->display;
|
||||||
igt_output_t *output = data->output;
|
igt_output_t *output = data->output;
|
||||||
igt_plane_t *plane;
|
|
||||||
int fb_id;
|
int fb_id;
|
||||||
|
|
||||||
igt_output_set_pipe(output, data->pipe);
|
igt_output_set_pipe(output, data->pipe);
|
||||||
@ -105,19 +104,6 @@ static bool prepare_crtc(data_t *data)
|
|||||||
if (!data->output->valid)
|
if (!data->output->valid)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
switch (data->type) {
|
|
||||||
case DRM_PLANE_TYPE_OVERLAY:
|
|
||||||
igt_info("Sprite plane\n");
|
|
||||||
plane = igt_output_get_plane(output, IGT_PLANE_2);
|
|
||||||
break;
|
|
||||||
case DRM_PLANE_TYPE_PRIMARY:
|
|
||||||
igt_info("Primary plane\n");
|
|
||||||
plane = igt_output_get_plane(output, IGT_PLANE_PRIMARY);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* create the pipe_crc object for this pipe */
|
/* create the pipe_crc object for this pipe */
|
||||||
if (data->pipe_crc)
|
if (data->pipe_crc)
|
||||||
igt_pipe_crc_free(data->pipe_crc);
|
igt_pipe_crc_free(data->pipe_crc);
|
||||||
@ -141,7 +127,7 @@ static bool prepare_crtc(data_t *data)
|
|||||||
|
|
||||||
paint_squares(data, &data->fb, mode, DRM_ROTATE_180);
|
paint_squares(data, &data->fb, mode, DRM_ROTATE_180);
|
||||||
|
|
||||||
igt_plane_set_fb(plane, &data->fb);
|
igt_plane_set_fb(data->plane, &data->fb);
|
||||||
igt_display_commit(display);
|
igt_display_commit(display);
|
||||||
|
|
||||||
/* Collect reference crc */
|
/* Collect reference crc */
|
||||||
@ -149,7 +135,7 @@ static bool prepare_crtc(data_t *data)
|
|||||||
|
|
||||||
paint_squares(data, &data->fb, mode, DRM_ROTATE_0);
|
paint_squares(data, &data->fb, mode, DRM_ROTATE_0);
|
||||||
|
|
||||||
igt_plane_set_fb(plane, &data->fb);
|
igt_plane_set_fb(data->plane, &data->fb);
|
||||||
igt_display_commit(display);
|
igt_display_commit(display);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -194,20 +180,14 @@ static int set_plane_property(data_t *data, int plane_id, const char *prop_name,
|
|||||||
static void cleanup_crtc(data_t *data, igt_output_t *output)
|
static void cleanup_crtc(data_t *data, igt_output_t *output)
|
||||||
{
|
{
|
||||||
igt_display_t *display = &data->display;
|
igt_display_t *display = &data->display;
|
||||||
igt_plane_t *plane = NULL;
|
|
||||||
|
|
||||||
igt_pipe_crc_free(data->pipe_crc);
|
igt_pipe_crc_free(data->pipe_crc);
|
||||||
data->pipe_crc = NULL;
|
data->pipe_crc = NULL;
|
||||||
|
|
||||||
igt_remove_fb(data->gfx_fd, &data->fb);
|
igt_remove_fb(data->gfx_fd, &data->fb);
|
||||||
|
|
||||||
if (data->type == DRM_PLANE_TYPE_PRIMARY)
|
if (data->plane != NULL)
|
||||||
plane = igt_output_get_plane(output, IGT_PLANE_PRIMARY);
|
igt_plane_set_fb(data->plane, NULL);
|
||||||
else if (data->type == DRM_PLANE_TYPE_OVERLAY)
|
|
||||||
plane = igt_output_get_plane(output, IGT_PLANE_2);
|
|
||||||
|
|
||||||
if (plane != NULL)
|
|
||||||
igt_plane_set_fb(plane, NULL);
|
|
||||||
|
|
||||||
igt_output_set_pipe(output, PIPE_ANY);
|
igt_output_set_pipe(output, PIPE_ANY);
|
||||||
igt_display_commit(display);
|
igt_display_commit(display);
|
||||||
@ -217,7 +197,6 @@ static void test_sprite_rotation(data_t *data)
|
|||||||
{
|
{
|
||||||
igt_display_t *display = &data->display;
|
igt_display_t *display = &data->display;
|
||||||
igt_output_t *output;
|
igt_output_t *output;
|
||||||
igt_plane_t *sprite;
|
|
||||||
igt_crc_t crc_output;
|
igt_crc_t crc_output;
|
||||||
int p;
|
int p;
|
||||||
int plane_id;
|
int plane_id;
|
||||||
@ -228,18 +207,17 @@ static void test_sprite_rotation(data_t *data)
|
|||||||
data->output = output;
|
data->output = output;
|
||||||
for (p = 0; p < igt_display_get_n_pipes(display); p++) {
|
for (p = 0; p < igt_display_get_n_pipes(display); p++) {
|
||||||
data->pipe = p;
|
data->pipe = p;
|
||||||
data->type = 0;
|
|
||||||
data->rotate = DRM_ROTATE_180;
|
data->rotate = DRM_ROTATE_180;
|
||||||
|
|
||||||
if (!prepare_crtc(data))
|
if (!prepare_crtc(data))
|
||||||
continue;
|
continue;
|
||||||
sleep(2);
|
sleep(2);
|
||||||
|
|
||||||
sprite = igt_output_get_plane(output, IGT_PLANE_2);
|
data->plane = igt_output_get_plane(output, IGT_PLANE_2);
|
||||||
|
|
||||||
igt_require(igt_plane_supports_rotation(sprite));
|
igt_require(igt_plane_supports_rotation(data->plane));
|
||||||
|
|
||||||
plane_id = sprite->drm_plane->plane_id;
|
plane_id = data->plane->drm_plane->plane_id;
|
||||||
if (plane_id != 0) {
|
if (plane_id != 0) {
|
||||||
igt_info("Setting rotation property for plane:%d\n", plane_id);
|
igt_info("Setting rotation property for plane:%d\n", plane_id);
|
||||||
ret = set_plane_property(data, plane_id, "rotation", BIT(data->rotate), &crc_output);
|
ret = set_plane_property(data, plane_id, "rotation", BIT(data->rotate), &crc_output);
|
||||||
@ -262,7 +240,6 @@ static void test_primary_rotation(data_t *data)
|
|||||||
{
|
{
|
||||||
igt_display_t *display = &data->display;
|
igt_display_t *display = &data->display;
|
||||||
igt_output_t *output;
|
igt_output_t *output;
|
||||||
igt_plane_t *primary;
|
|
||||||
int p;
|
int p;
|
||||||
int plane_id;
|
int plane_id;
|
||||||
int ret;
|
int ret;
|
||||||
@ -275,18 +252,17 @@ static void test_primary_rotation(data_t *data)
|
|||||||
data->output = output;
|
data->output = output;
|
||||||
for (p = 0; p < igt_display_get_n_pipes(display); p++) {
|
for (p = 0; p < igt_display_get_n_pipes(display); p++) {
|
||||||
data->pipe = p;
|
data->pipe = p;
|
||||||
data->type = 1;
|
|
||||||
data->rotate = DRM_ROTATE_180;
|
data->rotate = DRM_ROTATE_180;
|
||||||
|
|
||||||
if (!prepare_crtc(data))
|
if (!prepare_crtc(data))
|
||||||
continue;
|
continue;
|
||||||
sleep(2);
|
sleep(2);
|
||||||
|
|
||||||
primary = igt_output_get_plane(output, IGT_PLANE_PRIMARY);
|
data->plane = igt_output_get_plane(output, IGT_PLANE_PRIMARY);
|
||||||
|
|
||||||
igt_require(igt_plane_supports_rotation(primary));
|
igt_require(igt_plane_supports_rotation(data->plane));
|
||||||
|
|
||||||
plane_id = primary->drm_plane->plane_id;
|
plane_id = data->plane->drm_plane->plane_id;
|
||||||
if (plane_id != 0) {
|
if (plane_id != 0) {
|
||||||
igt_info("Setting rotation property for plane:%d\n", plane_id);
|
igt_info("Setting rotation property for plane:%d\n", plane_id);
|
||||||
ret = set_plane_property(data, plane_id, "rotation", BIT(data->rotate), &crc_output);
|
ret = set_plane_property(data, plane_id, "rotation", BIT(data->rotate), &crc_output);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user