summaryrefslogtreecommitdiffstats
path: root/gpu
Commit message (Collapse)AuthorAgeFilesLines
* Flush command streams after deleting resourcesjamesr@chromium.org2011-08-053-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When share groups and pooled IDs are in use, a race condition exists when destroying resources since the IDs are marked as free before the resource is actually freed. Consider: Context A creates a framebuffer with id 1 Context B is created in the same sharegroup as A Context A destroys its framebuffer: - the ID is freed (via FreeIDs(), which is a synchronous call) - a DeleteFrameBuffersImmediate command is entered into A's command buffer but does not immediately execute Context B creates a framebuffer - genFramebuffer() makes a sync call to the service side, which reports that id 1 is available At this point, if the service side processes and commands in context B's command stream, it will throw kInvalidArguments because as far as the service side is concerned framebuffer 1 has never been released. This patch adds a Flush() after destroying a resource so that the service side will process the resource destruction command before servicing other command streams. There's still a potential race condition if multiple contexts in the same share groups are making calls from different threads, but today all contexts in the same share group are on the same thread. BUG=80703 TEST=none Review URL: http://codereview.chromium.org/7574024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95576 0039d316-1c4b-4281-b951-d872f2087c98
* Fix OpenGL ES 2.0 Conformance tests supportgman@chromium.org2011-08-041-1/+3
| | | | | | | | | | | TEST=ran tests BUG=none TBR=apatrick@chromum.org Review URL: http://codereview.chromium.org/7575005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95474 0039d316-1c4b-4281-b951-d872f2087c98
* Roll skia to r2034 (and add new gl bindings)bsalomon@google.com2011-08-041-0/+6
| | | | | | Review URL: http://codereview.chromium.org/7564013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95462 0039d316-1c4b-4281-b951-d872f2087c98
* Implemented support for GL context share groups in the renderer process.I ↵apatrick@chromium.org2011-08-038-32/+110
| | | | | | | | put all compositor and canvas contexts in the same share group so they can share IDs. Review URL: http://codereview.chromium.org/7554015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95345 0039d316-1c4b-4281-b951-d872f2087c98
* Resolve to temporary texture when doing readpixelsjbauman@chromium.org2011-08-031-13/+60
| | | | | | | | | | | | We don't want to resolve to the parent texture, as that can cause an accidental swapbuffers when preserveDrawingBuffer is false. Instead create a temporary texture which will stick around for a while. BUG=55927 TEST= Review URL: http://codereview.chromium.org/7553018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95332 0039d316-1c4b-4281-b951-d872f2087c98
* Updated demo to use resizable plugin element. This exercises the new ↵alokp@chromium.org2011-08-026-29/+89
| | | | | | | | | PPB_Graphics3D_Dev::Resize() API. BUG=62383 Review URL: http://codereview.chromium.org/7529009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95134 0039d316-1c4b-4281-b951-d872f2087c98
* Remove executable bit on text files.avi@chromium.org2011-08-016-0/+0
| | | | | | | | | | TBR=gman BUG=none TEST=tree greens Review URL: http://codereview.chromium.org/7518023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94898 0039d316-1c4b-4281-b951-d872f2087c98
* Document CHROMIUM's OpenGL ES 2.0 extensionsgman@chromium.org2011-08-016-0/+462
| | | | | | | | | TEST=NONE BUG=NONE Review URL: http://codereview.chromium.org/7493008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94883 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 94743 - Allow the renderer process to map textures from one context ↵jamesr@chromium.org2011-07-309-131/+48
| | | | | | | | | | | | | | | | | | | | into another. This is on an individual resource basis rather than general share groups in order to hide be able to hide the full namespace from untrusted plugins. Accelerated 2D canvas now no longer needs to copy its backing store on every page composite and the redundant backing texture is not needed, saving video memory. Unit tests for the GPU service to follow. Patch to delete copyTextureToParentTexture extensions from gpu/ to follow. BUG=90714 Review URL: http://codereview.chromium.org/7529015 TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/7518016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94808 0039d316-1c4b-4281-b951-d872f2087c98
* Made CommandBuffer::GetLastState and SetContextLostReason pure virtual.apatrick@chromium.org2011-07-292-29/+2
| | | | | | | | | Required nacl changes are checked into the nacl repo and rolled into the chromium repo. BUG=89127,89670 Review URL: http://codereview.chromium.org/7488031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94772 0039d316-1c4b-4281-b951-d872f2087c98
* Allow the renderer process to map textures from one context into another.apatrick@chromium.org2011-07-299-48/+131
| | | | | | | | | | | | | | | This is on an individual resource basis rather than general share groups in order to hide be able to hide the full namespace from untrusted plugins. Accelerated 2D canvas now no longer needs to copy its backing store on every page composite and the redundant backing texture is not needed, saving video memory. Unit tests for the GPU service to follow. Patch to delete copyTextureToParentTexture extensions from gpu/ to follow. BUG=90714 Review URL: http://codereview.chromium.org/7529015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94743 0039d316-1c4b-4281-b951-d872f2087c98
* Remove ReadWriteTokens from GpuVideoDecodeAccelerator + falloutvrk@google.com2011-07-285-67/+0
| | | | | | | | | | | | With apatrick's changes in r93066, we no longer need to manually sync up with the command buffer before handling IPC messages in GpuVideoDecodeAccelerator. BUG=none TEST=gles2 example runs without crashing Review URL: http://codereview.chromium.org/7521015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94561 0039d316-1c4b-4281-b951-d872f2087c98
* Insert a soft flush into the command buffer on unmapTexSubImage2Djamesr@chromium.org2011-07-281-0/+2
| | | | | | | | | | | | | | | | | | This does a CommandBufferHelper flush in UnmapTexSubImage2DCHROMIUM so the gpu process can start processing texture uploads as soon as the texture is unmapped instead of waiting until the next hard flush or finish. This increase parallelization for tile uploads, especially during compositor startup and when the entire root layer is damaged. On my linux z600, this cuts down on the time taken to initially composite the poster circle page measured from start of RenderWidget::DoDeferredUpdate to the first SwapBuffers completing from 100ms->50ms BUG=none TEST=none Review URL: http://codereview.chromium.org/7492060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94504 0039d316-1c4b-4281-b951-d872f2087c98
* Reland r93090, which was reverted in r93104.alokp@chromium.org2011-07-271-14/+5
| | | | | | | | | Ported pepper 3d demos to use the new graphics3d interface instead of context3d and surface3d. BUG=86370 TBR=piman Review URL: http://codereview.chromium.org/7470031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94348 0039d316-1c4b-4281-b951-d872f2087c98
* Removed vestigial GL_latch_CHROMIUM code.apatrick@chromium.org2011-07-275-12/+2
| | | | | | | | | glFlush now has barrier semantics and is now used as an alternative. This patch is dependent on https://bugs.webkit.org/show_bug.cgi?id=65043, now landed as webkit r91736. Review URL: http://codereview.chromium.org/7495009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94215 0039d316-1c4b-4281-b951-d872f2087c98
* Remove explicit keyword from multi-argument (w/o default values) constructorsdilmah@chromium.org2011-07-261-4/+3
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/7477008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94115 0039d316-1c4b-4281-b951-d872f2087c98
* Support GL_OES_EGL_image_externalbulach@chromium.org2011-07-2623-42/+538
| | | | | | | | | | | | | Add support for GL_OES_EGL_image_external to the cmdbuffer code. Original patch from http://codereview.chromium.org/7458008/ Landing on behalf of Daniel Sievers <sievers@chromium.org> BUG= TEST=new unit_tests Review URL: http://codereview.chromium.org/7480014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94096 0039d316-1c4b-4281-b951-d872f2087c98
* Create new GLSurface for cross process image transport.backer@chromium.org2011-07-224-138/+24
| | | | | | | | | | | | | | | Currently cross process image transport (on OSX and TOUCH_UI) uses the WebGL code path to render to a texture via FBO. This makes a clean break with path and centralizes the GL context specific IPC communication in one location. By separating from the WebGL code, I was able to avoid wasting a texture attached to the FBO in the decoder (the old code ignored this attachment --- the new code makes no such attachment at the decoder level). As a test of the new architecture, I have also implemented XComposite/GLX_texture_from_pixmap image transport (i.e. it's now possible to use the --use-gl=desktop backend on touch_ui builds). BUG=none TEST=3D CSS and WebGL on TOUCH_UI. Review URL: http://codereview.chromium.org/7395020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93681 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 93106 - Reparenting of RendererGLContexts supports going from no ↵apatrick@chromium.org2011-07-221-25/+34
| | | | | | | | | | | | | | | parent to having a parent. RendererGLContext::SetParent is a no-op if the parent did not change to avoid a redundant sync IPC. Added SetParentContext to WebGraphicsContext3DCommandBufferImpl. WebKit change to follow. Original review: http://codereview.chromium.org/7237009 A patch that this was dependent on was reverting, causing this one to break 2D canvas. The patch is relanded. Relanding this one as well. Review URL: http://codereview.chromium.org/7488001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93677 0039d316-1c4b-4281-b951-d872f2087c98
* Add glBindFragDataLocationIndexedARB to the GLInterface. Add it to skia's ↵bsalomon@google.com2011-07-221-0/+3
| | | | | | | | in-proc GL function ptr struct. Required for Ganesh ui rendering. Review URL: http://codereview.chromium.org/7482003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93673 0039d316-1c4b-4281-b951-d872f2087c98
* Adding an empty program_info_manager.cc so I can fix NaClgman@chromium.org2011-07-221-0/+1
| | | | | | | | | | | | | | | | | | I need to make NaCl expect this file so that I can then put the real one on chromium. The steps are #1) check in this blank file #2) make NaCl use this file (update its deps, link in nacl.scons) #3) commit the real file in chromium #4) profit TEST=none BUG=85966 TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/7491005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93594 0039d316-1c4b-4281-b951-d872f2087c98
* Fix clang buildisherman@chromium.org2011-07-221-1/+3
| | | | | | | | | | BUG=none TEST=none TBR=gman@chromium.org Review URL: http://codereview.chromium.org/7493006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93547 0039d316-1c4b-4281-b951-d872f2087c98
* Fix for warning to error that trybots didn't catch.gman@chromium.org2011-07-221-2/+2
| | | | | | | | | | TEST=none BUG=none TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/7488004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93543 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for GL_CHROMIUM_flipygman@chromium.org2011-07-228-40/+504
| | | | | | | | | | | Also fixed a couple of other related things TEST=unit tests BUG=89593 Review URL: http://codereview.chromium.org/7471032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93541 0039d316-1c4b-4281-b951-d872f2087c98
* Reland 93066 - Execute all GL commands up to the put offset reported by a ↵apatrick@chromium.org2011-07-2140-631/+154
| | | | | | | | | | | each flush.This means glFlush is a barrier that prevents reordering of GL commands issued on different command buffers. I used it to replace latches for synchronizing the rendering of WebGL canvas and Pepper 3D with the accelerated compositor. The primary advantage is it is more robust than latches and there is no possibility of deadlock. It should also be possible for WebGL and Pepper 3D to use it whereas exposing SetLatch and WaitLatch would be dangerous. The calls to SetLatch and WaitLatch are still in webkit but they are no-ops. SetLatch and WaitLatch are completely removed elsewhere.I changed CommandBuffer::FlushSync to Finish to reflect the new semantics. Going forward, I will add a synchronous CommandBuffer::WaitForToken and WaitForAvailableEntries, which should eliminate the need to call Finish unless glFinish is called by the client. The Pepper interface is unchanged because I don't want to break binary compatibility.I fixed a bug where the last read token in CmdBufferHelper was stale after receiving a ReportState IPC. That was causing a redundant synchronous flush in the client side SwapBuffers throttling. I removed Yield because it does not make sense with the new semantics. There is no round robin scheduling.Tested with WebGL on Windows and Mac and checked that 72672 did not regress. Review URL: http://codereview.chromium.org/7466022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93479 0039d316-1c4b-4281-b951-d872f2087c98
* Allow creating a gpu channel that uses software renderingjbauman@chromium.org2011-07-217-8/+15
| | | | | | | | | | | | | Where supported (on ANGLE with EGL_ANGLE_software_display), allow for the creation of gpu channels that use software rendering instead of hardware rendering. BUG= TEST=trybots, other later tests TBR=apatrick Review URL: http://codereview.chromium.org/7471042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93449 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 93393 - Crashed Linux Touch build: ↵leandrogracia@chromium.org2011-07-217-15/+8
| | | | | | | | | | | | | | | | | | http://build.chromium.org/p/chromium/builders/Linux%20Touch/builds/2649/steps/compile/logs/stdio Allow creating a gpu channel that uses software rendering Where supported (on ANGLE with EGL_ANGLE_software_display), allow for the creation of gpu channels that use software rendering instead of hardware rendering. BUG= TEST=trybots, other later tests Review URL: http://codereview.chromium.org/7383004 TBR=jbauman@chromium.org Review URL: http://codereview.chromium.org/7468030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93399 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 93397 - Revert 93393 - Revert was broken. Restoring.leandrogracia@chromium.org2011-07-216-7/+14
| | | | | | | | | | | | | | | | | | | | | Crashing on Linux Touch: http://build.chromium.org/p/chromium/builders/Linux%20Touch/builds/2649/steps/compile/logs/stdio Allow creating a gpu channel that uses software rendering Where supported (on ANGLE with EGL_ANGLE_software_display), allow for the creation of gpu channels that use software rendering instead of hardware rendering. BUG= TEST=trybots, other later tests Review URL: http://codereview.chromium.org/7383004 TBR=jbauman@chromium.org Review URL: http://codereview.chromium.org/7468028 TBR=leandrogracia@chromium.org Review URL: http://codereview.chromium.org/7468029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93398 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 93393 - Crashing on Linux Touch: ↵leandrogracia@chromium.org2011-07-216-14/+7
| | | | | | | | | | | | | | | | | | http://build.chromium.org/p/chromium/builders/Linux%20Touch/builds/2649/steps/compile/logs/stdio Allow creating a gpu channel that uses software rendering Where supported (on ANGLE with EGL_ANGLE_software_display), allow for the creation of gpu channels that use software rendering instead of hardware rendering. BUG= TEST=trybots, other later tests Review URL: http://codereview.chromium.org/7383004 TBR=jbauman@chromium.org Review URL: http://codereview.chromium.org/7468028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93397 0039d316-1c4b-4281-b951-d872f2087c98
* Allow creating a gpu channel that uses software renderingjbauman@chromium.org2011-07-217-8/+15
| | | | | | | | | | | Where supported (on ANGLE with EGL_ANGLE_software_display), allow for the creation of gpu channels that use software rendering instead of hardware rendering. BUG= TEST=trybots, other later tests Review URL: http://codereview.chromium.org/7383004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93393 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 93106 - Reparenting of RendererGLContexts supports going from no ↵apatrick@chromium.org2011-07-201-34/+25
| | | | | | | | | | | | | | parent to having a parent. RendererGLContext::SetParent is a no-op if the parent did not change to avoid a redundant sync IPC. Added SetParentContext to WebGraphicsContext3DCommandBufferImpl. WebKit change to follow. Review URL: http://codereview.chromium.org/7237009 TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/7475001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93244 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 93066 - Execute all GL commands up to the put offset reported by a ↵apatrick@chromium.org2011-07-2040-154/+631
| | | | | | | | | | | each flush.This means glFlush is a barrier that prevents reordering of GL commands issued on different command buffers. I used it to replace latches for synchronizing the rendering of WebGL canvas and Pepper 3D with the accelerated compositor. The primary advantage is it is more robust than latches and there is no possibility of deadlock. It should also be possible for WebGL and Pepper 3D to use it whereas exposing SetLatch and WaitLatch would be dangerous.The calls to SetLatch and WaitLatch are still in webkit but they are no-ops. SetLatch and WaitLatch are completely removed elsewhere.I changed CommandBuffer::FlushSync to Finish to reflect the new semantics. Going forward, I will add a synchronous CommandBuffer::WaitForToken and WaitForAvailableEntries, which should eliminate the need to call Finish unless glFinish is called by the client. The Pepper interface is unchanged because I don't want to break binary compatibility.I fixed a bug where the last read token in CmdBufferHelper was stale after receiving a ReportState IPC. That was causing a redundant synchronous flush in the client side SwapBuffers throttling.I removed Yield because it does not make sense with the new semantics. There is no round robin scheduling.Tested with WebGL on Windows and Mac and checked that 72672 did not regress. Review URL: http://codereview.chromium.org/7253052 TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/7458010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93143 0039d316-1c4b-4281-b951-d872f2087c98
* Reparenting of RendererGLContexts supports going from no parent to having a ↵apatrick@chromium.org2011-07-191-25/+34
| | | | | | | | | | | parent. RendererGLContext::SetParent is a no-op if the parent did not change to avoid a redundant sync IPC. Added SetParentContext to WebGraphicsContext3DCommandBufferImpl. WebKit change to follow. Review URL: http://codereview.chromium.org/7237009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93106 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 93090 - Ported pepper 3d demos to use the new graphics3d interface ↵alokp@chromium.org2011-07-191-5/+14
| | | | | | | | | | | | instead of context3d and surface3d. BUG=86370 Review URL: http://codereview.chromium.org/7433016 TBR=alokp@chromium.org Review URL: http://codereview.chromium.org/7450004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93104 0039d316-1c4b-4281-b951-d872f2087c98
* Ported pepper 3d demos to use the new graphics3d interface instead of ↵alokp@chromium.org2011-07-191-14/+5
| | | | | | | | | context3d and surface3d. BUG=86370 Review URL: http://codereview.chromium.org/7433016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93090 0039d316-1c4b-4281-b951-d872f2087c98
* Binding Graphics3D with Instance and OpenGLES2 interface.alokp@chromium.org2011-07-191-114/+16
| | | | | | | BUG=86370,78087 Review URL: http://codereview.chromium.org/7409003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93086 0039d316-1c4b-4281-b951-d872f2087c98
* Execute all GL commands up to the put offset reported by a each flush.This ↵apatrick@chromium.org2011-07-1940-631/+154
| | | | | | | | means glFlush is a barrier that prevents reordering of GL commands issued on different command buffers. I used it to replace latches for synchronizing the rendering of WebGL canvas and Pepper 3D with the accelerated compositor. The primary advantage is it is more robust than latches and there is no possibility of deadlock. It should also be possible for WebGL and Pepper 3D to use it whereas exposing SetLatch and WaitLatch would be dangerous.The calls to SetLatch and WaitLatch are still in webkit but they are no-ops. SetLatch and WaitLatch are completely removed elsewhere.I changed CommandBuffer::FlushSync to Finish to reflect the new semantics. Going forward, I will add a synchronous CommandBuffer::WaitForToken and WaitForAvailableEntries, which should eliminate the need to call Finish unless glFinish is called by the client. The Pepper interface is unchanged because I don't want to break binary compatibility.I fixed a bug where the last read token in CmdBufferHelper was stale after receiving a ReportState IPC. That was causing a redundant synchronous flush in the client side SwapBuffers throttling.I removed Yield because it does not make sense with the new semantics. There is no round robin scheduling.Tested with WebGL on Windows and Mac and checked that 72672 did not regress. Review URL: http://codereview.chromium.org/7253052 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93066 0039d316-1c4b-4281-b951-d872f2087c98
* Introduce ui.dll / libui.so for the component build.darin@chromium.org2011-07-173-1/+6
| | | | | | | R=ben@chromium.org Review URL: http://codereview.chromium.org/7328011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92819 0039d316-1c4b-4281-b951-d872f2087c98
* Don't let the 'all' target be a bundle.thakis@chromium.org2011-07-161-0/+1
| | | | | | | | | | | This happened accidentally through direct_dependent_settings. BUG=none TEST=none Review URL: http://codereview.chromium.org/7398015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92793 0039d316-1c4b-4281-b951-d872f2087c98
* Detect and expose loss of OpenGL context using GL_ARB_robustness.kbr@chromium.org2011-07-1420-64/+204
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (This CL was originally reviewed under http://codereview.chromium.org/7331020/ . The only difference is the removal of an #include from command_buffer.h that was accidentally left in and which caused a significant increase in the number of files containing static initializers, presumably because of the dependent #include of <iostream>.) This initial patch changes the Linux port to use GLX_ARB_create_context_robustness when available, and tests periodically whether the context has been lost after each draw call and when making the context current. The detection of context loss also works with EGL and ANGLE, although it always reports an unknown reset status. WebKit changes will follow which test the reset status and determine what to do in response; for example, the policy might be to never restore a WebGL context which was lost (due to a GPU reset) and which was determined to be the guilty context. Tested manually with WebGL stress tests and verified on Linux and Windows that in at least some situations it is possible to detect guilty contexts and shut down the associated WebGL application. Some precision of this detection was recently lost and will need to be fixed in following CLs. Also updated and ran GPU unit tests. BUG=88106 TEST=none (tested manually; try servers) R=gman,apatrick,piman Review URL: http://codereview.chromium.org/7362005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92453 0039d316-1c4b-4281-b951-d872f2087c98
* Cache bindings on client side in command buffer.gman@chromium.org2011-07-136-63/+301
| | | | | | | | | TEST=unit tests and ran OpenGL ES 2.0 conformance tests BUG=85969 Review URL: http://codereview.chromium.org/7355027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92442 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 92429 - Detect and expose loss of OpenGL context using ↵kbr@chromium.org2011-07-1320-204/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GL_ARB_robustness. (Regressed static initalizer size on Linux -- will need to reexamine code to understand why.) This initial patch changes the Linux port to use GLX_ARB_create_context_robustness when available, and tests periodically whether the context has been lost after each draw call and when making the context current. The detection of context loss also works with EGL and ANGLE, although it always reports an unknown reset status. WebKit changes will follow which test the reset status and determine what to do in response; for example, the policy might be to never restore a WebGL context which was lost (due to a GPU reset) and which was determined to be the guilty context. Tested manually with WebGL stress tests and verified on Linux and Windows that in at least some situations it is possible to detect guilty contexts and shut down the associated WebGL application. Some precision of this detection was recently lost and will need to be fixed in following CLs. Also updated and ran GPU unit tests. BUG=88106 TEST=none (tested manually; try servers) Review URL: http://codereview.chromium.org/7331020 TBR=kbr@chromium.org Review URL: http://codereview.chromium.org/7346032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92434 0039d316-1c4b-4281-b951-d872f2087c98
* Detect and expose loss of OpenGL context using GL_ARB_robustness.kbr@chromium.org2011-07-1320-63/+204
| | | | | | | | | | | | | | | | | | | | | | | | | | This initial patch changes the Linux port to use GLX_ARB_create_context_robustness when available, and tests periodically whether the context has been lost after each draw call and when making the context current. The detection of context loss also works with EGL and ANGLE, although it always reports an unknown reset status. WebKit changes will follow which test the reset status and determine what to do in response; for example, the policy might be to never restore a WebGL context which was lost (due to a GPU reset) and which was determined to be the guilty context. Tested manually with WebGL stress tests and verified on Linux and Windows that in at least some situations it is possible to detect guilty contexts and shut down the associated WebGL application. Some precision of this detection was recently lost and will need to be fixed in following CLs. Also updated and ran GPU unit tests. BUG=88106 TEST=none (tested manually; try servers) Review URL: http://codereview.chromium.org/7331020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92429 0039d316-1c4b-4281-b951-d872f2087c98
* Cooperatively round robin GPU command buffers.apatrick@chromium.org2011-07-122-10/+24
| | | | | | | | | | | The renderer processes asynchronously flush every n milliseconds. This prevents one renderer process from starving the others by issuing excessive amounts of GL calls without flushing. Also has the advantage that the GPU process more evenly spreads its work out over the course of the frame. Follows: http://codereview.chromium.org/7253052/ Review URL: http://codereview.chromium.org/7313032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92197 0039d316-1c4b-4281-b951-d872f2087c98
* Replace texture info when ID is already in use by parent.reveman@google.com2011-07-111-0/+7
| | | | | | | | | BUG=chromium-os:16976 TEST=manual Review URL: http://codereview.chromium.org/7193044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92075 0039d316-1c4b-4281-b951-d872f2087c98
* Add glGetProgramInfoCHROMIUM.gman@chromium.org2011-07-1118-11/+516
| | | | | | | | | | | | | | This passes all program data in one command. I'll use this in another CL to cache program data on the client side for contexts that are not sharing resources. TEST=unit tests BUG=85966 Review URL: http://codereview.chromium.org/7324035 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92066 0039d316-1c4b-4281-b951-d872f2087c98
* Remove the comments setting emands and vim tab width and expansion variables.tony@chromium.org2011-07-113-19/+0
| | | | | | | | | | | | | | | | | These were added in r28089 (http://codereview.chromium.org/256059) but are unnecessary bloat for everyone to carry around, even those that don't use emacs or vim. In an earlier change, I added editor config files in src/tools/emacs/ and src/tools/vim/ so users of the appropriate editor can source those instead. BUG=none TEST=none Review URL: http://codereview.chromium.org/7310019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92046 0039d316-1c4b-4281-b951-d872f2087c98
* Fixes for Clang.gman@chromium.org2011-07-112-19/+31
| | | | | | | | | | | | | | | | | | | | | Note: These errors make no sense to me. I have tons of other code exactly like this. I don't know why those work in clang and this doesn't TEST=compiled on clang BUG=none TBR=apatrick@chromium.org Move VertexAttribManager to another file. Just trying to slowly pair down gles2_cmd_decoder.cc TEST=unit tests BUG=none Review URL: http://codereview.chromium.org/7333012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92033 0039d316-1c4b-4281-b951-d872f2087c98
* Move VertexAttribManager to another file.gman@chromium.org2011-07-115-258/+481
| | | | | | | | | | | | | Just trying to slowly pair down gles2_cmd_decoder.cc TEST=unit tests BUG=none R=apatrick@chromium.org Review URL: http://codereview.chromium.org/7331023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92029 0039d316-1c4b-4281-b951-d872f2087c98
* Correct reporting of compressed texture formats and shader binary formatsgman@chromium.org2011-07-0712-19/+201
| | | | | | | | | | | | | | | | | | NOTE: There's an issue here that before this change the largest number of values returned by glGetXXX was 4 and now it's undefined. The issue will come up if there are ever more than 15 because the GLES2Implementation only currently handles 15. See GLES2Implementation::kMaxSizeOfSimpleResult. http://code.google.com/p/chromium/issues/detail?id=88227 TEST=unit tests BUG=none Review URL: http://codereview.chromium.org/7304002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@91781 0039d316-1c4b-4281-b951-d872f2087c98