summaryrefslogtreecommitdiffstats
path: root/chromeos/display
Commit message (Collapse)AuthorAgeFilesLines
* Changes how to compute the id of a display.mukai@chromium.org2013-05-233-48/+96
| | | | | | | | | | | | | Due to the discussion in crbug.com/240341, we prefer to use the name field rather than the product_code field. BUG=240341 R=oshima@chromium.org, marcheu@chromium.org TEST=compilation passed Review URL: https://chromiumcodereview.appspot.com/15368003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201756 0039d316-1c4b-4281-b951-d872f2087c98
* This is a subset CL of the crrev.com/14731027, andoshima@chromium.org2013-05-223-4/+193
| | | | | | | | | | | | | | | | | | counter part is crrev.com/15367003. I'll send another CL that hooks them once both are landed. * Add SoftwareMirroringController that implements software based mirroring. * EnterStateOrFallbackToSoftwareMirroring will try to fallback software mirroring if the hardware based mirroring failed. BUG=239776 TEST=covered by test Review URL: https://chromiumcodereview.appspot.com/15448004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201554 0039d316-1c4b-4281-b951-d872f2087c98
* chromeos: Minor improvements to OutputConfigurator logging.derat@chromium.org2013-05-202-18/+39
| | | | | | | | BUG=none Review URL: https://chromiumcodereview.appspot.com/15320004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@201100 0039d316-1c4b-4281-b951-d872f2087c98
* Move chromeos specific utility functions for display to chromeos/displayoshima@chromium.org2013-05-167-37/+626
| | | | | | | | BUG=240168 Review URL: https://chromiumcodereview.appspot.com/15067012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200466 0039d316-1c4b-4281-b951-d872f2087c98
* Use the correct output index to get state for outputs.oshima@chromium.org2013-05-134-20/+14
| | | | | | | | | BUG=239412 TEST=manual. see bug for repro step. Review URL: https://chromiumcodereview.appspot.com/14699004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@199695 0039d316-1c4b-4281-b951-d872f2087c98
* Warn on missing OVERRIDE/virtual everywhere, not just in header files.rsleevi@chromium.org2013-05-021-5/+7
| | | | | | | | | | This is only enabled for Linux (so far). BUG=115047 Review URL: https://chromiumcodereview.appspot.com/14696007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197788 0039d316-1c4b-4281-b951-d872f2087c98
* Scale TouchEvent's radius when touchscreen is in mirror modemiletus@chromium.org2013-04-192-0/+44
| | | | | | | | | | | | | | | | | TouchEvent's radius on Pixel is reported in the touchscreen's native resolution. When Pixel is connected to an external screen and running in mirror mode, the radius value is too large for the external screen's low display resolution. The radius value needs to be scaled properly in this case. BUG=229932 TEST=Switching to mirror mode when connecting Pixel to a low resolution external display, following the test in the issue and make sure the radius has a sensible value. Review URL: https://chromiumcodereview.appspot.com/14279002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195075 0039d316-1c4b-4281-b951-d872f2087c98
* Add derat to OWNERSoshima@chromium.org2013-04-121-0/+1
| | | | | | | | | | | | | so that presubmit can give better suggestion for reviewers. (Dan is already in chromeos/OWNERS, so this does not change his ability to approve changes) BUG=none NOTRY=true Review URL: https://chromiumcodereview.appspot.com/13956012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194051 0039d316-1c4b-4281-b951-d872f2087c98
* chromeos: Add unit tests for OutputConfigurator.derat@chromium.org2013-04-095-249/+774
| | | | | | | | | | | | | | This adds tests for display configuration. It also does some further cleanup in the OutputConfigurator class (e.g. single-monitor mode is used when two displays are connected but one is turned off). BUG=225242,225536 Review URL: https://chromiumcodereview.appspot.com/13947011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193224 0039d316-1c4b-4281-b951-d872f2087c98
* chromeos: Add testing support code to OutputConfigurator.derat@chromium.org2013-04-094-57/+128
| | | | | | | | | | | | | | | | | | | | This makes a few changes to OutputConfigurator to support upcoming tests: - Adds a TestApi class for dispatching XRandR events - Pulls the kVerticalGap constant out to be a static member - Adds a SetDelegateForTesting() method - Moves D-Bus code into the delegate It also fixes a bug that was probably introduced by one of my recent changes where the gap wasn't being applied between outputs. A test that I'm writing caught this. :-) BUG=225536 Review URL: https://chromiumcodereview.appspot.com/13756002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193155 0039d316-1c4b-4281-b951-d872f2087c98
* chromeos: Fix OutputConfigurator::Delegate leak.derat@chromium.org2013-04-051-1/+1
| | | | | | | | | BUG=225536 Review URL: https://chromiumcodereview.appspot.com/13472020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192520 0039d316-1c4b-4281-b951-d872f2087c98
* chromeos: Refactor OutputConfigurator.derat@chromium.org2013-04-054-1018/+957
| | | | | | | | | | | | | | | This moves OutputConfigurator's X11 code into a separate delegate class to make testing possible. It also removes some ugliness in the form of Displays, XRRScreenResources, and Windows getting passed between methods. No functional changes are intended. BUG=225536 Review URL: https://chromiumcodereview.appspot.com/13430025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192449 0039d316-1c4b-4281-b951-d872f2087c98
* chromeos: Support turning displays off in extended mode.derat@chromium.org2013-03-302-118/+131
| | | | | | | | | | | | | | This makes OutputConfigurator support requests from powerd that either the primary or secondary monitor be turned off in extended desktop mode. Previously, the panel always remained on. BUG=218387 Review URL: https://chromiumcodereview.appspot.com/13006006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191558 0039d316-1c4b-4281-b951-d872f2087c98
* Allow no-internal display modeoshima@chromium.org2013-03-301-0/+5
| | | | | | | | | | | | | | | - Remember primary per display pair - remember power state. Restore when restarted, but not boot time. - DefaultLayout is used to construct layout for display pair. It used to be used if the layout wasn't set before, but since layout has other data such as primary/mirror state, it makes more sense to copy it first. Cleanup: remove unnecessary code. BUG=218387 TEST=covered by test. manually tested on device. Review URL: https://chromiumcodereview.appspot.com/12865019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191509 0039d316-1c4b-4281-b951-d872f2087c98
* Update OWNERS for chromeos/displayoshima@chromium.org2013-03-271-1/+2
| | | | | | | | | | | | | Simon, I believe you're not working on this any more. Let me know if you want to be excluded. TBR=derat@chromium.org BUG=none NOTRY=true Review URL: https://chromiumcodereview.appspot.com/12942015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190990 0039d316-1c4b-4281-b951-d872f2087c98
* Remember mirroring statusoshima@chromium.org2013-03-242-42/+94
| | | | | | | | | | | | | -DisplayLayout now keeps track of mirroring state as well. -Load preference before Shell::Init is execute so that display controller can provide the correct state at boot/startup time -Added OutputConfigurator::Delegate so that OutputConfigurator can determine the state for dual display when the display is connected. BUG=196818 TEST=covered by unittests. Review URL: https://codereview.chromium.org/12716007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190276 0039d316-1c4b-4281-b951-d872f2087c98
* Use OutputConfigurator::SetDislpayMode for ctrl-fullscreenoshima@chromium.org2013-03-222-47/+2
| | | | | | | | | | | | | | DisplayManager knows the mirroring state, so no need to rely on OutputConfigurator to move to next state. There is a chance that dislpay may be disconnected when SetDisplayMode, but that's harmless as it simply returns false. BUG=180443 TEST=manual. see bug. Review URL: https://codereview.chromium.org/12496020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189738 0039d316-1c4b-4281-b951-d872f2087c98
* chromeos: Add DisplayPowerServiceProvider.derat@chromium.org2013-03-072-94/+92
| | | | | | | | | | | | | | | | | | | | | This makes Chrome export a SetDisplayPower D-Bus method call for the power manager. It also reworks OutputConfigurator to cache the most-recently-requested power state and use it for future display mode requests. Finally, it works around a related bug where multiple mouse events may be generated when the displays are reconfigured, which would result in a report of user activity that could abort suspending. BUG=chromium-os:39289,180348,chrome-os-partner:12662 TBR=sky@chromium.org Review URL: https://chromiumcodereview.appspot.com/12391004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186625 0039d316-1c4b-4281-b951-d872f2087c98
* Matching modes for mirroring should preserve interlacing.ynovikov@chromium.org2013-03-051-2/+7
| | | | | | | | | | | | | | | | | | Add a condition when searching for modes for mirroring - both modes must either be interlaced or progressive scan. Also, as internal panels don't support interlacing, do not attempt to panel fit interlaced modes on them. BUG=179207 TEST=Manually disabled modes, making interlaced one the preferred, then verified that this mode is not picked for mirroring, but the next one. Steps in the bug should also work, but I don't have the necessary hardware. Review URL: https://chromiumcodereview.appspot.com/12388090 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@186231 0039d316-1c4b-4281-b951-d872f2087c98
* Provides more types of errors for display status (2nd)mukai@chromium.org2013-03-012-7/+15
| | | | | | | | | | | | | | | Note that the text message itself is a placeholder. It has to be replaced by real sentences. Previous CL was reverted due to build failures on win aura. BUG=176011 TBR=jamescook@chromium.org,oshima@chromium.org TEST=ash_unittests passes on win_aura Review URL: https://codereview.chromium.org/12387043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185592 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 185456 which broke win aura build.mattm@chromium.org2013-03-012-15/+7
| | | | | | | | | | | | | | | | | | > Provides more types of errors for display status. > > Note that the text message itself is a placeholder. It has to be replaced > by real sentences. > > BUG=176011 > TEST=ash_unittests passes > > > Review URL: https://chromiumcodereview.appspot.com/12212171 TBR=mukai@chromium.org Review URL: https://codereview.chromium.org/12386043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185466 0039d316-1c4b-4281-b951-d872f2087c98
* Provides more types of errors for display status.mukai@chromium.org2013-03-012-7/+15
| | | | | | | | | | | | | Note that the text message itself is a placeholder. It has to be replaced by real sentences. BUG=176011 TEST=ash_unittests passes Review URL: https://chromiumcodereview.appspot.com/12212171 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185456 0039d316-1c4b-4281-b951-d872f2087c98
* Don't reconfigure framebuffer if the size is the sameoshima@chromium.org2013-03-011-2/+7
| | | | | | | | | | BUG=none TEST=manual Review URL: https://chromiumcodereview.appspot.com/12380041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185447 0039d316-1c4b-4281-b951-d872f2087c98
* Don't handle display change event/requests to avoid being killed by session ↵oshima@chromium.org2013-02-282-7/+17
| | | | | | | | | | | | manager BUG=177014 TEST=none Review URL: https://chromiumcodereview.appspot.com/12367007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@185127 0039d316-1c4b-4281-b951-d872f2087c98
* Reconfigure displays even if the output count didn't changeoshima@chromium.org2013-02-162-27/+21
| | | | | | | | | | | | | Remove obsolete STATE_DUAL_SECONDARY_ONLY TBR=jamescook@chromium.org BUG=chromium-os:12662 TEST=none Review URL: https://chromiumcodereview.appspot.com/12254041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182987 0039d316-1c4b-4281-b951-d872f2087c98
* Update display info and root windows only after outputs are configuredoshima@chromium.org2013-01-301-0/+2
| | | | | | | | | | BUG=169523 TEST=none Review URL: https://chromiumcodereview.appspot.com/12094051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179686 0039d316-1c4b-4281-b951-d872f2087c98
* Minimize black screen during the boot with multi displaysoshima@chromium.org2013-01-302-7/+31
| | | | | | | | | | | | | | | * Do not try to install Background when a root window is added if a background isn't set yet. * Set the boot screen background color to the root window during the boot if there is external display. BUG=171050 TEST=manual Review URL: https://chromiumcodereview.appspot.com/12079002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179502 0039d316-1c4b-4281-b951-d872f2087c98
* Defer configuring outputs instead of notifying changed eventoshima@chromium.org2013-01-262-57/+69
| | | | | | | | | | | | | This made 2.5 secs boot time improvement on stumpy + 2 displays. * moved notification code outside of x grab block. * add event trace BUG=163810 TEST=manual Review URL: https://chromiumcodereview.appspot.com/11953087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179043 0039d316-1c4b-4281-b951-d872f2087c98
* Implement support for monitor suspend.marcheu@chromium.org2013-01-252-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This speeds up idle resume by around 2.5 seconds. Previously, we would turn the panel off before idle suspend. Then we would suspend and resume. On resume, the kernel would restore the "off" state, and the Chrome monitor code would kick in to turn the panel on. This is a huge waste of time when each panel configuration step takes more than one second. Instead, just before suspending, we turn the backlight off and the panel on. On resume the kernel sets the panel state to on right away, and power_manager turns the backlight on. The Chrome monitor code still runs, but is a noop. This change needs this power_manager change to handle the backlight part: https://gerrit.chromium.org/gerrit/#/c/40971/ This landed as r178195, but was reverted in r178288 because it crashed in the VM tests; unregistering suspenddelay from the destructor was assuming that the object proxy was still around which wasn't the case. I fixed the destructor to not unregister the suspenddelay. BUG=chrome-os-partner:13364 TEST=By hand: reduce the idle suspend timeout, let the machine idle and TEST=suspend, press a key to resume and see how long it takes. The time TEST=it takes shrinks from ~4 seconds to ~1.5 second. TBR=sky@chromium.org Change-Id: I610995c12ed08624eb0bc91057d7c9bfa8002fbf Review URL: https://chromiumcodereview.appspot.com/12036092 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178754 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes the timing of OnDisplayChanged().mukai@chromium.org2013-01-242-15/+25
| | | | | | | | | | | | The current code doesn't call OnDisplayChanged() for CycleDisplayMode(). BUG=169321 TEST=on device, connext an external display and press Ctrl-F4 several times. Review URL: https://chromiumcodereview.appspot.com/12040050 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178506 0039d316-1c4b-4281-b951-d872f2087c98
* Speculative revert 178195: Implement support for monitor suspend.glotov@chromium.org2013-01-232-18/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change have made the following bots red: http://build.chromium.org/p/chromium.chromiumos/builders/ChromiumOS%20(x86) http://build.chromium.org/p/chromium.chromiumos/builders/ChromiumOS%20(amd64) http://build.chromium.org/p/chromium.chromiumos/builders/ChromiumOS%20(amd64) http://build.chromium.org/p/chromium.memory/builders/Chromium%20OS%20(amd64)%20ASAN > > This speeds up idle resume by around 2.5 seconds. > > Previously, we would turn the panel off before idle suspend. Then we would > suspend and resume. On resume, the kernel would restore the "off" state, and > the Chrome monitor code would kick in to turn the panel on. This is a huge > waste of time when each panel configuration step takes more than one second. > > Instead, just before suspending, we turn the backlight off and the panel on. > On resume the kernel sets the panel state to on right away, and power_manager > turns the backlight on. The Chrome monitor code still runs, but is a noop. > > This change needs this power_manager change to handle the backlight part: > https://gerrit.chromium.org/gerrit/#/c/40971/ > > BUG=chrome-os-partner:13364 > TEST=By hand: reduce the idle suspend timeout, let the machine idle and > TEST=suspend, press a key to resume and see how long it takes. The time > TEST=it takes shrinks from ~4 seconds to ~1.5 second. > > Change-Id: I610995c12ed08624eb0bc91057d7c9bfa8002fbf > > Review URL: https://chromiumcodereview.appspot.com/11783020 TBR=marcheu@chromium.org Review URL: https://codereview.chromium.org/12035051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178288 0039d316-1c4b-4281-b951-d872f2087c98
* Implement support for monitor suspend.marcheu@chromium.org2013-01-232-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | This speeds up idle resume by around 2.5 seconds. Previously, we would turn the panel off before idle suspend. Then we would suspend and resume. On resume, the kernel would restore the "off" state, and the Chrome monitor code would kick in to turn the panel on. This is a huge waste of time when each panel configuration step takes more than one second. Instead, just before suspending, we turn the backlight off and the panel on. On resume the kernel sets the panel state to on right away, and power_manager turns the backlight on. The Chrome monitor code still runs, but is a noop. This change needs this power_manager change to handle the backlight part: https://gerrit.chromium.org/gerrit/#/c/40971/ BUG=chrome-os-partner:13364 TEST=By hand: reduce the idle suspend timeout, let the machine idle and TEST=suspend, press a key to resume and see how long it takes. The time TEST=it takes shrinks from ~4 seconds to ~1.5 second. Change-Id: I610995c12ed08624eb0bc91057d7c9bfa8002fbf Review URL: https://chromiumcodereview.appspot.com/11783020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178195 0039d316-1c4b-4281-b951-d872f2087c98
* output_configurator: Check against the old screen size.marcheu@chromium.org2012-12-211-6/+6
| | | | | | | | | | | | | | | | We were checking against the new screen size, which should always fit (given that we're setting it up so that it does). However what we need to check against is the current size. This patch fixes that. BUG=None, found by code inspection TEST=builds, works on Link. Switched between clone mode and extended desktop Change-Id: Ie4b5278fd677fedacebcc98c06ad410915bfd1fd Review URL: https://chromiumcodereview.appspot.com/11647046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174468 0039d316-1c4b-4281-b951-d872f2087c98
* output_configurator: misc cleanupsmarcheu@chromium.org2012-12-211-48/+47
| | | | | | | | | | | | | | | | | | Turn const == var into var == const The output_configurator uses a mix of both currently, so switch to var == const style. Remove static function qualifier inside anonymous namespace. The static qualifier isn't needed because all these functions are living in the anonymous namespace, so remove it. BUG=none TEST=compiles and runs Review URL: https://chromiumcodereview.appspot.com/11637019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174441 0039d316-1c4b-4281-b951-d872f2087c98
* output_configurator: Speed up monitor configuration.marcheu@chromium.org2012-12-191-125/+145
| | | | | | | | | | | | | | | | | | | Instead of turning the outputs off then back on when resizing the framebuffer, try to park the outputs before resizing. This makes resume and monitor configuration faster (because moving an output is faster than turning an output off and on). We also store all the crtc configuration information in a new struct, this makes the code a little bit cleaner. BUG=chromium:165839,chromium-os:35023 TEST=by hand Review URL: https://chromiumcodereview.appspot.com/11566023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173966 0039d316-1c4b-4281-b951-d872f2087c98
* Use CTM on touchscreens.ynovikov@chromium.org2012-12-152-175/+429
| | | | | | | | | | | | | | | | | | | | | | | | | | | Configure X server to use Coordinate Transformation Matrix on touchscreen input devices for correct positioning of touch events. This is useful for 2 cases: 1. Mirror mode with aspect preserving scaling, which leaves blank areas on the screen, touches in which will be scaled out. 2. Extended desktop mode, in which a touchscreen occupies only a portion of the desktop, and thus events coming from it need to be mapped into that portion. This also requires changes in the analysis of a touch event - instead of scaling it from desktop into RootWindow, now it needs to be relocated into RootWindow's origin. BUG=chrome-os-partner:16192 TEST=Attach a touchscreen to a Chromebook, verify that touches are positioned correctly in Extended Desktop and Mirror modes. Review URL: https://chromiumcodereview.appspot.com/11416390 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173316 0039d316-1c4b-4281-b951-d872f2087c98
* Add UMA metrics tracking mirror mode usage.ynovikov@chromium.org2012-12-132-132/+226
| | | | | | | | | | | | | | | | | | | | | | | Adding 6 UMAs: Display.GetDualOutputs.detected_mirror_mode is enumeration metric, counting how many times the possibility of each mirror mode was detected: aspect preserving, fallback, and impossible. Display.EnterState.single_duration Display.EnterState.mirror_aspect_duration Display.EnterState.mirror_fallback_duration Display.EnterState.dual_primary_duration Display.EnterState.dual_secondary_duration record how much time was spent in each of the states. BUG=chrome-os-partner:16384 TEST=Connect external display, enter-exit mirror mode, see about:histograms. Review URL: https://chromiumcodereview.appspot.com/11519002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172763 0039d316-1c4b-4281-b951-d872f2087c98
* output_configurator: Skip reallocating the framebuffer when not needed.marcheu@chromium.org2012-12-081-0/+7
| | | | | | | | | | | | | | | | | | | | | | When configuring outputs, don't reallocate the framebuffer if it's already the right size. This avoids the ConfigureCrtc calls which turn off all the displays. This reconfiguration can take up to two seconds on Link, because each panel on/off takes 500ms there. This speeds up modesetting, and suspend/resume times. Note that this applies to all Chrome OS machines, so will result in improving times across the board, but the panel timings aren't as bad on other platforms so it makes less of a difference. BUG=chrome-os-partner:13364 TEST=by hand Change-Id: Ia8344aa689c0307e8a1c85a5a2b75af6fb4b8371 Review URL: https://chromiumcodereview.appspot.com/11471039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171999 0039d316-1c4b-4281-b951-d872f2087c98
* Prefer aspect ratio preserving mirror mode, use panel fitting when possible.ynovikov@chromium.org2012-12-072-149/+142
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the resolution chosen for mirror mode would be the highest common resolution among the internal and external displays. This would often fall back to the 1024x768 case, which looks bad on wide displays and internal panels. Now, external display resolutions with display's native aspect ratio will be considered first for mirror mode, trying to create a matching internal display resolution using panel fitting, when possible, if one doesn't exist already. For that sake, this commit also enables panel fitting on SNB. In case of 2 external monitors, mirror mode will first try to find a common resolution which will preserve aspect ratio on at least one of them. If an aspect ratio preserving resolution has not been found, fall back to the existing solution of highest common resolution. BUG=chrome-os-partner:16384 TEST=For the displays in bug report, mirror mode resolution is 1280x720. Review URL: https://chromiumcodereview.appspot.com/11411304 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171877 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 171737 - linux_chrome_clang buildbot is brokennkostylev@chromium.org2012-12-072-141/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | http://build.chromium.org/p/chromium.chromiumos/buildstatus?builder=Linux%20ChromiumOS%20%28Clang%20dbg%29&number=25562 > Force mirror mode to preserve aspect ratio, use panel fitting when possible. > > Previously, the resolution chosen for mirror mode would be > the highest common resolution among the internal and external displays. > This would often fall back to the 1024x768 case, > which looks bad on wide displays and internal panels. > > Now, only external display resolutions with display's native aspect ratio > will be considered for mirror mode. > > This will often end up in "can't mirror", > so this commit also enables panel fitting on SNB, > which will try to panel fit external display's resolution on internal panel, > even if the panel didn't advertise support for this resolution. > > In case of 2 external monitors, mirror mode will try to find > a common resolution which will preserve aspect ratio on at least one of them. > > For now, panel fitting is used only on internal panels. > In the future it may be feasible to support it on external displays as well, > which will allow us to always enter mirror mode, > providing that GPU has panel fitter. > > BUG=chrome-os-partner:16384 > TEST=For the displays in bug report, mirror mode resolution is 1280x720. > > > Review URL: https://chromiumcodereview.appspot.com/11411304 TBR=ynovikov@chromium.org Review URL: https://codereview.chromium.org/11474020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171750 0039d316-1c4b-4281-b951-d872f2087c98
* Force mirror mode to preserve aspect ratio, use panel fitting when possible.ynovikov@chromium.org2012-12-072-149/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the resolution chosen for mirror mode would be the highest common resolution among the internal and external displays. This would often fall back to the 1024x768 case, which looks bad on wide displays and internal panels. Now, only external display resolutions with display's native aspect ratio will be considered for mirror mode. This will often end up in "can't mirror", so this commit also enables panel fitting on SNB, which will try to panel fit external display's resolution on internal panel, even if the panel didn't advertise support for this resolution. In case of 2 external monitors, mirror mode will try to find a common resolution which will preserve aspect ratio on at least one of them. For now, panel fitting is used only on internal panels. In the future it may be feasible to support it on external displays as well, which will allow us to always enter mirror mode, providing that GPU has panel fitter. BUG=chrome-os-partner:16384 TEST=For the displays in bug report, mirror mode resolution is 1280x720. Review URL: https://chromiumcodereview.appspot.com/11411304 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171737 0039d316-1c4b-4281-b951-d872f2087c98
* Set the correct initial output stateoshima@chromium.org2012-11-061-5/+16
| | | | | | | | | | | | | - This also fixes the issue where external display can be off after sign out. - Add UMA stats for configuration failures. BUG=159533, 159084 TEST=manual: see bugs for repro step. Review URL: https://chromiumcodereview.appspot.com/11365102 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166258 0039d316-1c4b-4281-b951-d872f2087c98
* output_configurator: Re-add DPMS call.marcheu@chromium.org2012-11-021-1/+6
| | | | | | | | | | | | | | | | Removing those regresses idle suspend. Until we decide how to fix it properly, let's add it back. Let's also add a message to explain the use for that code so others don't fall into the same trap. BUG=none TEST=by hand, idle suspend/resume now works Change-Id: I29c0a7f065ffbef2f8bbef148bd2fb1f0a3ebea8 Review URL: https://chromiumcodereview.appspot.com/11293056 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165621 0039d316-1c4b-4281-b951-d872f2087c98
* output_configurator: Remove now useless DPMS calls.marcheu@chromium.org2012-11-011-10/+0
| | | | | | | | | BUG=chromium-os:31795 TEST=compiles Review URL: https://chromiumcodereview.appspot.com/10908080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165508 0039d316-1c4b-4281-b951-d872f2087c98
* Use the current state when resuming.oshima@chromium.org2012-10-231-5/+20
| | | | | | | | | | | | | | | - When resuming (power_on=1, all_display=1), use the current state to restore display. - Don't turn off the internal display even for mirror mode. chrome never remove the internal display and this was confusing chrome. (I'll do right fix on 25) BUG=chrome-os-partner:14980, 157284 TEST=manual Review URL: https://chromiumcodereview.appspot.com/11233052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163716 0039d316-1c4b-4281-b951-d872f2087c98
* Add "panel_fitting" GPU feature type and use it for mirror mode.ynovikov@chromium.org2012-10-152-93/+233
| | | | | | | | | | | | | | | | | | | | | | Panel fitting is used by mirror display mode on Chrome OS. This GPU feature type will tell if it is supported by GPU hardware. Initially enable it only for Ivy Bridge GPU via blacklisting everything else. Also add a disable_panel_fitting command flag, to be able to quickly turn the feature off. When hardware supports panel fitting, and there are no common modes between the internal and the external displays, configure the internal display to the external's resolution, and let the panel fitter take care of displaying it correctly. BUG=chromium-os:34442 TEST=Panel Fitting should appear as Hardware Accelerated in about:gpu on IVB Chrome OS, Unavailable everywhere else. TEST=Tested mirror mode on device. Review URL: https://chromiumcodereview.appspot.com/10909242 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161980 0039d316-1c4b-4281-b951-d872f2087c98
* Use dual_primary mode in login screen.oshima@chromium.org2012-10-051-3/+2
| | | | | | | | | | | | Reverting the change made in r160260 for m23. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/11066049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160523 0039d316-1c4b-4281-b951-d872f2087c98
* Use mirror mode if there is external monitor on bootoshima@chromium.org2012-10-041-2/+3
| | | | | | | | | | | | | | | This is for m23 and will be reverted after merge. BUG=153717 TEST=see bug Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=159980 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=160058 Review URL: https://codereview.chromium.org/11049030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160260 0039d316-1c4b-4281-b951-d872f2087c98
* Revert r160058 "Use mirror mode if there is external monitor on boot"oshima@chromium.org2012-10-041-2/+2
| | | | | | | | | | TBR=saintlout@chromium.org BUG=153717 TEST=none Review URL: https://codereview.chromium.org/11036045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160251 0039d316-1c4b-4281-b951-d872f2087c98
* Use mirror mode if there is external monitor on bootoshima@chromium.org2012-10-041-2/+2
| | | | | | | | | | | | | This is for m23 and will be reverted after merge. BUG=153717 TEST=see bug Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=159980 Review URL: https://chromiumcodereview.appspot.com/11049030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160058 0039d316-1c4b-4281-b951-d872f2087c98