diff options
author | jim.bride@linux.intel.com <jim.bride@linux.intel.com> | 2016-06-15 10:48:32 -0700 |
---|---|---|
committer | Marius Vlad <marius.c.vlad@intel.com> | 2016-07-04 17:28:56 +0300 |
commit | 8a0b93743646312f49e1eebfaf41495875ffbdf2 (patch) | |
tree | 57a3da060e085f1ce18f1c6b3e8ac6172cdbdfa3 /demos | |
parent | e73e398536a6415b28840a2f83bfbd50aa413b2b (diff) |
demos/intel_sprite_on: Fix connector iteration bug
Instead of looping until the first disconnected port is found,
now go through all possible connectors, drawing the sprite on
any connected display.
v2: Print a message if we don't find any valid connectors.
Signed-off-by: Jim Bride <jim.bride@linux.intel.com>
Signed-off-by: Marius Vlad <marius.c.vlad@intel.com>
Diffstat (limited to 'demos')
-rw-r--r-- | demos/intel_sprite_on.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/demos/intel_sprite_on.c b/demos/intel_sprite_on.c index 6dddded2..a3ece099 100644 --- a/demos/intel_sprite_on.c +++ b/demos/intel_sprite_on.c @@ -518,6 +518,8 @@ static void ricochet(int tiled, int sprite_w, int sprite_h, char key; int sprite_plane_count = 0; int i; + int found_count = 0; + // Open up I915 graphics device gfx_fd = drmOpen("i915", NULL); if (gfx_fd < 0) { @@ -564,10 +566,15 @@ static void ricochet(int tiled, int sprite_w, int sprite_h, // Find the native (preferred) display mode connector_find_preferred_mode(gfx_fd, gfx_resources, &curr_connector); if (curr_connector.mode_valid == 0) { - printf("No valid preferred mode detected\n"); - goto out; + + if (((c_index + 1) == gfx_resources->count_connectors) && + (found_count == 0)) + printf("Failed to find any valid connections.\n"); + continue; } + found_count++; + // Determine if sprite hardware is available on pipe // associated with this connector. sprite_plane_count = connector_find_plane(gfx_fd, &curr_connector, |