summaryrefslogtreecommitdiffstats
path: root/ui/surface
Commit message (Collapse)AuthorAgeFilesLines
* Two techniques are introduced implementing RGB->YV12 conversion using ↵nick@chromium.org2013-01-088-559/+1661
| | | | | | | | | | | | | | | fragment shaders. This functionality is added to AcceleratedSurfaceTransformer, and validated by new tests checking accuracy against a reference implementation. The faster ("MRT") technique needs hardware support for multiple simultaneous render targets, and takes two passes, the second pass reading one-quarter as much data as the first pass. The slower "WithoutMRT" technique requires three passes and reads the full RGB input with each pass. On two machines I tested (one NVIDIA, one Intel), the fast path was about twice the speed of the dumb path. On an NVIDIA Quadro 6000 using the fast path, at 1280x720 frame size, conversion ran at 2838 fps. Accuracy was within two bits of the software implementation, and usually within one bit. BUG=161537 TEST=Included unit tests. Review URL: https://codereview.chromium.org/11280318 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175446 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 174920jamesr@chromium.org2013-01-072-45/+27
| | | | | | | | | | | | | | | | | | | | > Reland 174257 with fix for win_aura > > win: AcceleratedPresenter replies to the GPU process as soon as shared texture is copied. > > This means the GPU does not deschedule for as long waiting until it can render to the back buffer safely. > > TBR=apatrick@chromium.org > > Review URL: https://chromiumcodereview.appspot.com/11642051 Reverting to isolate performance regression on gpu_frame_rate tests on windows TBR=apatrick@chromium.org BUG=168470 Review URL: https://codereview.chromium.org/11782018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175379 0039d316-1c4b-4281-b951-d872f2087c98
* [ui/surface] Separate image processing logic from presentation logic.nick@chromium.org2013-01-048-240/+1127
| | | | | | | | | | | | | | | | | | | | | The D3D image processing code from AcceleratedPresenter moves to its own class, "ui/surface/accelerated_surface_transformer_win.h". This split allows the image processing code to be tested independently of the present-scheduling system, and so we add unit tests doing exactly that. Utility functions (loading d3d, creating temp surfaces) doing things commonly required by test, transform, and present code -- these functions are moved to a third location, "ui/surface/d3d9_utils_win.h" The new unit tests -- which live in the ui_unittests binary -- make extensive use of pseudorandom image content, which I think is kind of neat. The tests use D3D HAL devices; I tried to use REF, but it didn't work, as StretchRect+LINEAR is not supported by refrast. So as a result we may have a GPU vendor dependency in these results. BUG=161537 TEST=new ui_unittests Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174028 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174338 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174943 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=175152 Review URL: https://codereview.chromium.org/11464017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175211 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 175152nick@chromium.org2013-01-048-1107/+240
| | | | | | | | | | | | | | | | | | | | | | | | > [ui/surface] Separate image processing logic from presentation logic. > > The D3D image processing code from AcceleratedPresenter moves to its own class, "ui/surface/accelerated_surface_transformer_win.h". This split allows the image processing code to be tested independently of the present-scheduling system, and so we add unit tests doing exactly that. Utility functions (loading d3d, creating temp surfaces) doing things commonly required by test, transform, and present code -- these functions are moved to a third location, "ui/surface/d3d9_utils_win.h" > > The new unit tests -- which live in the ui_unittests binary -- make extensive use of pseudorandom image content, which I think is kind of neat. The tests use D3D HAL devices; I tried to use REF, but it didn't work, as StretchRect+LINEAR is not supported by refrast. So as a result we may have a GPU vendor dependency in these results. > > BUG=161537 > TEST=new ui_unittests > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174028 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174338 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174943 > > Review URL: https://codereview.chromium.org/11464017 TBR=nick@chromium.org Review URL: https://codereview.chromium.org/11753031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175161 0039d316-1c4b-4281-b951-d872f2087c98
* [ui/surface] Separate image processing logic from presentation logic.nick@chromium.org2013-01-048-240/+1107
| | | | | | | | | | | | | | | | | | | The D3D image processing code from AcceleratedPresenter moves to its own class, "ui/surface/accelerated_surface_transformer_win.h". This split allows the image processing code to be tested independently of the present-scheduling system, and so we add unit tests doing exactly that. Utility functions (loading d3d, creating temp surfaces) doing things commonly required by test, transform, and present code -- these functions are moved to a third location, "ui/surface/d3d9_utils_win.h" The new unit tests -- which live in the ui_unittests binary -- make extensive use of pseudorandom image content, which I think is kind of neat. The tests use D3D HAL devices; I tried to use REF, but it didn't work, as StretchRect+LINEAR is not supported by refrast. So as a result we may have a GPU vendor dependency in these results. BUG=161537 TEST=new ui_unittests Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174028 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174338 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174943 Review URL: https://codereview.chromium.org/11464017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175152 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 174943 because it broke ui_unittests in win-vista, win7.sadrul@chromium.org2013-01-038-1108/+240
| | | | | | | | | | | | | | | | | | | | | | > [ui/surface] Separate image processing logic from presentation logic. > > The D3D image processing code from AcceleratedPresenter moves to its own class, "ui/surface/accelerated_surface_transformer_win.h". This split allows the image processing code to be tested independently of the present-scheduling system, and so we add unit tests doing exactly that. Utility functions (loading d3d, creating temp surfaces) doing things commonly required by test, transform, and present code -- these functions are moved to a third location, "ui/surface/d3d9_utils_win.h" > > The new unit tests -- which live in the ui_unittests binary -- make extensive use of pseudorandom image content, which I think is kind of neat. The tests use D3D HAL devices; I tried to use REF, but it didn't work, as StretchRect+LINEAR is not supported by refrast. So as a result we may have a GPU vendor dependency in these results. > > BUG=161537 > TEST=new ui_unittests > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174028 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174338 > > Review URL: https://chromiumcodereview.appspot.com/11464017 TBR=nick@chromium.org Review URL: https://codereview.chromium.org/11737018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174964 0039d316-1c4b-4281-b951-d872f2087c98
* [ui/surface] Separate image processing logic from presentation logic.nick@chromium.org2013-01-038-240/+1108
| | | | | | | | | | | | | | | | | The D3D image processing code from AcceleratedPresenter moves to its own class, "ui/surface/accelerated_surface_transformer_win.h". This split allows the image processing code to be tested independently of the present-scheduling system, and so we add unit tests doing exactly that. Utility functions (loading d3d, creating temp surfaces) doing things commonly required by test, transform, and present code -- these functions are moved to a third location, "ui/surface/d3d9_utils_win.h" The new unit tests -- which live in the ui_unittests binary -- make extensive use of pseudorandom image content, which I think is kind of neat. The tests use D3D HAL devices; I tried to use REF, but it didn't work, as StretchRect+LINEAR is not supported by refrast. So as a result we may have a GPU vendor dependency in these results. BUG=161537 TEST=new ui_unittests Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174028 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174338 Review URL: https://chromiumcodereview.appspot.com/11464017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174943 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 174257 with fix for win_auraapatrick@chromium.org2013-01-032-27/+45
| | | | | | | | | | | | win: AcceleratedPresenter replies to the GPU process as soon as shared texture is copied. This means the GPU does not deschedule for as long waiting until it can render to the back buffer safely. TBR=apatrick@chromium.org Review URL: https://chromiumcodereview.appspot.com/11642051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174920 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 174338kinaba@chromium.org2012-12-218-1006/+240
| | | | | | | | | | | | | | | | | | | | | | | The newly added tests failing on the tree: http://build.chromium.org/p/chromium.win/builders/Vista%20Tests%20%283%29/builds/25653 > [ui/surface] Separate image processing logic from presentation logic. > > The D3D image processing code from AcceleratedPresenter moves to its own class, "ui/surface/accelerated_surface_transformer_win.h". This split allows the image processing code to be tested independently of the present-scheduling system, and so we add unit tests doing exactly that. Utility functions (loading d3d, creating temp surfaces) doing things commonly required by test, transform, and present code -- these functions are moved to a third location, "ui/surface/d3d9_utils_win.h" > > The new unit tests -- which live in the ui_unittests binary -- make extensive use of pseudorandom image content, which I think is kind of neat. The tests use D3D HAL devices; I tried to use REF, but it didn't work, as StretchRect+LINEAR is not supported by refrast. So as a result we may have a GPU vendor dependency in these results. > > BUG=161537 > TEST=new ui_unittests > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174028 > > Review URL: https://chromiumcodereview.appspot.com/11464017 TBR=nick@chromium.org Review URL: https://codereview.chromium.org/11667003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174345 0039d316-1c4b-4281-b951-d872f2087c98
* [ui/surface] Separate image processing logic from presentation logic.nick@chromium.org2012-12-218-240/+1006
| | | | | | | | | | | | | | | The D3D image processing code from AcceleratedPresenter moves to its own class, "ui/surface/accelerated_surface_transformer_win.h". This split allows the image processing code to be tested independently of the present-scheduling system, and so we add unit tests doing exactly that. Utility functions (loading d3d, creating temp surfaces) doing things commonly required by test, transform, and present code -- these functions are moved to a third location, "ui/surface/d3d9_utils_win.h" The new unit tests -- which live in the ui_unittests binary -- make extensive use of pseudorandom image content, which I think is kind of neat. The tests use D3D HAL devices; I tried to use REF, but it didn't work, as StretchRect+LINEAR is not supported by refrast. So as a result we may have a GPU vendor dependency in these results. BUG=161537 TEST=new ui_unittests Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174028 Review URL: https://chromiumcodereview.appspot.com/11464017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174338 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "win: AcceleratedPresenter replies to the GPU process as soon as ↵phajdan.jr@chromium.org2012-12-202-45/+27
| | | | | | | | | | | | | | shared texture is copied." This reverts commit ad526010baec7a1cb70b94ae0ef6c06f967007db. TBR=apatrick BUG= Review URL: https://codereview.chromium.org/11571091 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174260 0039d316-1c4b-4281-b951-d872f2087c98
* win: AcceleratedPresenter replies to the GPU process as soon as shared ↵apatrick@chromium.org2012-12-202-27/+45
| | | | | | | | | | texture is copied. This means the GPU does not deschedule for as long waiting until it can render to the back buffer safely. Review URL: https://chromiumcodereview.appspot.com/11645027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174257 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 174028wjia@chromium.org2012-12-208-1006/+240
| | | | | | | | | | | | | | | | | | | | It breaks ui_unittests on win bots. > [ui/surface] Separate image processing logic from presentation logic. > > The D3D image processing code from AcceleratedPresenter moves to its own class, "ui/surface/accelerated_surface_transformer_win.h". This split allows the image processing code to be tested independently of the present-scheduling system, and so we add unit tests doing exactly that. Utility functions (loading d3d, creating temp surfaces) doing things commonly required by test, transform, and present code -- these functions are moved to a third location, "ui/surface/d3d9_utils_win.h" > > The new unit tests -- which live in the ui_unittests binary -- make extensive use of pseudorandom image content, which I think is kind of neat. The tests use D3D HAL devices; I tried to use REF, but it didn't work, as StretchRect+LINEAR is not supported by refrast. So as a result we may have a GPU vendor dependency in these results. > > BUG=161537 > TEST=new ui_unittests > > Review URL: https://chromiumcodereview.appspot.com/11464017 TBR=nick@chromium.org Review URL: https://codereview.chromium.org/11638033 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174058 0039d316-1c4b-4281-b951-d872f2087c98
* [ui/surface] Separate image processing logic from presentation logic.nick@chromium.org2012-12-198-240/+1006
| | | | | | | | | | | | | The D3D image processing code from AcceleratedPresenter moves to its own class, "ui/surface/accelerated_surface_transformer_win.h". This split allows the image processing code to be tested independently of the present-scheduling system, and so we add unit tests doing exactly that. Utility functions (loading d3d, creating temp surfaces) doing things commonly required by test, transform, and present code -- these functions are moved to a third location, "ui/surface/d3d9_utils_win.h" The new unit tests -- which live in the ui_unittests binary -- make extensive use of pseudorandom image content, which I think is kind of neat. The tests use D3D HAL devices; I tried to use REF, but it didn't work, as StretchRect+LINEAR is not supported by refrast. So as a result we may have a GPU vendor dependency in these results. BUG=161537 TEST=new ui_unittests Review URL: https://chromiumcodereview.appspot.com/11464017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174028 0039d316-1c4b-4281-b951-d872f2087c98
* Normalize paths in compile_hlsl.py for cygwin.asvitkine@chromium.org2012-12-171-2/+4
| | | | | | | | BUG=164714 TBR=apatrick@chromium.org Review URL: https://codereview.chromium.org/11590020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173483 0039d316-1c4b-4281-b951-d872f2087c98
* Teach GYP how to compile HLSL.nick@chromium.org2012-12-144-76/+216
| | | | | | | | | | | | | | This is limited to the ui/surface directory for now, but the GYP rule and python script are generalizable if we need to do this elsewhere in the code in the future. BUG=164714 TEST=unit tests Review URL: https://chromiumcodereview.appspot.com/11484003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173070 0039d316-1c4b-4281-b951-d872f2087c98
* Move initialization of D3D earlier in present thread lifetime.apatrick@chromium.org2012-12-071-9/+16
| | | | | | | | | | | | This improves startup time. Fixed bug where initial window size was treated as a resize and triggered the slow GDI path. BUG=163215 Review URL: https://chromiumcodereview.appspot.com/11471020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171720 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 171413apatrick@google.com2012-12-061-16/+9
| | | | | | | | | | | | | | | | | | | > Move initialization of D3D earlier in present thread lifetime. > > This improves startup time. > > Fixed bug where initial window size was treated as a resize and triggered the slow GDI path. > > Previous version was r171174, which was reverted. This patch is different because it does not initialize D3D until an AcceleratedPresenter is created but does not wait for the first present. > > BUG=163215,164414,164398 > > Review URL: https://chromiumcodereview.appspot.com/11445029 TBR=apatrick@chromium.org Review URL: https://codereview.chromium.org/11472008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171584 0039d316-1c4b-4281-b951-d872f2087c98
* Move initialization of D3D earlier in present thread lifetime.apatrick@chromium.org2012-12-061-9/+16
| | | | | | | | | | | | | | This improves startup time. Fixed bug where initial window size was treated as a resize and triggered the slow GDI path. Previous version was r171174, which was reverted. This patch is different because it does not initialize D3D until an AcceleratedPresenter is created but does not wait for the first present. BUG=163215,164414,164398 Review URL: https://chromiumcodereview.appspot.com/11445029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171413 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 171174apatrick@google.com2012-12-051-7/+1
| | | | | | | | | | | | | | | | | > Move initialization of D3D earlier in present thread lifetime. > > This improves startup time. > > Fixed bug where initial window size was treated as a resize and triggered the slow GDI path. > > > Review URL: https://chromiumcodereview.appspot.com/11418226 BUG=163215,164398 TBR=apatrick@chromium.org Review URL: https://codereview.chromium.org/11445021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171269 0039d316-1c4b-4281-b951-d872f2087c98
* Move initialization of D3D earlier in present thread lifetime.apatrick@chromium.org2012-12-051-1/+7
| | | | | | | | | | | | This improves startup time. Fixed bug where initial window size was treated as a resize and triggered the slow GDI path. BUG=163215 Review URL: https://chromiumcodereview.appspot.com/11418226 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171174 0039d316-1c4b-4281-b951-d872f2087c98
* Implement CopyTo via LockRect instead of GetRenderTargetData.nick@chromium.org2012-11-271-25/+24
| | | | | | | | | | | | | | Empirical evidence seems to suggest that LockRect and memcpy are faster than would be GetRenderTargetData to an offscreen surface wrapping *buf. I see 21% improvement on a fast Win7 machine (Z620 with nvidia graphics), and a 27% improvement on a slow Win7 machine (lenovo X61 laptop with intel graphics). BUG=145587 Review URL: https://codereview.chromium.org/11348084 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169788 0039d316-1c4b-4281-b951-d872f2087c98
* Move readback to present thread.nick@chromium.org2012-11-172-13/+57
| | | | | | | | | | | | Eliminates blocking of main thread when readback is happening every frame, as can happen when tab capture is enabled. BUG=145587 TEST=Run chrome with tab capture extension enabled, verify using about:tracing that main thread doesn't have long blocks waiting on the present mutex. Review URL: https://chromiumcodereview.appspot.com/11410043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168433 0039d316-1c4b-4281-b951-d872f2087c98
* Move eintr_wrapper.h from base to base/posixbrettw@chromium.org2012-11-142-2/+2
| | | | | | Review URL: https://codereview.chromium.org/11366229 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167739 0039d316-1c4b-4281-b951-d872f2087c98
* Simplify platform_canvas.h by recognizing that PlatformCanvas does not ↵reed@google.com2012-11-145-23/+13
| | | | | | | | | | | | | | | | | | | | | actually extend SkCanvas in any way, other than provide a host of constructors (and delayed constructors in the form of 'initialize' methods). These late initializers are a problem, as SkCanvas is deprecating its setDevice() call, moving to model where the backingstore/device for the canvas must be created before the canvas is created. This is necessary to allow skia to continue to extend SkCanvas for its backends (e.g. GPU, PDF, Picture, Pipe, etc.). The practical change in this CL is to make PlatformCanvas just a typedef for SkCanvas, and change the call-sites that want to call initialize() to instead create the canvas using one of the provided Factory functions (e.g. CreatePlatformCanvas). The modifier Platform is maintained, to document that this canvas may be backed by platform-specific pixels (e.g. allocated by GDI or cairo). Review URL: https://codereview.chromium.org/11138024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@167669 0039d316-1c4b-4281-b951-d872f2087c98
* win: Do not present with GDI if the device is lost or the swap chain suspended.apatrick@chromium.org2012-11-071-0/+6
| | | | | | | | BUG=159744 Review URL: https://chromiumcodereview.appspot.com/11377009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166350 0039d316-1c4b-4281-b951-d872f2087c98
* Skip present if device fails to reset.apatrick@chromium.org2012-11-061-0/+4
| | | | | | | | BUG=158175 Review URL: https://chromiumcodereview.appspot.com/11358104 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166137 0039d316-1c4b-4281-b951-d872f2087c98
* accelerated_surface_win.cc: Two CopyTo bug fixes, and new event tracing.nick@chromium.org2012-11-021-23/+48
| | | | | | | | | | | | | | | | | | | | | | Bug 1: It seems that nothing really guarantees that src_subrect argument of CopyTo is in sync with the actual back buffer size. In practice I saw some failures here (with the D3D9 debug mode enabled) when resizing windows -- src_subrect was bigger than the allocated back buffer size. So I've added clipping. Bug 2: GetRenderTargetData requires width and height of src and dst to be exactly identical. There was logic in place to handle this, but it wasn't quite correct -- for example, if you have a src_subrect that was smaller than dst_size in both dimensions, GetResampleCount previously returned 0, resulting in an illegal (failing) call to GetRenderTargetData. Tracing: I've added event tracing to the possibly expensive D3D calls inside CopyTo. I also added tracing to show the time spent waiting on the present lock, which in my observation was sometimes a significant blocking event for the UI thread [ :( ]. Review URL: https://chromiumcodereview.appspot.com/11367019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165580 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 160434 - Keep track of which transport DIBs are currently in the X ↵jochen@chromium.org2012-10-082-0/+27
| | | | | | | | | | | | | | | | | | | | servers queue Since X11 is asynchronous, there might be operations on the shared memory pending. If we unmap the shared memory immediately, the queued operations will make the renderer crash. This can happen if a renderer is brought up, renderers a single frame, and is immediately destroyed again. BUG=143580 TEST=running layout tests using content shell doesn't crash constantly TBR=piman,backer Original Review URL: https://chromiumcodereview.appspot.com/11014018 Review URL: https://chromiumcodereview.appspot.com/11070011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160640 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 160434 - Keep track of which transport DIBs are currently in the X ↵sky@chromium.org2012-10-052-27/+0
| | | | | | | | | | | | | | | | | | servers queue Since X11 is asynchronous, there might be operations on the shared memory pending. If we unmap the shared memory immediately, the queued operations will make the renderer crash. This can happen if a renderer is brought up, renderers a single frame, and is immediately destroyed again. BUG=143580 TEST=running layout tests using content shell doesn't crash constantly Review URL: https://chromiumcodereview.appspot.com/11014018 TBR=jochen@chromium.org Review URL: https://codereview.chromium.org/11028071 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160475 0039d316-1c4b-4281-b951-d872f2087c98
* Keep track of which transport DIBs are currently in the X servers queuejochen@chromium.org2012-10-052-0/+27
| | | | | | | | | | | | | Since X11 is asynchronous, there might be operations on the shared memory pending. If we unmap the shared memory immediately, the queued operations will make the renderer crash. This can happen if a renderer is brought up, renderers a single frame, and is immediately destroyed again. BUG=143580 TEST=running layout tests using content shell doesn't crash constantly Review URL: https://chromiumcodereview.appspot.com/11014018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160434 0039d316-1c4b-4281-b951-d872f2087c98
* Windows: AcceleratedSurface presents with GDI while the window is being resized.apatrick@chromium.org2012-10-042-84/+135
| | | | | | | | | | Presenting with Direct3D while the window resizes causes regions of the top level window that are rendered with GDI, like the title bar, to flicker visible / invisible. So use GDI across the board when resizing and switch back to Direct3D afterwards. BUG=120904 Review URL: https://chromiumcodereview.appspot.com/10990119 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@160042 0039d316-1c4b-4281-b951-d872f2087c98
* add forgotten #ifdef that could cause crash in non-aurascottmg@google.com2012-10-021-0/+2
| | | | | | | | | TBR=ben@chromium.org BUG= Review URL: https://codereview.chromium.org/11037025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159723 0039d316-1c4b-4281-b951-d872f2087c98
* Listen in the browser for a connection from a metro viewer process.scottmg@google.com2012-10-012-0/+16
| | | | | | | | | | Render to the surface it provides to us. BUG=151718 Review URL: https://codereview.chromium.org/10984007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@159559 0039d316-1c4b-4281-b951-d872f2087c98
* Make shared memory segments writable only by their rightful owners.palmer@chromium.org2012-09-241-4/+3
| | | | | | | | BUG=143859 TEST=Chrome's UI still works on Linux and Chrome OS Review URL: https://chromiumcodereview.appspot.com/10854242 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@158289 0039d316-1c4b-4281-b951-d872f2087c98
* Windows: AcceleratedSurface present thread periodically polls raster status.apatrick@chromium.org2012-09-212-69/+48
| | | | | | | | | | | | | | This is to give the threaded compositor a recent time base to work with. Also use acknowledge with the surrent refresh period for the swap chain. Moved call to Present to before the spin on the Query since that is unnecessary and allows earlier acknowledgement. BUG=143854 Review URL: https://chromiumcodereview.appspot.com/10892018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157920 0039d316-1c4b-4281-b951-d872f2087c98
* win aura: fixes for non-chrome binariesscottmg@chromium.org2012-09-121-0/+2
| | | | | | | | | | | | | | | 1. Force compositing and threaded-compositing always-on for aura 2. Avoid some bad swap-chain interaction with hackage in HWNDMessageHandler::GetClientAreaInsets() which otherwise causes the accelerated surface never to present. BUG= TBR=jam@chromium.org Review URL: https://chromiumcodereview.appspot.com/10933031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@156203 0039d316-1c4b-4281-b951-d872f2087c98
* gl: Put ScopedMakeCurrent into ui namespace.tfarina@chromium.org2012-09-091-1/+1
| | | | | | | | | BUG=127983 R=apatrick@chromium.org Review URL: https://chromiumcodereview.appspot.com/10913054 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155631 0039d316-1c4b-4281-b951-d872f2087c98
* Enable GPU acceleration for Aura on Windowsscottmg@chromium.org2012-09-063-22/+18
| | | | | | | | | | | | | | | Use GpuTransportSurface and AcceleratedSurface for rendering on win aura. Run with: --open-ash --force-compositing-mode --enable-threaded-compositing BUG= Review URL: https://chromiumcodereview.appspot.com/10890046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@155093 0039d316-1c4b-4281-b951-d872f2087c98
* Add tracing to early-outs of accelerated surface presentsjbauman@chromium.org2012-08-271-3/+15
| | | | | | | | | | | This should help us figure out what's happening when something goes wrong. BUG=140773 Review URL: https://chromiumcodereview.appspot.com/10871080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153557 0039d316-1c4b-4281-b951-d872f2087c98
* Disable DWM call while we figure out what is causing the flash of ↵jbates@chromium.org2012-08-271-0/+5
| | | | | | | | | | | non-composited content. BUG=143854 Review URL: https://chromiumcodereview.appspot.com/10878064 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153517 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 152664 - win: Always present AcceleratedSurface via the UI thread.apatrick@chromium.org2012-08-222-166/+21
| | | | | | | | | | | | | | | | | | | Presenting from a present thread causes flickering issues when Aero is turned on. Synchronization between the CPU and GPU still happens on the present thread because moving everything tot the UI thread caused jank on resizing. The UI thread polls until DWM returns that there are no pending presents so that when it calls Present it won't block. This did not work as well with Aero turned off so I used the original method of presenting on the present thread in that case. BUG=120904 Review URL: https://chromiumcodereview.appspot.com/10823133 TBR=apatrick@chromium.org Review URL: https://chromiumcodereview.appspot.com/10870017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152804 0039d316-1c4b-4281-b951-d872f2087c98
* win: Always present AcceleratedSurface via the UI thread.apatrick@chromium.org2012-08-212-21/+166
| | | | | | | | | | | | | | | | Presenting from a present thread causes flickering issues when Aero is turned on. Synchronization between the CPU and GPU still happens on the present thread because moving everything tot the UI thread caused jank on resizing. The UI thread polls until DWM returns that there are no pending presents so that when it calls Present it won't block. This did not work as well with Aero turned off so I used the original method of presenting on the present thread in that case. BUG=120904 Review URL: https://chromiumcodereview.appspot.com/10823133 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152664 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 151982 - Revert 151932 (caused gpu_throughput_tests to start failing ↵jbates@chromium.org2012-08-171-1/+1
| | | | | | | | | | | | | | | | | | on Mac GPU bots) - Hook up Mac OSX VSync parameters to compositor thread Also fixes precision error on Windows. BUG=137794 Review URL: https://chromiumcodereview.appspot.com/10830347 TBR=jbates@chromium.org Review URL: https://chromiumcodereview.appspot.com/10825406 TBR=kbr@chromium.org Review URL: https://chromiumcodereview.appspot.com/10824357 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@152099 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 151932 (caused gpu_throughput_tests to start failing on Mac GPU bots) ↵kbr@chromium.org2012-08-161-1/+1
| | | | | | | | | | | | | | | - Hook up Mac OSX VSync parameters to compositor thread Also fixes precision error on Windows. BUG=137794 Review URL: https://chromiumcodereview.appspot.com/10830347 TBR=jbates@chromium.org Review URL: https://chromiumcodereview.appspot.com/10825406 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151982 0039d316-1c4b-4281-b951-d872f2087c98
* Hook up Mac OSX VSync parameters to compositor threadjbates@chromium.org2012-08-161-1/+1
| | | | | | | | | | Also fixes precision error on Windows. BUG=137794 Review URL: https://chromiumcodereview.appspot.com/10830347 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151932 0039d316-1c4b-4281-b951-d872f2087c98
* Plumb vsync info from AcceleratedPresenter to RenderWidgetHostImpljbates@chromium.org2012-08-142-12/+38
| | | | | | | | | BUG=137792 Review URL: https://chromiumcodereview.appspot.com/10820041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151514 0039d316-1c4b-4281-b951-d872f2087c98
* Use DwmGetCompositionTimingInfo to get vsync info on Windowsbrianderson@chromium.org2012-08-072-0/+31
| | | | | | | | | BUG= Review URL: https://chromiumcodereview.appspot.com/10825053 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150395 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 149083 - Add command-line option to have an extra delay before blitting.jbauman@chromium.org2012-08-021-15/+0
| | | | | | | | | | | | | | This may help in tracking down any synchronization issues. BUG=135546 Review URL: https://chromiumcodereview.appspot.com/10836018 TBR=jbauman@chromium.org git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149686 0039d316-1c4b-4281-b951-d872f2087c98
* win: Drop extra triangles in triangle fan used to flip image transport surface.apatrick@chromium.org2012-08-011-1/+1
| | | | | | | | BUG=135546 Review URL: https://chromiumcodereview.appspot.com/10843020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149362 0039d316-1c4b-4281-b951-d872f2087c98