summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service
Commit message (Collapse)AuthorAgeFilesLines
* Mac: Don't hang gpu process if a tab that shares its renderer process with ↵thakis@chromium.org2010-12-222-0/+14
| | | | | | | | | | | | | | | | | | | | | | other tabs and that has accelerated content and outstanding paints. The problem was that the renderer process busy-waits on the GPU process to flush all gpu commands on close, and the GPU process waits with processing commands from the renderer until a paint ack arrives from the browser. But since the window is already closed, no paint acks are sent any more. The fix is to let the browser tell the GPU process when a window is closed, and then let the GPU process not wait for paint acks if the corresponding window has already been closed. Closed windows are identified by (renderer process id, render view routing id). Identifying closed windows by either surface id or gpu channel stub routing id does not work, because they are both created on the GPU side and sent to the browser asynchronously, so it's possible that a browser tab is closed before the ID arrives from the GPU process – in that case, it can't send the "window closed" message even though the GPU process is already in a state where it needs this event. BUG=67170 TEST= 1.) Go to http://www.chromeexperiments.com/detail/body-browser/?f=webgl , click "Launch Experiment", wait until everything is loaded, close popup. %cpu of gpu process and renderer process should go to 0 2.) Go to http://www.chromeexperiments.com/detail/body-browser/?f=webgl , click "Launch Experiment", wait until the bar on the left is loaded but the body isn't yet, close popup. %cpu of gpu process and renderer process should go to 0, but it might take a few seconds until the %cpu in the renderer go down (the site decides to parse the XHR data that gets flushed on widget close) 3.) Go to http://www.chromeexperiments.com/detail/nine-point-five/?f=webgl , click "Launch Experiment", wait until everything is loaded, close popup. %cpu of gpu process and renderer process should go to 0 4.) Go to http://www.chromeexperiments.com/detail/nine-point-five/?f=webgl , click "Launch Experiment", close popup immediately after the background color changed to light grey. %cpu of gpu process and renderer process should go to 0 5.) Go to http://www.chromeexperiments.com/detail/nine-point-five/?f=webgl , click "Launch Experiment", close popup immediately. %cpu of gpu process and renderer process should go to 0 Review URL: http://codereview.chromium.org/6076005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70000 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed requesting of GL_EXT_texture_format_BGRA8888 andkbr@chromium.org2010-12-222-3/+6
| | | | | | | | | | | | | | GL_EXT_read_format_bgra on desktop systems where the underlying extension is GL_EXT_bgra. Fixed glDrawArrays to synthesize INVALID_VALUE instead of INVALID_ENUM when first < 0. Tested these changes with --enable-accelerated-2d-canvas. BUG=none TEST=none Review URL: http://codereview.chromium.org/6015006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69907 0039d316-1c4b-4281-b951-d872f2087c98
* Map the render process's glBindFramebuffer(0) to the context's backing FBO.klobag@chromium.org2010-12-211-0/+2
| | | | | | | | | The default for the context's backing FBO is 0. If the context does have an internal FBO, it can return it so that glBindFramebuffer(0) will not detach the texture from it. Review URL: http://codereview.chromium.org/5987004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69879 0039d316-1c4b-4281-b951-d872f2087c98
* Fix glCopyTexImage2D and glCopyTexSubImage2D to handlegman@chromium.org2010-12-213-3/+97
| | | | | | | | | | | offscreen source areas like glReadPixels does. TEST=webgl conformance tests pass BUG=none Review URL: http://codereview.chromium.org/6035003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69869 0039d316-1c4b-4281-b951-d872f2087c98
* Even more virtual method deinlining.erg@google.com2010-12-134-8/+28
| | | | | | | | | BUG=none TEST=compiles Review URL: http://codereview.chromium.org/5741001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69041 0039d316-1c4b-4281-b951-d872f2087c98
* Make shader and program object lifetimes match OpenGL ES spec.gman@chromium.org2010-12-139-96/+400
| | | | | | | | | TEST=unit tests BUG=65705 Review URL: http://codereview.chromium.org/5676003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69039 0039d316-1c4b-4281-b951-d872f2087c98
* Fix off by one error in glGetShaderiv for the sizegman@chromium.org2010-12-131-1/+1
| | | | | | | | | | | of the shader source. TEST=added webgl conformance test BUG=66494 Review URL: http://codereview.chromium.org/5719003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69024 0039d316-1c4b-4281-b951-d872f2087c98
* Exposed support for dynamically enabling extensions in command bufferkbr@google.com2010-12-0610-111/+207
| | | | | | | | | | | | | | | | | | implementation via new glGetRequestableExtensionsCHROMIUM and glRequestExtensionCHROMIUM entry points. These entry points are needed in order to allow WebGL to both query the available extensions and enable them individually. Added these entry points to WebGraphicsContext3DCommandBufferImpl. A subsequent WebKit checkin under https://bugs.webkit.org/show_bug.cgi?id=40316 will utilize them and implement the OES_texture_float extension for WebGL. BUG=none TEST=none (ran with new oes-texture-float.html WebGL conformance test) Review URL: http://codereview.chromium.org/5626008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68352 0039d316-1c4b-4281-b951-d872f2087c98
* Fix zero length string bug and NPOT buggman@chromium.org2010-12-034-15/+24
| | | | | | | | | TEST=none BUG=none Review URL: http://codereview.chromium.org/5568004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68224 0039d316-1c4b-4281-b951-d872f2087c98
* Check offset argument to gpu::gles2::BufferManager::BufferInfo::SetRange is ↵apatrick@chromium.org2010-12-022-2/+9
| | | | | | | | | | | | | not negative. Prevents writing to buffer out of range. TEST=try BUG=none Review URL: http://codereview.chromium.org/5525001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67937 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 67662 - FBTF: Remove unneeded headers from base/ (part 10)thestig@chromium.org2010-11-305-27/+26
| | | | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/5139006 TBR=thestig@chromium.org Review URL: http://codereview.chromium.org/5270010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67674 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Remove unneeded headers from base/ (part 10)thestig@chromium.org2010-11-305-26/+27
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/5139006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67662 0039d316-1c4b-4281-b951-d872f2087c98
* Add flow control between renderer and GPU processes, and, on Mac OS X,kbr@google.com2010-11-263-3/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | between GPU process and browser process. Thanks to Al Patrick for the renderer<->GPU flow control mechanism. This CL prevents the renderer from issuing more OpenGL work than the GPU process can execute, and, on the Mac, prevents the combination of the renderer and GPU processes from transmitting more frames via IOSurfaces from the GPU to the browser process than can be handled by the GPU. This fix causes the renderer to block inside ggl::SwapBuffers() when it gets too far ahead. Different strategies can be considered going forward, including measuring frame rates in the GPU and renderer processes and trying to match them via techniques such as delaying the execution of some timers. However, despite the general undesirability of blocking the render thread, this fix results in a significant performance improvement. With this fix integrated, a fill-limited test case from Chris Rogers displays at 60 FPS instead of 15 FPS on a Mac Pro. Gregg Tavares' aquarium from webglsamples.googlecode.com displays at 30 FPS instead of 4 or 5 FPS on a MacBook Pro. The frame rates measured at the JavaScript level now match the actual frame rate of the browser, where previously they were much higher since they were issuing more work than the browser could render. A few other minor OpenGL bugs potentially impacting the correctness of the Mac compositor are being fixed as well in this CL. Verified that WebGL, CSS 3D and YouTube (Core Animation plugin) content all work. BUG=63539 TEST=none Review URL: http://codereview.chromium.org/5317007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67470 0039d316-1c4b-4281-b951-d872f2087c98
* Resize synchronization for Linux.backer@chromium.org2010-11-255-2/+27
| | | | | | | | | | | | | | | | | | | | | | | This patch makes synchronous calls from the GPU to the Browser process to resize windows. It must be synchronous because we must be sure when the resize happens, it must be initiated by the GPU because we have to time the resize with GL drawing, and the resize must be done by the Browser because of how GDK/GTK is structured. Specifically, when a window that a GL context is associated with is resized, the back buffer gets blanked. So it is important that we synchronize the resize with the drawing to the back buffer. On Linux, the X window that we are drawing to is wrapped in a GdkWindow inside the Browser process. GDK/GTK assumes that all changes to the window happen via GDK calls. In particular, the size of the window is cached inside the GdkWindow object so that it does not have to make a call to the X server in order to get window geometry. Unfortunately, this necessitates resizing the window inside of the Browser process. For more discussion of this approach and (some unsuccessfully attempted) alternatives see https://docs.google.com/a/google.com/document/d/1ZNouL-X_Ml1x8sqy-sofz63pDAeo36VWi_yQihaE2YI/edit?hl=en This patch set uncovered another bug: - open in two separate windows http://webkit.org/blog/386/3d-transforms/ and http://webkit.org/blog-files/3d-transforms/poster-circle.html - resize the former until it is smallish - watch the root layer of the former show up as the root layer of the later. To my knowledge, this is first trigger of this bug. If and when this patch is accepted, I will file the bug. BUG=http://code.google.com/p/chromium/issues/detail?id=54430 TEST=Go to http://peter.sh/2010/06/chromium-now-features-gpu-acceleration-and-css-3d-transforms/ . Rotate Z with the slider to trigger the compositor. Resize the window. The resize may be janky (we're uploading large textures), but it should display properly. Contributed by backer@chromium.org Review URL: http://codereview.chromium.org/5105006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67416 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 67293 BrowserTestCanLaunchWithOSMesa was consistently failing - ↵andybons@chromium.org2010-11-243-14/+9
| | | | | | | | | | | | | | | | | Initialize destinations variables before calling GL functions because if the context is lost those variables will be uninitialized. TEST=ran chrome, conformance tests, unit tests and hand edited gles2_demo to test BUG=none Review URL: http://codereview.chromium.org/5305005 TBR=gman@chromium.org Review URL: http://codereview.chromium.org/5383001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67328 0039d316-1c4b-4281-b951-d872f2087c98
* Initialize destinations variables before calling GL functionsgman@chromium.org2010-11-243-9/+14
| | | | | | | | | | | | because if the context is lost those variables will be uninitialized. TEST=ran chrome, conformance tests, unit tests and hand edited gles2_demo to test BUG=none Review URL: http://codereview.chromium.org/5305005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67293 0039d316-1c4b-4281-b951-d872f2087c98
* Renames Chrome only GL extension functions to followgman@chromium.org2010-11-184-62/+69
| | | | | | | | | | | GL naming convention. TEST=none BUG=none Review URL: http://codereview.chromium.org/5210001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66695 0039d316-1c4b-4281-b951-d872f2087c98
* Adds support for GL_FIXED vertex attributes.gman@chromium.org2010-11-186-44/+245
| | | | | | | | | | | | | | | | | Similar to sharing VBOs for both index buffers and vertex buffers this support is off by default but is turned on in the OpenGL ES 2.0 conformance tests (another CL) We can decide how/if to expose it to Pepper later if we want to claim Pepper is Open GL ES 2.0 conformant. TEST=The GL_FIXED OpenGL ES 2.0 conformance tests passes BUG=none Review URL: http://codereview.chromium.org/5026003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66649 0039d316-1c4b-4281-b951-d872f2087c98
* Do an early return from GLES2DecoderImpl::Initialize if context group ↵senorblanco@chromium.org2010-11-171-0/+1
| | | | | | | | | | | | initialization fails. BUG=none TEST=run GPU process under valgrind on a machine w/no GPU Review URL: http://codereview.chromium.org/5181002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66489 0039d316-1c4b-4281-b951-d872f2087c98
* Added glResizeCHRM to resize the drawable associated with the command buffer.gman@chromium.org2010-11-165-2/+19
| | | | | | | | | | | | | | | | | This new command is used to pipe resize requests to the GPU process. It will allow is to synchronize the resize with the drawing. Specifically, if we resize at the wrong time, we will damage the backbuffer, causing visual artefacts (http://code.google.com/p/chromium/issues/detail?id=54430). The resize request gets sent to the GLContext. Each backend will implement it differently. At this point it's set as a NOP. -I will do an XResizeWindow on Linux. -Nat will do a resize on Windows. -Nico (or me?) will refactor the MacOSX code to use this path. There is one line webkit patch that's necessary to activate this code (removing an #ifdef). BUG=none TEST=none Review URL: http://codereview.chromium.org/4671003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66307 0039d316-1c4b-4281-b951-d872f2087c98
* Fix GL_OES_standard_derivatives support.gman@chromium.org2010-11-133-0/+7
| | | | | | | | | | | Forgot to add an enum TEST=another opengl es 2.0 conformance test passes BUG=none Review URL: http://codereview.chromium.org/4867001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66030 0039d316-1c4b-4281-b951-d872f2087c98
* Fix bool issues.gman@chromium.org2010-11-121-4/+4
| | | | | | | | | TEST=another opengl es 2.0 conformance test passes BUG=none Review URL: http://codereview.chromium.org/4862001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66007 0039d316-1c4b-4281-b951-d872f2087c98
* Add GL_CHROMIUM_resource_safe extension stringgman@chromium.org2010-11-123-24/+12
| | | | | | | | | | | | which means that the underlying OpenGL makes sure buffers, textures and renderbuffers are cleared. TEST=unit tests BUG=none Review URL: http://codereview.chromium.org/4844001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65883 0039d316-1c4b-4281-b951-d872f2087c98
* Use the shader translator to correct bad type informationgman@chromium.org2010-11-1212-50/+339
| | | | | | | | | | | returned by OpenGL drivers. TEST=unit tests, ran OpenGL ES 2.0 conformance tests and ran WebGL conformance test. Things that used to fail now pass. BUG=none Review URL: http://codereview.chromium.org/4829001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65882 0039d316-1c4b-4281-b951-d872f2087c98
* Handle GL errors when querying the multisample count.enne@chromium.org2010-11-111-1/+3
| | | | | | | | | | | | I believe this bug can only be triggered when there is a corresponding OpenGL bug. However, the i915 driver has this bug. Patch from Kenneth Waters <kwaters@chromium.org>. TEST=built and run against broken i915 driver BUG=none Review URL: http://codereview.chromium.org/4710002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65809 0039d316-1c4b-4281-b951-d872f2087c98
* * Check for GL_ANGLE_framebuffer_mutlisamplegman@chromium.org2010-11-099-12/+53
| | | | | | | | | | | | * Return correct values for GL_MAX_VIEWPORT_DIMS * connect blitFramebufferEXT to blitFramebufferANGLE TEST=unit tests BUG=55471,55560,56733 Review URL: http://codereview.chromium.org/4500001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65560 0039d316-1c4b-4281-b951-d872f2087c98
* Re-add setting of wrap and filtering mode parameters of backingkbr@chromium.org2010-11-091-0/+24
| | | | | | | | | | | | | | | | texture of command buffer offscreen contexts, and properly track these states in the TextureManager. Using code does not have the opportunity to set these parameters before it is determined that the backing framebuffer is incomplete. Ran WebGL content on Linux to verify fix. BUG=62432 TEST=none Review URL: http://codereview.chromium.org/4670002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65487 0039d316-1c4b-4281-b951-d872f2087c98
* Reland r65152 with mac and linux fix.apatrick@chromium.org2010-11-061-5/+0
| | | | | | | | | | | Original review URL: http://codereview.chromium.org/3531008 TEST=try, ui_tests BUG=none Review URL: http://codereview.chromium.org/4545003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65283 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 65152 - Integrated Pepper3D v2 with the accelerated compositor.apatrick@chromium.org2010-11-051-0/+5
| | | | | | | | | | | | | | | | | | | - It now uses GGL instead of a child window. - Fixed a bug where GLES2 decoder set texture state without updating TextureInfo. - Fixed Pepper3D demos and added awesome 3D CSS programmer art. - Removed ggl::GetCurrentContext to prevent further abuse. Fixed said abuse :) - GGL exposes GLES2Implementation to allow issue of GL calls on a particular context without making that context globally current. - Removed redundant "this context" argument from GGL SwapBuffers completion callback. - Temporarily removed context lost notification. I need to figure out the best semantics. TEST=Run Pepper3D and WebGL demos and YouTube videos on Windows and Mac. BUG=none Review URL: http://codereview.chromium.org/3531008 TBR=apatrick@chromium.org Review URL: http://codereview.chromium.org/4561001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65169 0039d316-1c4b-4281-b951-d872f2087c98
* Integrated Pepper3D v2 with the accelerated compositor.apatrick@chromium.org2010-11-051-5/+0
| | | | | | | | | | | | | | | | - It now uses GGL instead of a child window. - Fixed a bug where GLES2 decoder set texture state without updating TextureInfo. - Fixed Pepper3D demos and added awesome 3D CSS programmer art. - Removed ggl::GetCurrentContext to prevent further abuse. Fixed said abuse :) - GGL exposes GLES2Implementation to allow issue of GL calls on a particular context without making that context globally current. - Removed redundant "this context" argument from GGL SwapBuffers completion callback. - Temporarily removed context lost notification. I need to figure out the best semantics. TEST=Run Pepper3D and WebGL demos and YouTube videos on Windows and Mac. BUG=none Review URL: http://codereview.chromium.org/3531008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65152 0039d316-1c4b-4281-b951-d872f2087c98
* Fix a bug with count on commands that take a countgman@chromium.org2010-11-045-208/+66
| | | | | | | | | | | | | | | | | | | | | | | and add some more DCHECKs Some commands should never have a negative count since the count refers to how much memory to access. So, made those commands check for negative count on the client side and kill the GPU process if they are negative on the service side. Note: Someone (me?) checked in a version of build_gles2_cmd_buffer.py that generates a Finish handler that actually calls glFinish but didn't check in the generated code. Should I put that back to glFlush? TEST=ran unit tests and opengl es 2.0 conformance tests BUG=none Review URL: http://codereview.chromium.org/4461001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65063 0039d316-1c4b-4281-b951-d872f2087c98
* Advertise the GL_CHROMIUM_copy_texture_to_parent_texture andkbr@google.com2010-11-031-0/+4
| | | | | | | | | | | | | | | | | GL_CHROMIUM_map_sub extensions by default. These are needed in WebGraphicsContext3D instances in support of the accelerated 2D canvas and video rendering functionality. Associated WebKit bug is https://bugs.webkit.org/show_bug.cgi?id=46894 . Tested on Linux with this refactoring, accelerated 2D canvas, and HTML5 video. BUG=none TEST=none Review URL: http://codereview.chromium.org/4268004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64963 0039d316-1c4b-4281-b951-d872f2087c98
* Saved offscreen textures are allocated GL_RGB when no alpha channel is ↵apatrick@chromium.org2010-11-031-31/+67
| | | | | | | | | | | | | | | requested. There appears to also be problems in ANGLE which have not been addressed yet, specifically GL_RGB textures are allocated D3DFMT_A8R8G8B8 instead of D3DFMT_X8R8G8B8. Prevent saved and target offscreen resources from being destroyed if we don't have a context. TEST=try, run demos locally BUG=61441 Review URL: http://codereview.chromium.org/4246001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64940 0039d316-1c4b-4281-b951-d872f2087c98
* Let every "accelerated IO surface swapped" message have an identifier of the ↵thakis@chromium.org2010-10-282-0/+8
| | | | | | | | | | | | | | | surface. Currently, this is only used to DCHECK a currently implicit invariant, but I want to use this to let every surface container only remember its last painted-to surface, and not its last created surface. No behavior change. BUG=53165 TEST=none Review URL: http://codereview.chromium.org/4142004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64317 0039d316-1c4b-4281-b951-d872f2087c98
* Fix destruction order of ContextGroupgman@chromium.org2010-10-274-7/+11
| | | | | | | | | TEST=none BUG=60777 Review URL: http://codereview.chromium.org/4153003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64121 0039d316-1c4b-4281-b951-d872f2087c98
* Fix up SharedMemory implementation so that it is more equivalent on Windows ↵dmaclach@chromium.org2010-10-272-9/+7
| | | | | | | | | | | | | vs Posix and enforces exclusive creates. Clean up some naming to make it clearer what size you are getting by changing max_size to created_size. BUG=NONE TEST=BUILD Review URL: http://codereview.chromium.org/4034006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64097 0039d316-1c4b-4281-b951-d872f2087c98
* Disable scissor test during multisample resolve.enne@chromium.org2010-10-271-0/+4
| | | | | | | | | | | If the scissor is enabled during a blit, it throws a GL error. BUG=60379 TEST=open test in bug report, verify no crash Review URL: http://codereview.chromium.org/4202002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64081 0039d316-1c4b-4281-b951-d872f2087c98
* Fix antialiasing in WebGL.enne@chromium.org2010-10-251-1/+1
| | | | | | | | | | | Fix command buffer issue where feature_info was being checked for an extension rather than using HasExtension to check the underlying GL implementation. BUG=59988 TEST=shiny teapot WebGL demo Review URL: http://codereview.chromium.org/3985001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63765 0039d316-1c4b-4281-b951-d872f2087c98
* Changes WebGL to rely on the command buffergman@chromium.org2010-10-207-8/+52
| | | | | | | | | | | | | | for more validation. This change also means that the shader compiler is put into WebGL mode for WebGL. TEST=ran webgl conformance tests. BUG=none Review URL: http://codereview.chromium.org/3890004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63267 0039d316-1c4b-4281-b951-d872f2087c98
* Convert LOG(INFO) to VLOG(1) - gpu/.pkasting@chromium.org2010-10-202-23/+17
| | | | | | | | | | Also wraps a couple conditionals to comply with the style guide, removes some extra {}s, and simplifies some code. BUG=none TEST=none Review URL: http://codereview.chromium.org/3917001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63148 0039d316-1c4b-4281-b951-d872f2087c98
* Add Ability to pass in allowed extensions to GPU contexts.gman@chromium.org2010-10-1917-175/+228
| | | | | | | | | | | | | | | | | | | | Questions: 1) Is WebGraphicsContext3D only used for WebGL? Currently this patch makes that assumption. 2) I started by adding const char* allowed_extensions to a bunch of functions. Then, at the IPC level added GPUInitParams. Should I use GPUInitParams everywhere? 3) Is the path for gpu_init_params.h ok? TEST=unit tests, manually tested WebGL BUG=none Review URL: http://codereview.chromium.org/3775014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63026 0039d316-1c4b-4281-b951-d872f2087c98
* Move scoped_nsdisable_screen_update from base to app/macbrettw@chromium.org2010-10-182-6/+6
| | | | | | | | | | | Move scoped_aedesc from base to base/mac Use namespace and proper Google-style class naming. TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3828009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62904 0039d316-1c4b-4281-b951-d872f2087c98
* Move constructor and destructor of MockGLInterface out of line.thakis@chromium.org2010-10-1415-16/+24
| | | | | | | | | | | | | Speeds up building all of gpu by over one minute / over 10% on my machine (from 9:23 to 8:11). Move the mock to gpu/command_buffer/common to have a more obvious place for the cc file. BUG=None TEST=None Review URL: http://codereview.chromium.org/3811006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62649 0039d316-1c4b-4281-b951-d872f2087c98
* Use packed depth/stencil format if available.enne@chromium.org2010-10-141-2/+4
| | | | | | | | | | | WebGL context creation attributes are requests, not requirements. The command buffer needs to be more conservative in its format choices. As separate stencil buffers are not generally supported, pick packed buffers if possible. BUG=58966 TEST=https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/context-attributes-alpha-depth-stencil-antialias.html Review URL: http://codereview.chromium.org/3746001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62584 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Fix more ctor/dtors found by clang plugin.erg@google.com2010-10-1314-37/+79
| | | | | | | | | | | (1.2 megs off of Debug Linux .a files) BUG=none TEST=compiles everywhere Review URL: http://codereview.chromium.org/3743001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62420 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: Make sure the fbo is always bound while the swap callback runs if an ↵thakis@chromium.org2010-10-111-10/+20
| | | | | | | | | | | | | offscreen target is used. This didn't happen for non-multisampled offscreen targets that didn't have a parent. BUG=58557 TEST=None Review URL: http://codereview.chromium.org/3654002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62164 0039d316-1c4b-4281-b951-d872f2087c98
* Mac: Fix resizing of composited background tabs.thakis@chromium.org2010-10-081-0/+6
| | | | | | | | | BUG=54842 TEST=Have an composited tab be a background tab. Resize window larger. Switch to composited tab. It should have the new size. Review URL: http://codereview.chromium.org/3528019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62026 0039d316-1c4b-4281-b951-d872f2087c98
* gpu: Removed unused class declaration.thakis@chromium.org2010-10-081-13/+0
| | | | | | | | | BUG=None TEST=Compiles Review URL: http://codereview.chromium.org/3570019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61978 0039d316-1c4b-4281-b951-d872f2087c98
* Rolled ANGLE rev 441:443. Other changes to accomodate the new ANGLE API.alokp@chromium.org2010-10-064-16/+16
| | | | | | Review URL: http://codereview.chromium.org/3563006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61697 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed null dereference when GPU ContextGroup failed to initialize.apatrick@chromium.org2010-10-051-0/+1
| | | | | | | | | TEST=try BUG=55925 Review URL: http://codereview.chromium.org/3592006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61539 0039d316-1c4b-4281-b951-d872f2087c98