| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=69808
TEST=unit tests
R=apatrick@chromium.org
Review URL: http://codereview.chromium.org/8345003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106111 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
While hooking up with webkit side of this extension, I realized something is missing. So this CL is the fix.
BUG=95531
TEST=tested with the webkit side CL
Review URL: http://codereview.chromium.org/8294002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105969 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
There were a few places in the code that needed to check for NULL
TEST=unit tests
BUG=58468
Review URL: http://codereview.chromium.org/8320007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105920 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to avoid unused variable warnings in release build.
BUG=87490
TEST=None
Review URL: http://codereview.chromium.org/8271002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105432 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change Chrome to allocate most OpenGL contexts with the
kCGLPFAAllowOfflineRenderers flag, and specify
NSSupportsAutomaticGraphicsSwitching in the Info.plist for the main
executable and helper apps. This keeps Chrome on the integrated GPU
except when using WebGL, accelerated 2D Canvas, Pepper 3D, and Core
Animation-based plugins (except Flash).
Chrome shares resources between OpenGL contexts in order to display WebGL
and other content in the compositor, and resource sharing doesn't work
between contexts allocated on different GPUs. Therefore, when the first
context for a given renderer requests the discrete GPU, the channel is
dropped and all contexts are reallocated on the discrete GPU. Similarly,
when the last context requesting the discrete GPU for a given renderer is
shut down, all contexts are dropped and reallocated on the integrated GPU.
Currently dynamic GPU switching is only supported on the latest Mac OS X
10.7 update and MacBook Pros with dual AMD / Intel GPUs, though this will
improve in future OS updates.
Tested with WebGL, CSS 3D, Flash and Unity3D content and observed desired
GPU switching behavior. Also added a layout test to WebKit under
https://bugs.webkit.org/show_bug.cgi?id=69776 which when run in Chrome
catches an assertion failure related to the destruction of contexts. The
intent is to add it as a UI layout test on the GPU bots.
BUG=88788
TEST=none
Review URL: http://codereview.chromium.org/8233027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105399 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
The ANGLE side change is in r785, thus, roll ANGLE from r784 to r785.
BUG=none
TEST=tree green
Review URL: http://codereview.chromium.org/8252012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105329 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is to work around bug where cubemaps larger than 512x512
have errors on all Intel macs up to and including OSX 10.7.2
TEST=none
BUG=99424
Review URL: http://codereview.chromium.org/8227030
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105234 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
It is needed for the GL_GOOGLE_depth_texture extension.
BUG=99860
Review URL: http://codereview.chromium.org/8241020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105164 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
The counting of contexts in the group was out of sync, causing an assertion in release builds.
BUG=97775
Review URL: http://codereview.chromium.org/8205021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104791 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Before it relied on the destructor being invoked and this was not always true. I think the subsequent invalid GL commands might have caused memory corruption that lead to the bug referenced below.
Now the ContextGroup is destroyed explicitly when the context is known to be correct.
BUG=97775
Review URL: http://codereview.chromium.org/8135014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104157 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This works with ANGLE r780.
So if it's on top of ANGLE, query the translated HLSL using ANGLE's GetTranslatedShaderSource extension; otherwise, return the cached translated shader source from ANGLE shader translator.
BUG=95531
TEST=unittest
Review URL: http://codereview.chromium.org/8120020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104036 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
// TODO(apatrick): Attempt to diagnose crbug.com/97775. If SwapBuffers is
// never called on an offscreen context, no data will ever be uploaded to the
// saved offscreen color texture (it is deferred until to when SwapBuffers
// is called). My idea is that some nvidia drivers might have a bug where
// deleting a texture that has never has not been populated might cause a
// crash.
In the context of bug 97775, the uptime is very short. It is possible that SwapBuffers is never being called on the view context, which on mac is actually an offscreen context.
This is a bit a shot in the dark but I haven't reproduced it.
BUG=97775
Review URL: http://codereview.chromium.org/8089006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103746 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
context to obey WebGL feature semantics.
The 'force_webgl_glsl_validation' flag is used to override the FeatureInfo parameters of the context group.
This change enables all extensions for WebGL contexts, in preparation for allowing resource sharing with the compositor.
BUG=96605
TEST=https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/webgl-conformance-tests.html
Review URL: http://codereview.chromium.org/7782038
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103724 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a GL_CHROMIUM_stream_texture extension with an abstract interface
that can be used to allow a consumer to render from a stream of textures being produced externally.
It adds the following functionality:
* GLuint glCreateStreamTextureCHROMIUM(GLuint texture)
This API takes a texture id and creates a StreamTexture object associated with the texture in the GPU process that can be implemented in a platform-specific way.
The returned handle is supposed to identify the stream endpoint. Connecting this to a producer is outside the scope of this change.
* GLvoid glDestroyStreamTextureCHROMIUM(GLuint texture)
Deletes the StreamTexture object associated with the texture and marks the texture as not special anymore.
* BindTexture() will invoke method StreamTexture::Update() if the target is GL_TEXTURE_EXTERNAL_OES and the texture is marked as 'stream texture'.
TEST=added unit tests
Review URL: http://codereview.chromium.org/7754033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103191 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
checking.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/7889040
TBR=dominich@chromium.org
Review URL: http://codereview.chromium.org/8052015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102985 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/7889040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102978 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The bug was
1) Create a texture with N mips (4x4, 2x2, 1x1)
2) Then update the texture to use less than N mips (2x2, 1x1) etc.
The code would incorrectly look at the unused mips in determining
whether or not the texture was renderable.
TEST=unit test
BUG=97207
R=zmo@chromium.org
Review URL: http://codereview.chromium.org/8041048
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102967 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/7977031
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102366 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=none
TEST=bots green
Review URL: http://codereview.chromium.org/7979031
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102213 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
OES extensions that are supported.
TEST=none
BUG=none
Review URL: http://codereview.chromium.org/7980034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102135 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
At the moment we need to turn it on for ATI/Mac and also Windows/D3D.
Also, added the switch to turn of driver bug workaround, although this CL doesn't hook it up with all workarounds yet.
BUG=96293
TEST=failing webgl glsl feature tests passing, with the switch, these tests fail.
Review URL: http://codereview.chromium.org/7923002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101880 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GpuScheduler and into GpuCommandBufferStub.
Reason for revert: Compile failure on Arm.
This was mostly a refactor because the code was awkward.
I also deleted the original gles2_demo since we have the gles2 book demos now.
THings still to do are a common way of setting up the few objects involved in initializing a command buffer that is now more-or-less duplicated in the gles2 conformance tests, the gles2 demos, the command buffer stub and the in-process webgl context. I also want to completely remove the reference to the decoder from the scheduler.
I tested WebGL on both windows and mac and saw no regressions. I checked the conformance tests, the gpu tests and am running by the try bots now. The gles2 demos still work.
Review URL: http://codereview.chromium.org/7782041
Review URL: http://codereview.chromium.org/7951008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101873 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GpuScheduler and into GpuCommandBufferStub.
Reason for revert: Compile failure on Arm.
This was mostly a refactor because the code was awkward.
I also deleted the original gles2_demo since we have the gles2 book demos now.
THings still to do are a common way of setting up the few objects involved in initializing a command buffer that is now more-or-less duplicated in the gles2 conformance tests, the gles2 demos, the command buffer stub and the in-process webgl context. I also want to completely remove the reference to the decoder from the scheduler.
I tested WebGL on both windows and mac and saw no regressions. I checked the conformance tests, the gpu tests and am running by the try bots now. The gles2 demos still work.
Review URL: http://codereview.chromium.org/7782041
TBR=apatrick@chromium.org
Review URL: http://codereview.chromium.org/7920015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101547 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GpuCommandBufferStub.
This was mostly a refactor because the code was awkward.
I also deleted the original gles2_demo since we have the gles2 book demos now.
THings still to do are a common way of setting up the few objects involved in initializing a command buffer that is now more-or-less duplicated in the gles2 conformance tests, the gles2 demos, the command buffer stub and the in-process webgl context. I also want to completely remove the reference to the decoder from the scheduler.
I tested WebGL on both windows and mac and saw no regressions. I checked the conformance tests, the gpu tests and am running by the try bots now. The gles2 demos still work.
Review URL: http://codereview.chromium.org/7782041
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101545 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/7888051
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@101308 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
by issuing too many SwapBuffers.
This might have regressed with r84372. It caused there to be one additional token queued in the swap buffers token queue than before.
Review URL: http://codereview.chromium.org/7876010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100978 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
consistency.
I also created a new 2-arg constructor since the share_context will normally
be empty, and it's less clear what to use there if you don't have a shared
context.
I copied comments from the C interface to the C++ one, and converted the
comments in the C header file to C-style comments from C++ ones. The
documentation still needs some Doxygen love, but we can worry about that
later.
Review URL: http://codereview.chromium.org/7867048
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100865 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
by issuing too many SwapBuffers.
This might have regressed with r84372. It caused there to be one additional token queued in the swap buffers token queue than before.
BUG=95649
Review URL: http://codereview.chromium.org/7867053
TBR=apatrick@chromium.org
Review URL: http://codereview.chromium.org/7880009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100803 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
many SwapBuffers.
This might have regressed with r84372. It caused there to be one additional token queued in the swap buffers token queue than before.
BUG=95649
Review URL: http://codereview.chromium.org/7867053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100801 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ScopedMakeCurrent to make it easier to briefly make another context
current. Use it in AcceleratedSurface implementation and verify in the
caller that it is working.
This infrastructure would have made it possible to catch
http://crbug.com/95492 and similar bugs where the wrong context was
current.
BUG=95962
TEST=ran CSS 3D example poster-circle; no assertion failures
Review URL: http://codereview.chromium.org/7787022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100528 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
TEST=none
BUG=95625
TBR=apatrick@chromium.org
Review URL: http://codereview.chromium.org/7796016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100507 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SimulateAttrib0.""
The bug was a unsigned->signed conversion issue. Clang truncates, gcc/vc overflow
TEST=unit tests
BUG=95625
TBR=apatrick@chromium.org
Review URL: http://codereview.chromium.org/7863007
TBR=gman@chromium.org
Review URL: http://codereview.chromium.org/7796015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100498 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
The bug was a unsigned->signed conversion issue. Clang truncates, gcc/vc overflow
TEST=unit tests
BUG=95625
TBR=apatrick@chromium.org
Review URL: http://codereview.chromium.org/7863007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100494 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
not check for out of memory."
TEST=unit tests and run on linux touch (where bug was)
BUG=95625
TBR=apatrick@chromium.org
Review URL: http://codereview.chromium.org/7841067
TBR=gman@chromium.org
Review URL: http://codereview.chromium.org/7866006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100473 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
out of memory."
TEST=unit tests and run on linux touch (where bug was)
BUG=95625
TBR=apatrick@chromium.org
Review URL: http://codereview.chromium.org/7841067
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100453 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It also did not correctly check for math overflow. Also fixed
similar bugs in SimulateFixedAttribs
TEST=unit tests
BUG=95625
R=apatrick@chromium.org
Review URL: http://codereview.chromium.org/7845017
TBR=gman@chromium.org
Review URL: http://codereview.chromium.org/7857037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100411 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It also did not correctly check for math overflow. Also fixed
similar bugs in SimulateFixedAttribs
TEST=unit tests
BUG=95625
R=apatrick@chromium.org
Review URL: http://codereview.chromium.org/7845017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100384 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=95492
TEST=crash reports do not reappear in canary
Review URL: http://codereview.chromium.org/7847016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100350 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a regression introduced by http://codereview.chromium.org/7795015
BUG=95611
TEST=viewport-unchanged-upon-resize.html, read-pixels-test.html
Review URL: http://codereview.chromium.org/7841047
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100277 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
TEST=unit tests
BUG=95115
R=apatrick@chromium.org
Review URL: http://codereview.chromium.org/7789021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100116 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use clock() instead of time() to determine how much time has passed, as that likely has a higher resolution. Also add back in the old flush logic, as a backup in case clock() doesn't have a high-enough resolution to cause it to flush before the entire command buffer is used up.
BUG=
TEST=
Review URL: http://codereview.chromium.org/7789023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100057 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=95492
TEST=launch chrome to http://www.webkit.org/blog-files/3d-transforms/poster-circle.html
Review URL: http://codereview.chromium.org/7839037
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99978 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
previous CL: http://codereview.chromium.org/7737013/
BUG= http://code.google.com/p/chromium/issues/detail?id=94320
TEST= try bots, manual testing
Review URL: http://codereview.chromium.org/7837018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99968 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
BUG= http://code.google.com/p/chromium/issues/detail?id=94320
TEST= various nacl exmaples, try bots
Review URL: http://codereview.chromium.org/7737013
TBR=nfullagar@google.com
Review URL: http://codereview.chromium.org/7782020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99861 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG= http://code.google.com/p/chromium/issues/detail?id=94320
TEST= various nacl exmaples, try bots
Review URL: http://codereview.chromium.org/7737013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99855 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
This bug was found by AddressSanitizer
TBR=gman
Review URL: http://codereview.chromium.org/7828094
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99704 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
intended to share canvas "back buffers" between the GPU process and the browser process. The plan is to issue all the GL calls in the GPU process now, with the browser process just doing the final present. Removing the redundant code.
Review URL: http://codereview.chromium.org/7701021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99424 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GPU can't rely on base because of nacl so it has its own logger. The logger
includes <iostream> in the header, so most gles2 and command buffer files have
std::__ioinit static initializers. Create a common logging.cc which has a
simple method that just returns std::cerr so all the __ioinits collapse down to
one.
BUG=94794
TEST=compiles
R=apatrick
TBR=noelallen
Review URL: http://codereview.chromium.org/7821004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99229 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previous code was resizing, and clearing the front buffer as soon as the back
buffer was resized. It can lead to race conditions where the compositor draws a
black texture if it triggers between the resize and the swap.
BUG=None
TEST=Pepper Flash
Review URL: http://codereview.chromium.org/7795015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98905 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This tool simulates the GPU demands of Chromium's GPU-accelerated compositor. In
the current version, we simulate the performance of the existing forward
rendering model; coming changes will prototype a new model.
BUG=None
TEST=self
This is http://codereview.chromium.org/7718020/ with trivial fixes
Original change by Joshua Trask <joshtrask@google.com>
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=98706
Review URL: http://codereview.chromium.org/7792002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98900 0039d316-1c4b-4281-b951-d872f2087c98
|