summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer
Commit message (Collapse)AuthorAgeFilesLines
* MemoryProgramCache uses base::MRUCache instead of ProgramCacheLRUHelper.apatrick@chromium.org2013-08-039-291/+153
| | | | | | | | | | Also make the accounting of curr_size_bytes_ easier to reason about. It is incremented in the ProgramCacheValue constructor and decremented in the destructor so that it is known to be equal to the total size of all cached values. BUG=262271 Review URL: https://chromiumcodereview.appspot.com/21676002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215486 0039d316-1c4b-4281-b951-d872f2087c98
* Fix potential uninitialized variable.etienneb@chromium.org2013-08-031-2/+2
| | | | | | | | | R=sievers@chromium.org, apatrick@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/21914005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215451 0039d316-1c4b-4281-b951-d872f2087c98
* Fix an useless DCHECK with an invalid unsigned comparison.etienneb@chromium.org2013-08-021-5/+4
| | | | | | | | | | | | | | | | | This issue was found by a Linter. This check is always true, because address_space_consumed_ is unsigned: DCHECK(address_space_consumed_ >= 0); I also fixed others DCHECK, the 'improbable' MIN_INT case is handled properly. R=erikwright@chromium.org,epenner@chromium.org BUG= Review URL: https://chromiumcodereview.appspot.com/21102003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215347 0039d316-1c4b-4281-b951-d872f2087c98
* GLInProcessContext: support async flushes and dedicated GPU threadsievers@chromium.org2013-08-014-324/+939
| | | | | | | | | | | | | | | | | | | This separates the command buffer client and service portions in GLInProcessContext. It removes the 'big lock', which was used to flush commands instantly and on the calling thread (GL client thread). Instead it now creates a dedicated GPU thread. For Android WebView, it further allows the GPU message loop to be explicitly processed (because a context is only available at given times on a specific thread). BUG=246450,239760,234964 Review URL: https://chromiumcodereview.appspot.com/19522006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215144 0039d316-1c4b-4281-b951-d872f2087c98
* Disable DepthTextureTest.RenderTo on all Windows platforms.gab@chromium.org2013-08-011-2/+2
| | | | | | | | | | | | | It was only disabled for Release builds, but also fails consistantly in Debug builds (http://build.chromium.org/p/chromium.gpu/console). BUG=135229 TBR=gman TEST=Compiled locally on Windows debug and confirmed test was disabled. NOTRY=True Review URL: https://chromiumcodereview.appspot.com/21602002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215070 0039d316-1c4b-4281-b951-d872f2087c98
* Add an unbindImage method to ResourceProvider and move bindImage and ↵kaanb@chromium.org2013-07-311-6/+15
| | | | | | | | | | | | unbindImage calls to draw time by calling them from LockForRead and UnlockForRead respectively. Fix GLImageEGL::ReleaseTexImage by calling glDeleteTextures under the hood instead of glTexImage. BUG=239856 Review URL: https://chromiumcodereview.appspot.com/18034026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214753 0039d316-1c4b-4281-b951-d872f2087c98
* Add null check in GLES2DecoderImpl::PrepareTexturesForRender()sievers@chromium.org2013-07-301-1/+2
| | | | | | | | | BUG=265977 R=apatrick@chromium.org Review URL: https://codereview.chromium.org/21059004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214419 0039d316-1c4b-4281-b951-d872f2087c98
* WGC3DCommandBufferImpl: Acquire lock when accessing share group.sievers@chromium.org2013-07-297-63/+9
| | | | | | | | | | | | | | | | | | | | Grab the share group lock when accessing the list and also to assure that ShareGroup creation is not racy. Also do not use an existing ShareGroup is we are not sharing resources. Remove the nowadays unused share_resources flag that was still being passed around. On a related note, remove the non-threadsafe SetGLES2ImplementationForDestruction() which is fortunately unused. (It was used by StrictSharedIdHandler once, but the current handlers don't need to talk to the commandbuffer during destruction.) TBR=brettw@chromium.org NOTRY=True Review URL: https://chromiumcodereview.appspot.com/20826002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214242 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: Add GpuMemoryBufferFactory interface.reveman@chromium.org2013-07-283-24/+48
| | | | | | | | | | | | Used for in-process GpuMemoryBuffer creation. TEST=gpu_unittests --gtest_filter=MockGpuMemoryBufferTest.Lifecycle BUG=261649 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/20658002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214136 0039d316-1c4b-4281-b951-d872f2087c98
* Update stream textures during Draw instead of Bindsievers@chromium.org2013-07-284-56/+88
| | | | | | | | | BUG=260189 NOTRY=True Review URL: https://chromiumcodereview.appspot.com/19464008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@214130 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: Remove flush_on_context_switch workaroundboliu@chromium.org2013-07-251-2/+0
| | | | | | | | | | | | The original bug is no longer reproducible, and the workaround negatively impacts performance. TBR=apatrick@chromium.org for gles2_cmd_decoder.cc BUG= Review URL: https://chromiumcodereview.appspot.com/19647017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213598 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a memory leak.feng@chromium.org2013-07-242-2/+12
| | | | | | | | | | | | | | | | ProgramManager::UnuseProgram was never called in existing code because state_.current_program was cleared first. So the current program object leaks. The fix is to clear state_.current_program at the end of function. BUG=258772 Review URL: https://chromiumcodereview.appspot.com/19577012 Review URL: https://chromiumcodereview.appspot.com/19876004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213390 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Revert 210138 "Perform glReadPixels with PBOs in the gpu, if PBO...""hubbe@chromium.org2013-07-2317-118/+321
| | | | | | | | | | | | | | | | | | | | | | | Third try for getting asynchrous readpixels to work everywhere. This is identical to: https://codereview.chromium.org/16831004/, but with the following fixes: OutOfProcessPPAPITests.Graphics3D (removed a check in query_tracker.cc) GLReadbackTest.ReadPixelsWithPBO (removed, no longer a valid test) GLReadbackTest.ReadPixelsWithPBOAndQuery (now uses the correct query) And, new in this CL: Disable asynchronous readpixels on macosx prior to 10.8, as it would seem that the GL_ARB_fence extension doesn't seem to work on any driver, and there are crashes in readpixel itself on intel drivers. The original CL only disabled the async readpixels path for intel drivers. BUG=258169 Review URL: https://chromiumcodereview.appspot.com/19579008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213261 0039d316-1c4b-4281-b951-d872f2087c98
* Update include paths in gpu for base/process changes.rsesek@chromium.org2013-07-233-3/+2
| | | | | | | | | BUG=242290 R=piman@chromium.org Review URL: https://codereview.chromium.org/20002003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213097 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 212978 "Fix a memory leak."alexeypa@google.com2013-07-222-9/+2
| | | | | | | | | | | | | | | | | | | | | | Specilative revert. We suspect it might be causing http://build.chromium.org/p/chromium.linux/builders/Linux%20Tests%20%28dbg%29%282%29/builds/37159 > Fix a memory leak. > > ProgramManager::UnuseProgram was never called in existing code > because state_.current_program was cleared first. So the current > program object leaks. > > The fix is to clear state_.current_program at the end of function. > > BUG=258772 > > Review URL: https://chromiumcodereview.appspot.com/19577012 TBR=feng@chromium.org Review URL: https://codereview.chromium.org/19947005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212989 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a memory leak.feng@chromium.org2013-07-222-2/+9
| | | | | | | | | | | | | | ProgramManager::UnuseProgram was never called in existing code because state_.current_program was cleared first. So the current program object leaks. The fix is to clear state_.current_program at the end of function. BUG=258772 Review URL: https://chromiumcodereview.appspot.com/19577012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212978 0039d316-1c4b-4281-b951-d872f2087c98
* Use a direct include of the shared_memory header in content/plugin/, ↵avi@chromium.org2013-07-184-5/+5
| | | | | | | | | | | | content/public/, content/renderer/, gpu/. BUG=260807 TEST=none TBR=ben@chromium.org Review URL: https://chromiumcodereview.appspot.com/19379005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212391 0039d316-1c4b-4281-b951-d872f2087c98
* Use a direct include of the message_loop header in dbus/, device/, ↵avi@chromium.org2013-07-178-16/+18
| | | | | | | | | | | | extensions/, google_apis/, gpu/, ipc/, jingle/. BUG=260807 TEST=none TBR=ben@chromium.org Review URL: https://chromiumcodereview.appspot.com/19607005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212157 0039d316-1c4b-4281-b951-d872f2087c98
* Move glBufferData, glBufferSubData and glGetBufferParameteriv into the ↵kloveless@chromium.org2013-07-173-84/+132
| | | | | | | | | | Buffer Manager more completely. BUG= Review URL: https://chromiumcodereview.appspot.com/19269004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@212050 0039d316-1c4b-4281-b951-d872f2087c98
* Minor GLInProcessContext cleanups.sievers@chromium.org2013-07-173-63/+30
| | | | | | | | | | | Make GLInProcessContext implement ImageFactory. Also allow more than one sync point callback. BUG=246450 Review URL: https://chromiumcodereview.appspot.com/19288002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211963 0039d316-1c4b-4281-b951-d872f2087c98
* Replace angle_path gyp variable with regular path.apatrick@chromium.org2013-07-172-10/+0
| | | | | | | | | | | | | The switch to angle_dx11 is complete. This is cleanup. I will land this before removing the angle_path variable from build/common.gypi. For media/ TBR=vrk@chromium.org Review URL: https://chromiumcodereview.appspot.com/18161007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211908 0039d316-1c4b-4281-b951-d872f2087c98
* Make some of the non-mutable tables in gpu/command_buffer 'const'.digit@chromium.org2013-07-135-120/+121
| | | | | | | | | | | | | | | | | These tables are never, ever, modified by the code or its clients. Adding the 'const' moves them either to read-only sections, saving private RAM when part of Chrome for Android. (The issue doesn't exist on the desktop where the Chrome Zygote shares these pages between all processes anyway. Not so on Android where the library, libchromeview.so, has to be reloaded explicitely by each renderer process). BUG=none Review URL: https://chromiumcodereview.appspot.com/16638010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211574 0039d316-1c4b-4281-b951-d872f2087c98
* Remove overlapping memcpy in gpu unittestspiman@chromium.org2013-07-132-78/+101
| | | | | | | | BUG=173356 Review URL: https://chromiumcodereview.appspot.com/18644004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211511 0039d316-1c4b-4281-b951-d872f2087c98
* Fix memory leak in MappedMemoryManager::FreeUnused().earthdok@chromium.org2013-07-122-4/+2
| | | | | | | | | | | | Previously FreeUnused did not free anything, but instead leaked all memory allocated through this MappedMemoryManager. BUG=122437, 259357 R=apatrick@chromium.org Review URL: https://chromiumcodereview.appspot.com/18888006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211493 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: Enable idle uploads as the default fallback and for IMG.epenner@chromium.org2013-07-122-7/+32
| | | | | | | | | | | | | To enable this for IMG, we need to fall back on texImage rather than texSubImage. This is both due to IMG driver bugs and for performance (the GPU process also uses texImage in this case). BUG=249147,248429 Review URL: https://chromiumcodereview.appspot.com/18644010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211481 0039d316-1c4b-4281-b951-d872f2087c98
* Add GL_EXT_multisampled_render_to_texture support to command buffer.bsalomon@google.com2013-07-1229-100/+461
| | | | | | | | | BUG=257113 R=apatrick@chromium.org, piman@chromium.org Review URL: https://codereview.chromium.org/18492005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211393 0039d316-1c4b-4281-b951-d872f2087c98
* add missing headers in gpu codemostynb@opera.com2013-07-121-0/+2
| | | | | | | | BUG=259043 Review URL: https://chromiumcodereview.appspot.com/18883003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211355 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 210138 "Perform glReadPixels with PBOs in the gpu, if PBO..."nick@chromium.org2013-07-1217-322/+118
| | | | | | | | | | | | | | | | | | | | | | | | | | | > Perform glReadPixels with PBOs in the gpu, if PBOs are available. > Make GL_ASYNC_READ_PIXELS_COMPLETED_CHROMIUM wait for readpixel transfers. > PLEASE NOTE: glMapBuffer does not wait for the readpixels transfer to complete anymore. > Nobody is currently relying on that behaviour. > Update gl_helper.cc and gl_renderer.cc to use queries. > > This CL is the same as https://codereview.chromium.org/16831004/ > but includes fixes for: > OutOfProcessPPAPITests.Graphics3D (removed a check in query_tracker.cc) > GLReadbackTest.ReadPixelsWithPBO (removed, no longer a valid test) > GLReadbackTest.ReadPixelsWithPBOAndQuery (now uses the correct query) > > BUG=249925 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=209873 > > Review URL: https://chromiumcodereview.appspot.com/18555006 TBR=hubbe@chromium.org BUG=258169 Review URL: https://codereview.chromium.org/19029003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211274 0039d316-1c4b-4281-b951-d872f2087c98
* Fix leakage of IdHandlers from gpu::gles2::ShareGroup::ShareGroup.earthdok@chromium.org2013-07-111-1/+1
| | | | | | | | | | | Fixes a large number of leaks in gpu_unittests. BUG=145701, 259357 R=jbauman@chromium.org, apatrick@chromium.org Review URL: https://chromiumcodereview.appspot.com/18214006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211251 0039d316-1c4b-4281-b951-d872f2087c98
* Fix leakage of GpuProgramProto from MemoryProgramCache.earthdok@chromium.org2013-07-111-5/+7
| | | | | | | | | | | Fixes leaks in gpu_unittests (probably real-world leaks). BUG=259357 R=dsinclair@chromium.org, apatrick@chromium.org Review URL: https://chromiumcodereview.appspot.com/19054004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211203 0039d316-1c4b-4281-b951-d872f2087c98
* Skip clear back buffer for Android WebViewboliu@chromium.org2013-07-112-2/+17
| | | | | | | | | | BUG=259023 NOTRY=true Previous try runs on PS1 and 3. Review URL: https://chromiumcodereview.appspot.com/18066015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210994 0039d316-1c4b-4281-b951-d872f2087c98
* Reland r209673: "gpu: Propagate lost context signal to all contexts"skyostil@chromium.org2013-07-113-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reland the patch with a fix for the StartupTest crashes observed on "Mac 10.6 Perf(2)". BUG=232449 > gpu: Propagate lost context signal to all contexts > > When any individual command buffer context encounters a context lost > event, propagate the context lost status to all other contexts if > gfx::GLContext::LosesAllContextsOnContextLost() is true. This allows > all command buffer clients to get notified of GPU resets. This is > useful with virtual contexts because the reset is generally picked > up by a random virtual context. > > Also, if virtual contexts are being used, all contexts should avoid > doing GL object cleanup during teardown because the real context has > already been lost at that point. > > BUG=232449 > TEST=https://www.khronos.org/registry/webgl/conformance-suites/1.0.1/extra/lots-of-polys-example.html > > Review URL: https://chromiumcodereview.appspot.com/17550012 Review URL: https://chromiumcodereview.appspot.com/18836003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210977 0039d316-1c4b-4281-b951-d872f2087c98
* add missing includes in gpu/command_buffer/*mostynb@opera.com2013-07-102-0/+3
| | | | | | | | | | | | | gpu/command_buffer/service/command_buffer_service.cc uses DCHECK* but doesn't include base/logging.h Similarly in gpu/command_buffer/service/transfer_buffer_manager.cc, which also lacks scoped_ptr.h. BUG=259043 Review URL: https://chromiumcodereview.appspot.com/18998002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210963 0039d316-1c4b-4281-b951-d872f2087c98
* GLInProcessContext must ensure whether CommandBuffer loses context.dongseong.hwang@intel.com2013-07-101-4/+15
| | | | | | | | | | | | | | | | | | | GLInProcessContext plays a similar role to GpuCommandBufferStub in InProcess mode. GpuCommandBufferStub always ensures whether CommandBuffer loses context via GpuCommandBufferStub::MakeCurrent(). However, GLInProcessContextImpl does not have the similar routine. So, when the context is lost, GLInProcessContextImpl::PumpCommands() pushes ahead GpuScheduler::PutChanged() although GpuCommandBufferStub stops to run the scheduler. This patch makes GLInProcessContextImpl stop to run the scheduler if the context is lost. TEST=GLRendererTestSyncPoint.SignalSyncPointOnLostContext in cc_unittests BUG=258007 Review URL: https://chromiumcodereview.appspot.com/18614006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210776 0039d316-1c4b-4281-b951-d872f2087c98
* Perform glReadPixels with PBOs in the gpu, if PBOs are available.hubbe@chromium.org2013-07-0417-118/+322
| | | | | | | | | | | | | | | | | | | | | Make GL_ASYNC_READ_PIXELS_COMPLETED_CHROMIUM wait for readpixel transfers. PLEASE NOTE: glMapBuffer does not wait for the readpixels transfer to complete anymore. Nobody is currently relying on that behaviour. Update gl_helper.cc and gl_renderer.cc to use queries. This CL is the same as https://codereview.chromium.org/16831004/ but includes fixes for: OutOfProcessPPAPITests.Graphics3D (removed a check in query_tracker.cc) GLReadbackTest.ReadPixelsWithPBO (removed, no longer a valid test) GLReadbackTest.ReadPixelsWithPBOAndQuery (now uses the correct query) BUG=249925 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=209873 Review URL: https://chromiumcodereview.appspot.com/18555006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210138 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 209673 "gpu: Propagate lost context signal to all contexts"crogers@google.com2013-07-033-14/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Speculative revert to try to fix 256903 BUG=256903 > gpu: Propagate lost context signal to all contexts > > When any individual command buffer context encounters a context lost > event, propagate the context lost status to all other contexts if > gfx::GLContext::LosesAllContextsOnContextLost() is true. This allows > all command buffer clients to get notified of GPU resets. This is > useful with virtual contexts because the reset is generally picked > up by a random virtual context. > > Also, if virtual contexts are being used, all contexts should avoid > doing GL object cleanup during teardown because the real context has > already been lost at that point. > > BUG=232449 > TEST=https://www.khronos.org/registry/webgl/conformance-suites/1.0.1/extra/lots-of-polys-example.html > > Review URL: https://chromiumcodereview.appspot.com/17550012 TBR=skyostil@chromium.org Review URL: https://codereview.chromium.org/18647004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210011 0039d316-1c4b-4281-b951-d872f2087c98
* GPU: Do not write to shared memory after query destruction.backer@chromium.org2013-07-0314-113/+166
| | | | | | | | | | | The additional lock allows us to cancel pending query completion callbacks when the query is deleted. BUG=256491 Review URL: https://chromiumcodereview.appspot.com/18528003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@210008 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: Fix removal of pending queries.reveman@chromium.org2013-07-034-36/+79
| | | | | | | | | | | | | | This moves all queries to a "removed queries" list at removal time. The memory used by the queries is not freed until the query has completed. BUG=253488 TEST=gpu_unittests --gtest_filter=QueryTrackerTest.Remove NOTRY=true Review URL: https://chromiumcodereview.appspot.com/18340003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209977 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 209873 "Perform glReadPixels with PBOs in the gpu, if PBO..."dslomov@chromium.org2013-07-0316-301/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This CL caused similar failures. Note that not only XP is affected, it is all Windows bots: Win7: http://build.chromium.org/p/chromium.win/builders/Win7%20Tests%20%28dbg%29%283%29/builds/20016 Win Aura: http://build.chromium.org/p/chromium.win/builders/Win%20Aura%20Tests%20%283%29/builds/3891 WinXP: http://build.chromium.org/p/chromium.win/builders/XP%20Tests%20%28dbg%29%283%29/builds/37216 > Perform glReadPixels with PBOs in the gpu, if PBOs are available. > Make GL_ASYNC_READ_PIXELS_COMPLETED_CHROMIUM wait for readpixel transfers. > PLEASE NOTE: glMapBuffer does not wait for the readpixels transfer to complete anymore. > Nobody is currently relying on that behaviour. > Update gl_helper.cc and gl_renderer.cc to use queries. > > This CL is the same as https://codereview.chromium.org/16831004/, which was submitted and reverted because it seemed to cause > OutOfProcessPPAPITest.Graphics3D failures on XP. > > Since I don't have an XP box and there are no XP trybots I can't seem to reproduce the problem. Also, this particular test is flaky and has had problems even after my CL was reverted. Thus, I'm going to try to submit it again, and if that breaks OutOfProcessPPAPITest.Graphics3D again, I apologize in advance. > > > > BUG=249925 > > Review URL: https://chromiumcodereview.appspot.com/18555006 TBR=hubbe@chromium.org Review URL: https://codereview.chromium.org/18608004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209907 0039d316-1c4b-4281-b951-d872f2087c98
* Perform glReadPixels with PBOs in the gpu, if PBOs are available.hubbe@chromium.org2013-07-0316-97/+301
| | | | | | | | | | | | | | | | | | | | Make GL_ASYNC_READ_PIXELS_COMPLETED_CHROMIUM wait for readpixel transfers. PLEASE NOTE: glMapBuffer does not wait for the readpixels transfer to complete anymore. Nobody is currently relying on that behaviour. Update gl_helper.cc and gl_renderer.cc to use queries. This CL is the same as https://codereview.chromium.org/16831004/, which was submitted and reverted because it seemed to cause OutOfProcessPPAPITest.Graphics3D failures on XP. Since I don't have an XP box and there are no XP trybots I can't seem to reproduce the problem. Also, this particular test is flaky and has had problems even after my CL was reverted. Thus, I'm going to try to submit it again, and if that breaks OutOfProcessPPAPITest.Graphics3D again, I apologize in advance. BUG=249925 Review URL: https://chromiumcodereview.appspot.com/18555006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209873 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: Propagate lost context signal to all contextsskyostil@chromium.org2013-07-023-1/+14
| | | | | | | | | | | | | | | | | | | | When any individual command buffer context encounters a context lost event, propagate the context lost status to all other contexts if gfx::GLContext::LosesAllContextsOnContextLost() is true. This allows all command buffer clients to get notified of GPU resets. This is useful with virtual contexts because the reset is generally picked up by a random virtual context. Also, if virtual contexts are being used, all contexts should avoid doing GL object cleanup during teardown because the real context has already been lost at that point. BUG=232449 TEST=https://www.khronos.org/registry/webgl/conformance-suites/1.0.1/extra/lots-of-polys-example.html Review URL: https://chromiumcodereview.appspot.com/17550012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209673 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 209625 "Perform glReadPixels with PBOs in the gpu, if PBO..."dslomov@chromium.org2013-07-0216-301/+97
| | | | | | | | | | | | | | | | | | | | | | Looks like it causes OutOfProcessPPAPITest.Graphics3D failure on XP. http://build.chromium.org/p/chromium.win/builders/XP%20Tests%20%28dbg%29%282%29/builds/31095 > Perform glReadPixels with PBOs in the gpu, if PBOs are available. > Make GL_ASYNC_PIXEL_TRANSFERS_COMPLETED_CHROMIUM wait for readpixel transfers. > Add signalQuery to get a callback when the transfer is done. > PLEASE NOTE: glMapBuffer does not wait for the readpixels transfer to complete anymore. > Nobody is currently relying on that behaviour. > Update gl_helper.cc and gl_renderer.cc to use queries. > > BUG=249925 > > Review URL: https://chromiumcodereview.appspot.com/16831004 TBR=hubbe@chromium.org Review URL: https://codereview.chromium.org/18445004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209654 0039d316-1c4b-4281-b951-d872f2087c98
* Perform glReadPixels with PBOs in the gpu, if PBOs are available.hubbe@chromium.org2013-07-0216-97/+301
| | | | | | | | | | | | | | Make GL_ASYNC_PIXEL_TRANSFERS_COMPLETED_CHROMIUM wait for readpixel transfers. Add signalQuery to get a callback when the transfer is done. PLEASE NOTE: glMapBuffer does not wait for the readpixels transfer to complete anymore. Nobody is currently relying on that behaviour. Update gl_helper.cc and gl_renderer.cc to use queries. BUG=249925 Review URL: https://chromiumcodereview.appspot.com/16831004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209625 0039d316-1c4b-4281-b951-d872f2087c98
* Fix stream textures + mailboxespiman@chromium.org2013-07-0213-53/+129
| | | | | | | | | | | | | | DestroyStreamTexture was called from DeleteTextures, which is awkward because it doesn't mean the texture is actually deleted. Instead, rationalize StreamTexture ownership, by making it associated with the TextureRef (i.e. client id) that created it. When the TextureRef is destroyed and the stream texture wasn't explicitly destroyed yet, it gets destroyed implicitly at this point. The StreamTextureManager still maps StreamTextures by service id, so that multiple TextureRef in the same ContextGroup (in practice, in the same channel actually) will still allow updates on bind. This also makes explicit the fact that the StreamTextureManager is shared per ContxtGroup, since we rely on that for Update. BUG=254494 Review URL: https://chromiumcodereview.appspot.com/18430002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209605 0039d316-1c4b-4281-b951-d872f2087c98
* Remove old GPU latency test.jbauman@chromium.org2013-07-011-7/+0
| | | | | | | | | | | This is mostly redundant with the new telemetry-based latency tests. BUG=249207 Review URL: https://chromiumcodereview.appspot.com/17847009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209533 0039d316-1c4b-4281-b951-d872f2087c98
* Use a direct include of time headers in courgette/, crypto/, dbus/, device/, ↵avi@chromium.org2013-06-288-8/+8
| | | | | | | | | | | | google_apis/, gpu/, ipc/, jingle/. BUG=254986 TEST=none TBR=ben@chromium.org Review URL: https://codereview.chromium.org/18156002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209149 0039d316-1c4b-4281-b951-d872f2087c98
* Disable GLLoseContextTest.ShareGroup on platforms that exit on context lost.apatrick@chromium.org2013-06-273-0/+14
| | | | | | | | This currently causes these tests to exit when run on Windows. Review URL: https://chromiumcodereview.appspot.com/17903003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208914 0039d316-1c4b-4281-b951-d872f2087c98
* Update Linux to use scoped_refptr<T>::get() rather than implicit "operator T*"rsleevi@chromium.org2013-06-2710-12/+13
| | | | | | | | | | | | Fixes a number of cases either not caught by the automated tool or that have recently regressed. BUG=206189 TBR=darin Review URL: https://chromiumcodereview.appspot.com/17948002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208882 0039d316-1c4b-4281-b951-d872f2087c98
* GPU: Fast track waited uploads.backer@chromium.org2013-06-261-94/+148
| | | | | | | | | | | Rather than bump thread priority when waiting (which is not yet supported on CrOS), execute the upload out-of-order on the higher priority main thread. BUG=252143 Review URL: https://chromiumcodereview.appspot.com/17198006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208718 0039d316-1c4b-4281-b951-d872f2087c98
* Factor out code from WebGraphicsContext3DInProcessImplsievers@chromium.org2013-06-262-0/+715
| | | | | | | | | | | | | | | Move the internal GLInProcessContext class to gpu/command_buffer/client. This works towards these goals: - Unifying the WGC3D impls to be able to have one unified class that is simply a shim from WGC3D to GLES2 - Factor out the in-process version so that non-webkit code can use it without depending on webkit TBR=jamesr@chromium.org, piman@chromium.org Review URL: https://codereview.chromium.org/16851003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@208612 0039d316-1c4b-4281-b951-d872f2087c98