| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
chrome on Vista uses accelerated canvas even without accelerated compositing. So to force software, we need --disable-accelerated-2d-canvas.
Additionally, to avoid potential flakiness, moved the check from context creation success to actual swap buffers - that way if someone creates a context without drawing, it will not trigger.
BUG=103956
Review URL: http://codereview.chromium.org/8491056
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109727 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
These two extensions allow a partial swap: just pushing part of the backbuffer to the front buffer. This will allow the WK compositor to push a partial update to the screen instead of a full frame update (https://bugs.webkit.org/show_bug.cgi?id=70533).
We should be able to do something similar for TOUCHUI ImageTransportSurfaces (hence the hooks into GLSurface and the glPostSubBufferCHROMIUM command).
Review URL: http://codereview.chromium.org/8512005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109625 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is to make the command buffer more OpenGL ES 2.0 spec
compliant. Not that to work around bugs in drivers we
will likely have to change all or some resources to not actually
get deleted until the last reference is freed.
That can wait for another CL
TEST=unit tests and ran both ES and WebGL conformance tests
BUG=102412
R=apatrick@chromium.org
Review URL: http://codereview.chromium.org/8515023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109612 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The SharedIdHandler is the only id allocator that makes client ids
available to other contexts in the share group, so it's the only one
that needs a Flush() call on resource deletion. Additionally it only
needs a command buffer level flush to ensure execution order and not a
glFlush().
BUG=none
Review URL: http://codereview.chromium.org/8508043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109472 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
I plan to add some logic that will apply to all id handlers, so having
these in an array instead of 5 separate objects.
BUG=none
Review URL: http://codereview.chromium.org/8508034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109450 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
tracing feature
BUG=95714
Review URL: http://codereview.chromium.org/7982007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109368 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
GL_CHROMIUM_copy_texture_to_parent_texture and GL_CHROMIUM_latch.
Not sure how I missed these first time around...
Review URL: http://codereview.chromium.org/8481014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109164 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
since we have to include build_config.h anyways
BUG=
TEST=
Review URL: http://codereview.chromium.org/8342001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108940 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
We should probably make as small a number of assumptions about what ANGLE supports as possible.
BUG=100980
TEST=
Review URL: http://codereview.chromium.org/8419001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108777 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was making it impossible to pass the OpenGL ES 2.0 conformace tests
as they don't actually follow the spec 100%.
The shader translator already makes sure bad stuff doesn't happen
so this isn't needed.
TEST=ran opengl es 2.0 conformance tests
BUG=none
R=jbauman@chromium.org
Review URL: http://codereview.chromium.org/8480010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108771 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
I need it for http://codereview.chromium.org/8060045/
Also enabled the SwapBuffers callback on all platforms for he same reason.
Review URL: http://codereview.chromium.org/8430042
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108604 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/8438050
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108500 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Textures and Renderbuffers are now cleared at the
last possible moment. This allows them to be cleared
only when absolutely necessary.
TEST=unit tests
BUG=99554
Review URL: http://codereview.chromium.org/8341128
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108226 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
| |
This is because some implementations of eglGetProcAddress do not return null for entry points that are not available. This gives a convenient and efficient way of determining whether a particular entry point can be called.
Review URL: http://codereview.chromium.org/8416054
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108153 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note: This is a kind of temporary fix. The fill fix is tracked
in issue 102412
TEST=unit tests
BUG=none
R=alokp@chromium.org
Review URL: http://codereview.chromium.org/8387045
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@108070 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cleanup while I was doing this.
-got rid of SandboxInitWrapper, since I didn't see a need to expose given that we can just expose sandbox::SandboxInterfaceInfo
-got rid of the duplicated code to initialize the broker
-since I made MainFunctionParams only have the sandbox struct on Windows, I also made the mac specific auto release pool behind an ifdef as well. It seemed odd to make something so mac specific compile on all platforms to save some #ifdefs.
BUG=98716
Review URL: http://codereview.chromium.org/8414020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107863 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=101870
TEST=unit tests
Review URL: http://codereview.chromium.org/8404029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107631 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change splits the GL binding initialization into to phases: core
functions and extension functions. This is motivated by two
peculiarities of the EGL window binding layer:
1. Pointers to core GL entry points may not be queried through
eglGetProcAddress().
2. The return value of eglGetProcAddress() is not specified to be NULL
for unsupported functions.
In light of these limitations, the current strategy of blindly querying
all GL entry points from eglGetProcAddress() and falling back to dlsym()
results in bogus function pointers on some EGL implementations.
This patch fixes the problem as follows:
1. Add GetGLCoreProcAddress() that only queries dlsym() and use it to
initialize pointers to all entry points. On EGL based platforms
pointers to extension functions will most likely be NULL at this
point.
2. When a context is first made current, look up the set of supported
extensions and use GetGLProcAddress() to populate the remaining
extension function pointers.
The reworked GL bindings generator uses the standard Khronos headers to
recognize the extension functions and produce appropriate initialization
code.
Note that the patch also updates gl2ext.h to match the upstream Khronos
version and corrects some minor errors in the downstream changes.
BUG=5427391
TEST=
Review URL: http://codereview.chromium.org/8381001
Patch from Sami Kyostila <skyostil@chromium.org>.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107602 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will make it allocate less shared memory blocks resulting
in less file descriptors.
BUG=none
TEST=unit tests
Review URL: http://codereview.chromium.org/8340003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107544 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
up to a fence.
Other command buffers on the channel can still be processed but if any more calls are issued on the unscheduled command buffer, the entire channel is unscheduled. This prevents reordering of GL commands wrt flushes.
It'll be used by this:
http://codereview.chromium.org/8060045/
Review URL: http://codereview.chromium.org/8387008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107154 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
GL_CHROIMIUM_set_visibility extension.
Review URL: http://codereview.chromium.org/8373006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@107034 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is to help get the compositor free memory when appropritate
BUG=none
TEST=unit tests
R=vangelis@chromium.org
Review URL: http://codereview.chromium.org/8369010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106987 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=101105
TEST=GPU unit tests; manually ran WebGL conformance test textures/texture-mips.html on NVIDIA and AMD GPUs on Mac OS
Review URL: http://codereview.chromium.org/8363016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106747 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
bug on Mac OS X.
BUG=101105
TEST=manually ran WebGL conformance test textures/texture-mips.html on NVIDIA and AMD GPUs on Mac OS
Review URL: http://codereview.chromium.org/8365018
TBR=kbr@chromium.org
Review URL: http://codereview.chromium.org/8362019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106638 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=101105
TEST=manually ran WebGL conformance test textures/texture-mips.html on NVIDIA and AMD GPUs on Mac OS
Review URL: http://codereview.chromium.org/8365018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106634 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
Review URL: http://codereview.chromium.org/8360002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106524 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
TEST=unit tests
BUG=86815
Review URL: http://codereview.chromium.org/8342023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106388 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|