zmo@chromium.org [Tue, 21 May 2013 23:42:57 +0000 (23:42 +0000)]
Revert 201380 "Move GPU device/driver info related code from con..."
> Move GPU device/driver info related code from content to gpu.
>
> This has been suggested by gman, and agreed by kbr and jam, for the following reasons:
>
> 1) These are gpu related code, and are independent of content / browser, so putting them under gpu/ is the right thing to do conceptually.
>
> 2) This enables us to set up tests in various places with the correct blacklisting/driver_bug_workarounds information. Otherwise, for the moment, gpu/ has no visibility into content/ side, so we have to duplicate the driver_bug_workarounds code and hardwire them for testing purpose. This is going to cause a lot of bugs in the future, as we have the two pieces of code for the same thing (one for chrome and one for testing) and people will easily forget to update one or the other.
>
> As for this patch, I didn't change the logic, and try to minimize the refactoring. All improvements enabled by this relocation will be done in follow-up CLs.
>
> BUG=230477
> TEST=tree
> TBR=gman@chromium.org, joi@chromium.org, kbr@chromium.org, piman@chromium.org
>
> Review URL: https://codereview.chromium.org/
15385003
TBR=zmo@chromium.org
Review URL: https://codereview.chromium.org/
15619004
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@201386
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
kaanb@chromium.org [Tue, 21 May 2013 23:03:51 +0000 (23:03 +0000)]
Make GpuMemoryBufferFactory a function pointer rather than a callback.
BUG=175012
Review URL: https://chromiumcodereview.appspot.com/
15374002
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@201383
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
zmo@chromium.org [Tue, 21 May 2013 22:59:42 +0000 (22:59 +0000)]
Move GPU device/driver info related code from content to gpu.
This has been suggested by gman, and agreed by kbr and jam, for the following reasons:
1) These are gpu related code, and are independent of content / browser, so putting them under gpu/ is the right thing to do conceptually.
2) This enables us to set up tests in various places with the correct blacklisting/driver_bug_workarounds information. Otherwise, for the moment, gpu/ has no visibility into content/ side, so we have to duplicate the driver_bug_workarounds code and hardwire them for testing purpose. This is going to cause a lot of bugs in the future, as we have the two pieces of code for the same thing (one for chrome and one for testing) and people will easily forget to update one or the other.
As for this patch, I didn't change the logic, and try to minimize the refactoring. All improvements enabled by this relocation will be done in follow-up CLs.
BUG=230477
TEST=tree
TBR=gman@chromium.org, joi@chromium.org, kbr@chromium.org, piman@chromium.org
Review URL: https://codereview.chromium.org/
15385003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@201380
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
backer@chromium.org [Tue, 21 May 2013 21:16:22 +0000 (21:16 +0000)]
GPU: Use share groups for cross thread async texture upload.
This is very similar to the existing AsyncPixelTransferDelegateEGL implementation.
It currently uses glFlushes to synchronize GL streams between threads (it works on
the platforms tested).
There is a change to the GPU sandbox to allow calling setpriority. This allows us
to drop the priority of the upload thread.
Behind the flag --enable-share-group-async-texture-upload
BUG=196245
Review URL: https://chromiumcodereview.appspot.com/
14516006
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@201358
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
gman@chromium.org [Tue, 21 May 2013 11:35:44 +0000 (11:35 +0000)]
Roll ANGLE to r2243
TBR=apatrick@chromium.org
BUG=238839,238837
Review URL: https://chromiumcodereview.appspot.com/
15489007
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@201290
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
gman@chromium.org [Tue, 21 May 2013 08:57:16 +0000 (08:57 +0000)]
Make unrenderable check not consider never bound textures.
the command buffer has to check for unrenderable textures
but a texture who's target is 0 by definition is not being
used so don't consider target=0 textures when counting
unrenderable textures.
BUG=242321
Review URL: https://chromiumcodereview.appspot.com/
15505005
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@201271
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
brianderson@chromium.org [Tue, 21 May 2013 05:08:39 +0000 (05:08 +0000)]
gpu: Fix range[2] initializion lists
BUG=none
Review URL: https://chromiumcodereview.appspot.com/
13050003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@201225
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
akalin@chromium.org [Sat, 18 May 2013 09:30:23 +0000 (09:30 +0000)]
Make gles2_conform_support depend on allocator.gyp:allocator when necessary
This fixes the heapchecker+components release build.
BUG=241938
Review URL: https://chromiumcodereview.appspot.com/
15378003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@200986
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
piman@chromium.org [Sat, 18 May 2013 09:19:49 +0000 (09:19 +0000)]
gpu: Refactor to support cross-channel shared textures
This CL doesn't change command semantics, but is refactoring the management of
textures on the service side.
Accounting for texture gets separated into the Texture class which wraps the
service id and the meta-data, vs the TextureRef class which is a reference to
that service id in a given context group (generally corresponding to the client
id). A Texture can now have multiple TextureRef referencing it (though in this
CL no code does yet).
TextureRef keeps the refcount, whereas the Texture is explicitly managed
(jointly owned by all the TextureRef).
The main functional change is that texture-related, per-TextureManager
meta-data, such as "Is there any texture that hasn't been cleared", "Is there
any non-renderable texture", or memory accounting is pushed from the Texture to
all the owning TextureManagers (since changes from one can affect other ones).
BUG=230137
TEST=gpu_unittests, gles2_conform_test, webgl conformance tests
Review URL: https://chromiumcodereview.appspot.com/
14844004
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@200981
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
gman@chromium.org [Fri, 17 May 2013 19:51:09 +0000 (19:51 +0000)]
Make shader translator options effect cache key
BUG=240898
Review URL: https://chromiumcodereview.appspot.com/
15038009
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@200870
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
gman@chromium.org [Fri, 17 May 2013 03:53:42 +0000 (03:53 +0000)]
Mark zero dimension textures as unrenderable
BUG=240961
Review URL: https://chromiumcodereview.appspot.com/
14828011
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@200717
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
kaanb@chromium.org [Thu, 16 May 2013 10:46:01 +0000 (10:46 +0000)]
GPU client side changes for GpuMemoryBuffers:
- Introduces a new GL extension CHROMIUM_map_image that contains Create/Destroy/Map/Unmap/GetImageParameteriv methods.
- A new data structure called GpuMemoryBufferTracker to track these buffers and images on the client side.
BUG=175012
Review URL: https://chromiumcodereview.appspot.com/
14456004
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@200505
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
apatrick@chromium.org [Thu, 16 May 2013 01:41:41 +0000 (01:41 +0000)]
Disable release assertion in ProgramManager.
This is preventing us from rolling ANGLE because it can lead to a crash when certain shaders become invalidated. A proper fix is underway. See referenced bug.
BUG=240898
Review URL: https://chromiumcodereview.appspot.com/
15000004
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@200410
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
apatrick@chromium.org [Wed, 15 May 2013 22:37:13 +0000 (22:37 +0000)]
Fix null pointer dereference in GLES2DecoderImpl::UpdateParentTextureInfo.
BUG=241170
Review URL: https://chromiumcodereview.appspot.com/
14996005
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@200374
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
apatrick@chromium.org [Wed, 15 May 2013 00:40:56 +0000 (00:40 +0000)]
Lose context if SwapBuffers fails.
I think this might have worked at some point but now returning kLostContext from HandleSwapBuffers is not enough so call LoseContext if SwapBuffers fails.
BUG=240434
Review URL: https://chromiumcodereview.appspot.com/
14649023
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@200123
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
hkuang@chromium.org [Tue, 14 May 2013 23:32:56 +0000 (23:32 +0000)]
Add getSize for StreamTexture.
BUG=225781
TEST=visited the following site:
http://html5doctor.com/demos/video-canvas-magic/demo1.html
Visit http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_canvas_drawimage_video.
Canvas painting still works.
Review URL: https://chromiumcodereview.appspot.com/
14787012
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@200105
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
brianderson@chromium.org [Tue, 14 May 2013 00:23:51 +0000 (00:23 +0000)]
gpu: Smarter caching of results for glGetShaderPrecisionFormat
This improves initialization time by using a single
synchronization point to pre-cache results for glGetIntegerv
and glGetShaderPrecisionFormat.
BUG=237677
Review URL: https://chromiumcodereview.appspot.com/
14870003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199868
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
brianderson@chromium.org [Mon, 13 May 2013 18:51:48 +0000 (18:51 +0000)]
gpu: Use GetMultipleIntegervCHROMIUM to speed initialization
This loads GL_ALPHA_BITS, GL_DEPTH_BITS, GL_STENCIL_BITS,
and GL_SAMPLE_BUFFERS with GetMultipleIntegervCHROMIUM
so they do not need individual synchronous calls.
BUG=238386
Review URL: https://chromiumcodereview.appspot.com/
15015003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199789
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
rjkroege@chromium.org [Mon, 13 May 2013 18:24:39 +0000 (18:24 +0000)]
Rationalize dependency on khronos EGL headers in place of angle.
Different parts of Chrome use the angle EGL headers and khronos
EGL headers. This patch adjusts so that Chrome uses only one: khronos.
BUG=none, code cleanup
Review URL: https://chromiumcodereview.appspot.com/
14772009
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199773
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
backer@chromium.org [Fri, 10 May 2013 23:45:38 +0000 (23:45 +0000)]
Reland 199454: "Move WrappedTexImage functionality to ui/gl"
Move WrappedTexImage functionality to ui/gl
BUG=235031
Review URL: https://chromiumcodereview.appspot.com/
14983005
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199573
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
backer@chromium.org [Fri, 10 May 2013 23:44:48 +0000 (23:44 +0000)]
GPU: AsyncPixelTransferDelegate --- factor out duplicate code.
No functional change.
Review URL: https://chromiumcodereview.appspot.com/
14783010
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199571
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
backer@chromium.org [Fri, 10 May 2013 21:25:55 +0000 (21:25 +0000)]
GPU: Prefer to restore from decoder state rather than GL state when possible.
Some drivers are buggy. Wherever possible, use the decoder state restoration
for the Scoped{Texture,Framebuffer}Binders.
BUG=239509
Review URL: https://chromiumcodereview.appspot.com/
15021011
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199542
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
teravest@chromium.org [Fri, 10 May 2013 18:30:38 +0000 (18:30 +0000)]
GPU: Set id to -1 on failure creating transfer buffer.
Some code depends on id being set to -1 when CreateTransferBuffer() fails. I
believe this is related to some reported crashes, though I can't reproduce the
crashes to confirm. Regardless, this is more correct than the behavior today.
BUG=172338
Review URL: https://chromiumcodereview.appspot.com/
14779013
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199509
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
backer@chromium.org [Fri, 10 May 2013 17:13:41 +0000 (17:13 +0000)]
Revert 199454 "Move WrappedTexImage functionality to ui/gl"
> Move WrappedTexImage functionality to ui/gl
>
> BUG=235031
>
> Review URL: https://chromiumcodereview.appspot.com/
14557009
BUG=239827
TBR=gman@chromium.org
Review URL: https://codereview.chromium.org/
14783012
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199497
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
gman@chromium.org [Fri, 10 May 2013 12:45:36 +0000 (12:45 +0000)]
Move WrappedTexImage functionality to ui/gl
BUG=235031
Review URL: https://chromiumcodereview.appspot.com/
14557009
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199454
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
gman@chromium.org [Fri, 10 May 2013 08:04:00 +0000 (08:04 +0000)]
Fix Pepper texture wrapping issue
BUG=238885
Review URL: https://chromiumcodereview.appspot.com/
14858029
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199425
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
apatrick@chromium.org [Fri, 10 May 2013 07:54:26 +0000 (07:54 +0000)]
Fix null dereference in GLES2Implementation::IsExtensionAvailable.
glGetString (and GLES2Implementation::GetStringHelper) can return null on error, for example context lost. This makes IsExtensionAvailable always return false if there is an error.
BUG=239572
Review URL: https://chromiumcodereview.appspot.com/
14813022
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199423
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
backer@chromium.org [Thu, 9 May 2013 23:12:03 +0000 (23:12 +0000)]
GPU: Move some GPU process specific code from ui/gl to gpu/command_buffer/service
No functional change.
ui/gl/async_pixel_transfer_delegate* ---> gpu/command_buffer/service
ui/gl/safe_shared_memory_pool* --> gpu/command_buffer/service
BUG=235229
TEST=bots stay green
Review URL: https://chromiumcodereview.appspot.com/
14864015
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199297
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
skyostil@chromium.org [Thu, 9 May 2013 19:25:39 +0000 (19:25 +0000)]
gpu: Make sure external texture destination is initialized
When copying a texture from the GL_TEXTURE_EXTERNAL_OES target
(typically a video frame), we expect that the target size also defines
the source frame size. Add a check to make sure the target texture is
initialized when we do this.
BUG=225781,239276
Review URL: https://chromiumcodereview.appspot.com/
14858022
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199256
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
bulach@chromium.org [Thu, 9 May 2013 12:28:12 +0000 (12:28 +0000)]
Revert r198983, "gpu: Remove redundant MakeCurrent in GLContextVirtual::MakeCurrent"
Original: https://chromiumcodereview.appspot.com/
14611013
Previously I misunderstood why we check if the decoder_ exists.
Only if it exists can we restore the state. If the decoder
doesn't exist and the context is already current,
we can just do nothing.
BUG=179250, 229643, 230896, 239403
TBR=epenner@chromium.org, sievers@chromium.org, gman@chromium.org
NOTRY=True
Review URL: https://chromiumcodereview.appspot.com/
14752011
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199188
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
lpique@chromium.org [Thu, 9 May 2013 05:40:47 +0000 (05:40 +0000)]
Fix maximum value index caching
If a GL_ELEMENT_ARRAY_BUFFER is reloaded with new data such that the
size does not change, the maximum value index cache is not properly
invalidated, leading to subsequent errors validating the size of
attribute arrays.
A one line fix, with additional unit test coverage.
TEST=Unit Test
BUG=237874
Review URL: https://chromiumcodereview.appspot.com/
14932002
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199131
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
backer@chromium.org [Thu, 9 May 2013 05:30:29 +0000 (05:30 +0000)]
GPU: Rely on GL state rather than decoder state for state restoration.
This is API clean-up. Tested by hand on N10 and GN and saw no performance hit relying on GL state.
BUG=196303
Review URL: https://chromiumcodereview.appspot.com/
14753012
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199124
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
apatrick@chromium.org [Thu, 9 May 2013 03:50:03 +0000 (03:50 +0000)]
Only exit GPU process on context lost if explicitly requested via command line.
Previously the GPU process would exit on context lost if either there was no --gpu-driver-workarounds command line switch or the switch was present and the workaround was specifically requested. Now exit on context lost does not happen unless the switch is present and the workaround is requested.
This is a more appropriate default for unit tests since exiting a unit test process prevents subsequent tests from running and does not cause the test that caused the exit to report a failure.
Review URL: https://chromiumcodereview.appspot.com/
14663008
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199097
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
zmo@chromium.org [Wed, 8 May 2013 22:56:20 +0000 (22:56 +0000)]
Makes sure driver_bug_workarounds takes effect in Android.
Right now the hardwired workarounds are still in place, but will be removed soon.
With this CL, the workarounds should be obtained from the json file, and this should overwrite the hardwired settings.
A few things in this CL:
1) Generally the browser process decides which workarounds are needed, and pass down to command buffer through a commandline switch in GPU process launch. However, in Android, we don't have a GPU process, so we append the switch immediately after we compute it in browser startup, and later pick up by command buffer because gpu thread and browser main thread are in the same process, therefore the same commandline.
2) add gl_extensions as a blacklist feature because this is the only reliable way to identify Vivante devices.
BUG=227162
TEST=android devices that need workaround get them, for example, hisilicon device
R=epenner,kbr
Review URL: https://chromiumcodereview.appspot.com/
14762004
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@199034
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
epenner@chromium.org [Wed, 8 May 2013 20:33:57 +0000 (20:33 +0000)]
gpu: Remove redundant MakeCurrent in GLContextVirtual::MakeCurrent
Previously I misunderstood why we check if the decoder_ exists.
Only if it exists can we restore the state. If the decoder
doesn't exist and the context is already current,
we can just do nothing.
BUG=179250, 229643, 230896
Review URL: https://chromiumcodereview.appspot.com/
14611013
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198983
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dbeam@chromium.org [Wed, 8 May 2013 05:46:20 +0000 (05:46 +0000)]
Revert 198820 "Move FileEnumerator to its own file, do some refa..."
Broke both windows clobber and official builders' compile with this error:
771>Link:
771> Creating library ..\..\..\build\Release\lib\gcp_portmon64.lib and
object ..\..\..\build\Release\lib\gcp_portmon64.exp
771>base.lib(path_service.obj) : fatalerror LNK1112: module machine type 'X86'
conflicts with target machine type 'x64'
771>
771>Build FAILED.
> Move FileEnumerator to its own file, do some refactoring.
>
> It creates a class FileInfo to contain the details rather than using a platform-specific typedef. This allows the accessors GetName, GetSize, etc. to be moved directly to this class (previously they were static helpers on the FileEnumerator class) which makes a bunch of code much cleaner. It also gives reasonable getting and initialization which the previous version lacked.
>
> BUG=175002
> R=rvargas@chromium.org
>
> Review URL: https://codereview.chromium.org/
13165005
TBR=brettw@chromium.org
Review URL: https://codereview.chromium.org/
14824006
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198850
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
brettw@chromium.org [Tue, 7 May 2013 22:51:31 +0000 (22:51 +0000)]
Move FileEnumerator to its own file, do some refactoring.
It creates a class FileInfo to contain the details rather than using a platform-specific typedef. This allows the accessors GetName, GetSize, etc. to be moved directly to this class (previously they were static helpers on the FileEnumerator class) which makes a bunch of code much cleaner. It also gives reasonable getting and initialization which the previous version lacked.
BUG=175002
R=rvargas@chromium.org
Review URL: https://codereview.chromium.org/
13165005
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198820
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
ccameron@chromium.org [Tue, 7 May 2013 18:34:45 +0000 (18:34 +0000)]
Fix blue flashes on Mac
Set the GL framebuffer before clearing it in GLES2DecoderImpl
initialization. Otherwise, other tabs' IOSurfaces will be cleared
by this call, and the desired target for the clear won't be cleared.
BUG=238069
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/
15009005
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198769
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
caseq@google.com [Tue, 7 May 2013 14:09:20 +0000 (14:09 +0000)]
Revert "Revert "Revert 198403 "Move WrappedTexImage functionality to ui/gl"""
This broke accelerated compositing on Mac, effectively making default
configuration unusable for all sites.
TBR=gman
BUG=238581
Review URL: https://codereview.chromium.org/
14580015
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198718
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
gman@chromium.org [Tue, 7 May 2013 02:23:26 +0000 (02:23 +0000)]
Revert "Revert 198403 "Move WrappedTexImage functionality to ui/gl""
This reverts commit
774a135353b9b6eadaf6d074c135c3a433de3eee.
BUG=235031
TBR=piman@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
14872010
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198596
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
nkostylev@chromium.org [Mon, 6 May 2013 10:35:37 +0000 (10:35 +0000)]
Revert 198403 "Move WrappedTexImage functionality to ui/gl"
Does not compile on Chrome OS:
http://build.chromium.org/p/chromium.chromiumos/buildstatus?builder=ChromiumOS%20%28daisy%29&number=9281
http://build.chromium.org/p/chromium.chromiumos/buildstatus?builder=ChromiumOS%20%28amd64%29&number=8203
http://build.chromium.org/p/chromium.chromiumos/buildstatus?builder=ChromiumOS%20%28x86%29&number=13613
> Move WrappedTexImage functionality to ui/gl
>
> This way it works everywhere
>
> BUG=235031
>
> Review URL: https://chromiumcodereview.appspot.com/
14902003
TBR=gman@chromium.org
Review URL: https://codereview.chromium.org/
14670010
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198417
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
jun.a.jiang@intel.com [Mon, 6 May 2013 08:08:31 +0000 (08:08 +0000)]
Fix the texture binding state broken issue for CopyTextureCHROMIUM().
BUG=235363
Review URL: https://chromiumcodereview.appspot.com/
14820006
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198411
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
gman@chromium.org [Mon, 6 May 2013 07:48:26 +0000 (07:48 +0000)]
Move WrappedTexImage functionality to ui/gl
This way it works everywhere
BUG=235031
Review URL: https://chromiumcodereview.appspot.com/
14902003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198403
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
reveman@chromium.org [Sat, 4 May 2013 00:48:50 +0000 (00:48 +0000)]
cc: Fix pixel buffer handling in lost context situations.
GLES2Implementation::MapBufferCHROMIUM should be allowed to
return NULL if context was lost at the time BufferData was
called. BufferTracker::CreateBuffer should never fail to
return a buffer.
This also adds proper handling of NULL return value from
MapBufferCHROMIUM in ResourceProvider and TileManager classes.
BUG=236608
TEST=cc_unittests --gtest_filter=ResourceProviderTest.PixelBufferLostContext
Review URL: https://chromiumcodereview.appspot.com/
14786014
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198268
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
epenner@chromium.org [Fri, 3 May 2013 21:04:24 +0000 (21:04 +0000)]
GPU: Reduce MakeCurrent calls to fix Orange San Diego
We have hit several separate issues resulting from calling
MakeCurrent to change surfaces (when using virtual contexts).
This removes most cases of MakeCurrent that aren't needed,
and enables virtual contexts for Orange San Diego.
The last remaining case is ReleaseCurrent which isn't needed
for the Orange San Diego fix, and will be done in a follow up CL.
BUG=179250,229643,230896
NOTRY=true
No try since the trybots all passed and the last change is a one-liner.
Review URL: https://chromiumcodereview.appspot.com/
14069008
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198182
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dsinclair@chromium.org [Fri, 3 May 2013 16:44:55 +0000 (16:44 +0000)]
Revert "Revert 195083 "Revert "Revert 193798 "Revert r192949 "Disable sh...""
This CL re-enables the shader disk cache. There are two changes from the
original CL.
1- Two extra checks of the command line are added to render_process_host_impl.cc
which were missed in the original CL.
2- The shader disk cache is explicitly disabled for the memory_tests. Hopefully
this will make the automation proxy not time out when running on the bot.
(This failure does not re-produce anywhere other then the bot, so I am
unable to verify until the CL runs on Linux Perf(2).)
BUG=
R=nduca@chromium.org, piman@chromium.org
Review URL: https://codereview.chromium.org/
14857005
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@198133
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
kaanb@chromium.org [Tue, 30 Apr 2013 05:00:37 +0000 (05:00 +0000)]
android_webview: add an IsMapped API to the GpuMemoryBuffer
BUG=175012
Review URL: https://chromiumcodereview.appspot.com/
13861039
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@197271
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
davemoore@chromium.org [Mon, 29 Apr 2013 18:13:12 +0000 (18:13 +0000)]
Rationalize linux vs x11 in ui
BUG=236170
TEST=None
R=ben@chromium.org
Review URL: https://codereview.chromium.org/
13985039
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@197087
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
xhwang@chromium.org [Sat, 27 Apr 2013 04:04:47 +0000 (04:04 +0000)]
gpu: Use base::MessageLoop.
BUG=236029
R=piman@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
14273038
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@196937
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
epenner@chromium.org [Sat, 27 Apr 2013 02:04:41 +0000 (02:04 +0000)]
gpu: Cleanup 'black-screen on Huawei' work-around.
We got a response from their driver team. The surface
is only corrupted if an FBO is bound when it is first
made-current. So we can avoid re-creating the surface
and just unbind the Fbo instead.
The work-around is still needed in the context itself
for two reasons:
- Virtual context indirections
- The first make-current for new surfaces
is not in the decoder.
BUG=235935
NOTRY=true
No try, since this doesn't run on mac, so mac_asan bot isn't relevant.
Review URL: https://chromiumcodereview.appspot.com/
14021014
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@196915
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
tonyg@chromium.org [Fri, 26 Apr 2013 16:47:04 +0000 (16:47 +0000)]
Revert 195083 "Revert "Revert 193798 "Revert r192949 "Disable sh..."
Still causing automation proxy failures in memory_test on linux perf bots.
BUG=230085
> Revert "Revert 193798 "Revert r192949 "Disable shader disk cache by defa...""
>
> The automation_proxy don't appear in the build run where this was committed.
> Doesn't seem like this is the root cause of the issues.
>
> > Revert 193798 "Revert r192949 "Disable shader disk cache by defa..."
> >
> > Reverting seems to fix memory_test test locally on linux.
> >
> > BUG=230085
> >
> > > Revert r192949 "Disable shader disk cache by default."
> > >
> > > This reverts commit r192949. The disable has been merged into
> > > M27 so re-enabling on trunk.
> > >
> > > BUG=228989
> > >
> > > Review URL: https://chromiumcodereview.appspot.com/
13872012
> >
> > TBR=dsinclair@chromium.org
> >
> > Review URL: https://codereview.chromium.org/
13924005
>
> TBR=tonyg@chromium.org
>
> Review URL: https://chromiumcodereview.appspot.com/
14119009
TBR=dsinclair@chromium.org
Review URL: https://codereview.chromium.org/
14518008
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@196754
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
scherkus@chromium.org [Fri, 26 Apr 2013 07:41:41 +0000 (07:41 +0000)]
gpu: Remove use of ALLOW_THIS_IN_INITIALIZER_LIST.
It's no longer providing value as the MSVC warning is disabled during compilation. Refer to bug for details.
BUG=234765
Review URL: https://chromiumcodereview.appspot.com/
14337005
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@196657
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
reveman@chromium.org [Thu, 25 Apr 2013 20:20:21 +0000 (20:20 +0000)]
ui: Improve instantiation of AsyncPixelTransferDelegate classes.
Add proper platform abstraction for async pixel transfer interface
by moving android implementation into _egl.cc, current stub
implementation into _sync.cc and add platform specific files
that decide what implementation to use.
BUG=187886
TEST=gpu_unittests
Review URL: https://chromiumcodereview.appspot.com/
14471013
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@196474
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
sievers@chromium.org [Wed, 24 Apr 2013 08:00:11 +0000 (08:00 +0000)]
Android: Move SurfaceTexture from content to ui/gl and add test.
This functionality needs to be exposed in places outside of content/, i.e. gpu/.
Review URL: https://chromiumcodereview.appspot.com/
14366008
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@196086
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
sabercrombie@chromium.org [Tue, 23 Apr 2013 22:19:18 +0000 (22:19 +0000)]
A mesa update added GL_ARB_get_program_binary to the extension string. This enabled the program cache, exposing a problem with attribute bindings.
Mesa doesn't actually implement the extension, which wasn't a problem in itself. However, it meant Program::Link would always hit the cache lookup failure case.
In this scenario we were running ExecuteBindAttribLocationCalls before translation/compilation, when we need mapped attribute names generated during translation for this to operate correctly.
The result was incorrect attribute bindings leading to incorrect rendering.
BUG=197027
TEST=Modified WebGl Conformance gl-clear now passes on Lumpy. gpu_unittests passes.
Review URL: https://chromiumcodereview.appspot.com/
13800012
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@195914
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
ccameron@chromium.org [Sat, 20 Apr 2013 12:36:09 +0000 (12:36 +0000)]
Return the shared context's handle when a virtualized context's
handle is requested.
GLES2DecoderImpl::DoTexImageIOSurface2DCHROMIUM uses
GLContext::GetHandle's result as an argument to
CGLTexImageIOSurface2D, which expects a valid CGLContextObj
as the handle (not NULL).
BUG=230300
Review URL: https://chromiumcodereview.appspot.com/
14241007
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@195390
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
epenner@chromium.org [Sat, 20 Apr 2013 00:54:24 +0000 (00:54 +0000)]
Reland "gpu: Fix Vivante's "hisilicon" GPUs"
This fixes "Hisilicon" GPUs, which is an instance of a
Vivante's GPU design. This involves enabling virtual
contexts, since they don't support share-groups, and further
adds a work-around for switching surfaces. Without the work-
around the view surface "inherits" the size of the last
bound surface (which for Chrome tends to be a 1x1 pbuffer)
resulting in a black screen. The following steps "repair"
the view surface every time it is made current:
- Make it current.
- Bind the default frame-buffer.
- Make it not current.
- Destroy/recreate it from the native handle.
- Make it current again.
NOTE: The "Recreate" function is added to surface because
the Destroy/Initialize may be intercepted or modified by
wrapper surface classes. Recreate is similar to resize,
which after being forwarded by a wrapper can call
Destroy/Initialize on the 'real' surface.
BUG=179250
NOTRY=true
No-try, as all the relevant bots are already green.
Review URL: https://chromiumcodereview.appspot.com/
13852023
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@195349
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
kaanb@chromium.org [Fri, 19 Apr 2013 21:55:55 +0000 (21:55 +0000)]
Add GLES2_IMPL_EXPORT to GpuMemoryBuffer
BUG=175012
Review URL: https://chromiumcodereview.appspot.com/
14366025
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@195300
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
epenner@chromium.org [Fri, 19 Apr 2013 20:57:09 +0000 (20:57 +0000)]
Revert "gpu: Fix Vivante's "hisilicon" GPUs"
Revert "gpu: Fix uninitialized variable."
Reverting these two CLs so they can be landed behind
#ifdef's (for merge safety).
BUG=179250
NOTRY=true
No try since this is just a revert.
Review URL: https://chromiumcodereview.appspot.com/
14241009
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@195275
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
jun.a.jiang@intel.com [Fri, 19 Apr 2013 20:46:54 +0000 (20:46 +0000)]
Add a new parameter dest_type to the GL_CHROMIUM_copy_texture extension.
It is used to define the destination texture if needed, which is possible
for texImage2D(..., canvas) and texImage2D(..., video) in WebGL.
BUG=
Review URL: https://chromiumcodereview.appspot.com/
13613006
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@195269
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
kaanb@chromium.org [Fri, 19 Apr 2013 08:58:58 +0000 (08:58 +0000)]
Move GpuMemoryBuffer interface from ui/gl to gpu/command_buffer/client
BUG=175012
Review URL: https://chromiumcodereview.appspot.com/
13870010
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@195112
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
rubentopo@gmail.com [Fri, 19 Apr 2013 08:49:03 +0000 (08:49 +0000)]
Category group support/Renamings.
Related review:
https://codereview.chromium.org/
11823016/
BUG=168284
TEST=TraceEventTestFixture.Categories, TraceEventTestFixture.CategoryFilter
R=nduca
Review URL: https://chromiumcodereview.appspot.com/
12150004
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@195109
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dsinclair@chromium.org [Fri, 19 Apr 2013 03:50:57 +0000 (03:50 +0000)]
Revert "Revert 193798 "Revert r192949 "Disable shader disk cache by defa...""
The automation_proxy don't appear in the build run where this was committed.
Doesn't seem like this is the root cause of the issues.
> Revert 193798 "Revert r192949 "Disable shader disk cache by defa..."
>
> Reverting seems to fix memory_test test locally on linux.
>
> BUG=230085
>
> > Revert r192949 "Disable shader disk cache by default."
> >
> > This reverts commit r192949. The disable has been merged into
> > M27 so re-enabling on trunk.
> >
> > BUG=228989
> >
> > Review URL: https://chromiumcodereview.appspot.com/
13872012
>
> TBR=dsinclair@chromium.org
>
> Review URL: https://codereview.chromium.org/
13924005
TBR=tonyg@chromium.org
Review URL: https://chromiumcodereview.appspot.com/
14119009
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@195083
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
kloveless@chromium.org [Thu, 18 Apr 2013 21:11:50 +0000 (21:11 +0000)]
Clean up of GLES2 Command Decoder by moving some of the error state into a separate class.
Review URL: https://chromiumcodereview.appspot.com/
14308014
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@195002
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
hkuang@chromium.org [Thu, 18 Apr 2013 05:41:37 +0000 (05:41 +0000)]
Enable video painting on Canvas for Chrome on Android. This change should land after another patch landing in https://codereview.chromium.org/
13685002.
BUG=147265
TEST=visited the following site:
http://html5doctor.com/demos/video-canvas-magic/demo1.html
Visit http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_canvas_drawimage_video.
Change different parameters of the canvas and video. Compare the result between desktop chrome and android chrome to see if video painting results are the same.
Canvas 500X400 ctx.drawImage(v,60,60,320,176) PASS
Canvas 500X400 ctx.drawImage(v,0,0,320,176) PASS
Canvas 200X100 ctx.drawImage(v,0,0,320,176) PASS
Canvas 200X100 ctx.drawImage(v,50,50,320,176) PASS
Canvas 500X400 ctx.drawImage(v,0,0,30,30,5,5,260,125) PASS
Canvas 500X400 ctx.drawImage(v,0,0) PASS
Canvas 600x700 ctx.drawImage(v,90,90,80,80,100,100,260,125) PASS
TODO:
More complex and mixed 2D Canvas operation to see if the painting result is right(Need to learn some more JS for that).
Review URL: https://chromiumcodereview.appspot.com/
13620008
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@194785
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
epenner@chromium.org [Thu, 18 Apr 2013 00:25:04 +0000 (00:25 +0000)]
gpu: Fix Vivante's "hisilicon" GPUs
This fixes "Hisilicon" GPUs, which is an instance of a
Vivante's GPU design. This involves enabling virtual
contexts, since they don't support share-groups, and further
adds a work-around for switching surfaces. Without the work-
around the view surface "inherits" the size of the last
bound surface (which for Chrome tends to be a 1x1 pbuffer)
resulting in a black screen. The following steps "repair"
the view surface every time it is made current:
- Make it current.
- Bind the default frame-buffer.
- Make it not current.
- Destroy/recreate it from the native handle.
- Make it current again.
NOTE: The "Recreate" function is added to surface because
the Destroy/Initialize may be intercepted or modified by
wrapper surface classes. Recreate is similar to resize,
which after being forwarded by a wrapper can call
Destroy/Initialize on the 'real' surface.
BUG=179250, 229643
NOTRY=true
No try, since it's Android only and already tested.
Review URL: https://chromiumcodereview.appspot.com/
13140006
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@194737
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
sievers@chromium.org [Wed, 17 Apr 2013 21:00:17 +0000 (21:00 +0000)]
Android: Fix up video to work with mailboxes.
Change Consume/ProduceTexture to use the same texture target validator as BindTexture(). Otherwise, external and rectangle textures will fail this call, since we exclude these targets from the wider GL APIs using the texture_target validator
Also, pass stream texture flag along and reset it to |false| after Produce() since the new GL texture will be disconnected from the stream.
BUG=230327,179729
Review URL: https://codereview.chromium.org/
14095009
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@194668
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
tonyg@chromium.org [Wed, 17 Apr 2013 00:53:52 +0000 (00:53 +0000)]
Revert 193798 "Revert r192949 "Disable shader disk cache by defa..."
Reverting seems to fix memory_test test locally on linux.
BUG=230085
> Revert r192949 "Disable shader disk cache by default."
>
> This reverts commit r192949. The disable has been merged into
> M27 so re-enabling on trunk.
>
> BUG=228989
>
> Review URL: https://chromiumcodereview.appspot.com/
13872012
TBR=dsinclair@chromium.org
Review URL: https://codereview.chromium.org/
13924005
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@194503
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dcheng@chromium.org [Mon, 15 Apr 2013 22:51:03 +0000 (22:51 +0000)]
Remove final scoped_array references from gpu code.
Now that gpu uses the same scoped_ptr as the rest of Chromium, update
the remaining client references to scoped_array<T> to use
scoped_ptr<T[]> instead.
BUG=171111
Review URL: https://codereview.chromium.org/
14113015
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@194249
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
hshi@chromium.org [Sat, 13 Apr 2013 08:23:33 +0000 (08:23 +0000)]
Fix flake in FencedWrapperAllocatorTest::TestAlignment.
Re-enable the test on Windows after verifying the tests are
passing gpu_unittests on win trybots.
BUG=226750
TBR=piman
R=michaeln
TEST=gpu_unittests
Review URL: https://chromiumcodereview.appspot.com/
14096005
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@194093
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
michaeln@google.com [Sat, 13 Apr 2013 03:13:51 +0000 (03:13 +0000)]
Temporarily disable FencedAllocator.TestAlignment on windows
BUG=226750
TBR=hshi
Review URL: https://codereview.chromium.org/
13935003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@194085
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dcheng@chromium.org [Fri, 12 Apr 2013 23:30:35 +0000 (23:30 +0000)]
Use base/memory/scoped_ptr.h in gpu client code.
BUG=229096
Review URL: https://chromiumcodereview.appspot.com/
13905006
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@194043
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
hshi@chromium.org [Fri, 12 Apr 2013 23:09:30 +0000 (23:09 +0000)]
FencedAllocator should align all allocations to multiples of 16 bytes.
Round block sizes and allocation sizes in FencedAllocator to multiples of
16 bytes. Currently skia only requires 4-byte alignment but we would like
to preemptively bump this up to 16 for SSE/NEON.
BUG=226750
TEST=manually on daisy using the repro case of WebRTC screen capture crash.
Review URL: https://codereview.chromium.org/
13994011
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@194039
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
yfriedman@chromium.org [Fri, 12 Apr 2013 00:59:16 +0000 (00:59 +0000)]
[Android] Fix unit_tests and webview compilations for components build.
What I missed in https://codereview.chromium.org/
13494003/ is that
jingle is also needed for unit tests. Other variants get it
transitivitely through the 'service' process/target which is unused on
Android.
Also fixes a regression in component build for android_webview after
some changes there.
BUG=158821
Review URL: https://chromiumcodereview.appspot.com/
14099007
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193813
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dsinclair@chromium.org [Thu, 11 Apr 2013 23:23:57 +0000 (23:23 +0000)]
Revert r192949 "Disable shader disk cache by default."
This reverts commit r192949. The disable has been merged into
M27 so re-enabling on trunk.
BUG=228989
Review URL: https://chromiumcodereview.appspot.com/
13872012
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193798
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
zmo@chromium.org [Thu, 11 Apr 2013 22:40:18 +0000 (22:40 +0000)]
Revert FeatureInfo::Workarounds setup in command buffer.
This is a temporary solution so we can move forward with green gl_tests, until we migrate the setup code from src/content to src/gpu.
Note that in regular chrome codepath, kGpuDriverBugWorkarounds is always passed down to gpu process, so the code path in this CL is never triggered: it is for testing only.
BUG=228979
TEST=gl_tests,gpu_unittests
Review URL: https://codereview.chromium.org/
14186003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193787
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
kaanb@chromium.org [Thu, 11 Apr 2013 03:33:53 +0000 (03:33 +0000)]
Move GpuMemoryBufferFactoryProxy to gpu/command_buffer/client as we'll be allocating buffers from gles2_implementation
BUG=175012
Review URL: https://chromiumcodereview.appspot.com/
14009002
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193559
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dsinclair@chromium.org [Thu, 11 Apr 2013 01:58:44 +0000 (01:58 +0000)]
Send shader information to disk cache on access as well as create.
Currently we send the shader information to the disk cache when the
shader is first saved. This patch also sends the shaders when we
read them from the memory cache. This allows us to use the
LRU capabilities of the shader cache and re-cache any shaders
if the disk cache has been cleared.
BUG=226998
Review URL: https://chromiumcodereview.appspot.com/
13722006
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193538
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
apatrick@chromium.org [Wed, 10 Apr 2013 22:04:36 +0000 (22:04 +0000)]
GPU process "unschedule fences" have a timeout.
If the GPU process has waited for more than a given amount of time for a fence to complete, treat it as completed. This is because, when the D3D device is lost, some drivers will never complete the underlying queries and never detect the device lost. By forcing through subsequent rendering, either the driver sometimes detects the device lost and recovers or a subsequent drawing call hangs allowing the GPU watchdog thread to terminate the GPU process.
Review URL: https://chromiumcodereview.appspot.com/
13093015
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193471
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
kloveless@chromium.org [Wed, 10 Apr 2013 21:32:32 +0000 (21:32 +0000)]
Moved logging functionality of out of the GLES2 Command Decoder into a separate Logger class (in an attempt to start simplifying the Decoder).
Testing: Building/running GPU tests works.
Review URL: https://chromiumcodereview.appspot.com/
13600009
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193461
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
ccameron@chromium.org [Wed, 10 Apr 2013 02:52:38 +0000 (02:52 +0000)]
Force GPU switch with CGLSetVirtualScreen only for compositor
Only compositor contexts are known to use only the subset of GL
that can be safely migrated between the iGPU and the dGPU. Mark
those contexts as safe to forcibly transition between the GPUs.
In particular, Intel GPUs support using a GL_STENCIL_INDEX8
attachment with no depth buffer, but NV GPUs don't. Skia will use
this FBO combo if it is listed as available.
If we use this combo on the iGPU and then forcibly transition the
GL context using this combo from the iGPU to the dGPU, corruption
occurs on NV, and a hang happens on AMD.
Further, if we cache complete FBO combos, then we will cache this
combo as valid when using the iGPU, and claim that it's valid when
using the dGPU, resulting in GL errors.
BUG=180876
Review URL: https://chromiumcodereview.appspot.com/
13746002
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193302
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
kaanb@chromium.org [Wed, 10 Apr 2013 02:16:27 +0000 (02:16 +0000)]
gpu: Fix mock setup for [Bind|Release]TexImage2DCHROMIUM unit tests
BUG=
Review URL: https://chromiumcodereview.appspot.com/
13841022
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193292
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dcheng@chromium.org [Tue, 9 Apr 2013 08:46:45 +0000 (08:46 +0000)]
Rewrite std::string("") to std::string(), Linux edition.
This patch was generated by running the empty_string clang tool
across the Chromium Linux compilation database. Implicitly or
explicitly constructing std::string() with a "" argument is
inefficient as the caller needs to emit extra instructions to
pass an argument, and the constructor needlessly copies a byte
into internal storage. Rewriting these instances to simply call
the default constructor appears to save ~14-18 kilobytes on an
optimized release build.
BUG=none
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=193020
Review URL: https://codereview.chromium.org/
13145003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193040
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dcheng@chromium.org [Tue, 9 Apr 2013 06:41:12 +0000 (06:41 +0000)]
Revert "Rewrite std::string("") to std::string(), Linux edition."
This reverts commit
e59558b78e8c6a1b0bd916a724724b638c3c91b6.
Revert "Fix build after r193020."
This reverts commit
558a35897f6b3ffbcaefde927c1f150b815d140a.
Revert "Really fix build after r193020."
This reverts commit
e3748a79b523a8d365d4a33ef986eebb4186fa78.
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193030
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dcheng@chromium.org [Tue, 9 Apr 2013 05:45:17 +0000 (05:45 +0000)]
Rewrite std::string("") to std::string(), Linux edition.
This patch was generated by running the empty_string clang tool
across the Chromium Linux compilation database. Implicitly or
explicitly constructing std::string() with a "" argument is
inefficient as the caller needs to emit extra instructions to
pass an argument, and the constructor needlessly copies a byte
into internal storage. Rewriting these instances to simply call
the default constructor appears to save ~14-18 kilobytes on an
optimized release build.
BUG=none
Review URL: https://codereview.chromium.org/
13145003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@193020
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dcheng@chromium.org [Tue, 9 Apr 2013 03:39:55 +0000 (03:39 +0000)]
Rewrite scoped_array<T> to scoped_ptr<T[]> in gpu/, Linux edition.
This changelist was automatically generated using a clang tool.
BUG=171111
Review URL: https://codereview.chromium.org/
13454036
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192995
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
kaanb@chromium.org [Tue, 9 Apr 2013 00:41:04 +0000 (00:41 +0000)]
GLImage support for Android zero-copy pixel buffers
BUG=175012
Review URL: https://chromiumcodereview.appspot.com/
13543007
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192971
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dsinclair@chromium.org [Mon, 8 Apr 2013 23:36:44 +0000 (23:36 +0000)]
Disable shader disk cache by default.
The code to handle cache clearing didn't land in time for the M27
branch so it has been decided to disable this feature for M27.
This patch will be rolled back after it lands on the M27 branch.
BUG=228989
Review URL: https://chromiumcodereview.appspot.com/
13800013
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192949
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
cpu@chromium.org [Sat, 6 Apr 2013 00:03:20 +0000 (00:03 +0000)]
Fix large mis-paint when resizing windows aura chrome
See bug attached for screenshots
The CL does two things:
- Disables the resizer lock, so that UI bits can go ahead of content bits
- Janks (blocks) the UI thread until the compositor has flushed / finished
the pending commands.
This makes the mis-draw way less, up to one frame behind, which at my regular
mouse speed of 1.2 pixels / ms comes out to 20 pixels of whiteout.
BUG=177115
TEST=none
Review URL: https://codereview.chromium.org/
13604007
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192657
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
zmo@chromium.org [Fri, 5 Apr 2013 23:28:01 +0000 (23:28 +0000)]
Blacklist EXT_draw_buffers on Mac NVIDIA GeForce GT 650M.
Also, turn on support for EXT_draw_buffers on Windows. To make it easy for debugging ANGLE implementation bugs.
BUG=180397
TEST=gpu_unittests,content_unittests
Review URL: https://codereview.chromium.org/
13730008
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192647
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
zmo@chromium.org [Fri, 5 Apr 2013 16:36:31 +0000 (16:36 +0000)]
Use macro to simplify gpu driver bug workaround defs and code.
BUG=226789
TEST=no logic change, simply code refactor, so everything stays the same
Review URL: https://codereview.chromium.org/
13400003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192580
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
dcheng@chromium.org [Fri, 5 Apr 2013 06:13:31 +0000 (06:13 +0000)]
Clean up scoped_array<T> construction from NULL.
This won't be allowed by unique_ptr<T> or scoped_ptr<T>.
BUG=171118
Review URL: https://codereview.chromium.org/
13710002
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192518
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
zmo@chromium.org [Thu, 4 Apr 2013 22:57:11 +0000 (22:57 +0000)]
Use GpuDriverBugList to manage all the workarounds.
Before the workarounds are hardwired in feature_info.cc.
Now the workarounds are expressed as entries in gpu_driver_bug_list.json.
BUG=222857
TEST=gpu_unittests,content_unittests
Review URL: https://codereview.chromium.org/
13594007
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192406
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
sievers@chromium.org [Thu, 4 Apr 2013 12:12:51 +0000 (12:12 +0000)]
Android: Tweak QualComm flicker bugs workarounds
Revert r189334 (in MailboxOutputSurface),
which fixes corruption on S3 in release builds, which then
needs another workaround (see added glFlush() for QualComm,
crbug.com/222018).
Also tweak the QualComm scissor workaround by deferring it to draw time.
This hopefully has two effects:
- handle known corner cases that were previously unhandled
- only call glScissor() when the FBO is actually complete, hoping that
it will positively affect crbug.com/170083 which crashes in glScissor()
in the driver.
BUG=219052,222018,170083
TBR=piman@chromium.org for mailbox_output_surface.cc
Review URL: https://chromiumcodereview.appspot.com/
13608004
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192314
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
ccameron@chromium.org [Wed, 3 Apr 2013 18:50:06 +0000 (18:50 +0000)]
Fix GL virtualization warnings on OS X
Stub out GetDisplay for GLSurfaceCGL so that the NOTIMPLEMENTED
in GLSurface is not hit.
Fix a bug where, when using context virtualization, a
GL_INVALD_FRAMEBUFFER_OPERATION is generated by
GLES2DecoderImpl::Initialize. This is a use-before-initialization bug
wherein GpuCommandBufferStub::Initialize calls MakeCurrent on
the virtual context, and because decoder_ is non-NULL in
GLContextVirtual::MakeCurrent, we try to restore the state
from the decoder (but decoder_ has not yet been initialized).
Remove extra logic to prevent calling Destroy on un-initialized
decoders, and add a check inside Destroy.
BUG=180463
Review URL: https://chromiumcodereview.appspot.com/
13430019
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192109
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
apatrick@chromium.org [Wed, 3 Apr 2013 18:14:56 +0000 (18:14 +0000)]
In GLES2Implementation, replace calls to Finish/FinishHelper with WaitForCmd.
FinishHelper does the same as WaitForCmd but also insert a (redundant in these cases) glFinish command in the command buffer beforehand. In these cases we only need to ensure that the GPU process has processed all the commands, not that the underlying GL implementation has finished them on the GPU.
This should generally make the synchronization cheaper. More importantly, in the event that the GPU hangs, glFinish sometimes never return on Windows, causing a hang until the GPU watchdog thread aborts after 10 seconds.
Review URL: https://codereview.chromium.org/
13460014
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192099
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
gman@chromium.org [Wed, 3 Apr 2013 07:15:53 +0000 (07:15 +0000)]
Make GL_TEXTURE_EXTERNAL_OES texture immutable.
This is semi-redundant. The reason things work now is there are
2 GLenum validators. One for glBindTexture and a different one
for glTexImage2D etc. The one for glTexImage2D does not have
GL_TEXTURE_EXTERNAL_OES in it.
But, It seemed best to mark the texture as immutable just in case
someone forgets. Also, it seemed best to add a couple more tests
that test that things work.
In that vain it was clear a few things that were public (npot,
texture_complete, cube_complete) should not have been public
so fixed that.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/
13463010
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@192011
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
hkuang@chromium.org [Wed, 3 Apr 2013 03:56:25 +0000 (03:56 +0000)]
Add support for GL_TEXTURE_EXTERNAL_OES texture copy.
Add support for GL_TEXTURE_EXTERNAL_OES texture copy in function CopyTextureCHROMIUM which is needed for 2D Canvas Painting. In Issue
11973010, this support was already added inside the copyTextureCHROMIUMResourceManager, but it is still missing in the function CopyTextureCHROMIUM. So just add it.
Also fix the RestoreTextureState, which was binding the OES texture to GL_TEXTURE_2D which will generate glError.
BUG=225079
TEST=
Review URL: https://chromiumcodereview.appspot.com/
13168004
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@191968
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
yfriedman@chromium.org [Wed, 3 Apr 2013 00:20:00 +0000 (00:20 +0000)]
[Android] Fix remaining linker errors for components build
Miscellaneous missing dependencies and a few more exports.
BUG=158821
Review URL: https://chromiumcodereview.appspot.com/
12988003
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@191944
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c
gman@chromium.org [Tue, 2 Apr 2013 18:28:02 +0000 (18:28 +0000)]
Get gl_tests running on Nexus 4
BUG=180432
Review URL: https://chromiumcodereview.appspot.com/
13390016
git-svn-id: http://src.chromium.org/svn/trunk/src/gpu@191861
4ff67af0-8c30-449e-8e8b-
ad334ec8d88c