| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@194093 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=226750
TBR=hshi
Review URL: https://codereview.chromium.org/13935003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194085 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=229096
Review URL: https://chromiumcodereview.appspot.com/13905006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194043 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@194039 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@193813 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@193798 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@193787 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
allocating buffers from gles2_implementation
BUG=175012
Review URL: https://chromiumcodereview.appspot.com/14009002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193559 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@193538 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@193471 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@193461 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@193302 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=
Review URL: https://chromiumcodereview.appspot.com/13841022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193292 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@193040 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@193030 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@193020 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
This changelist was automatically generated using a clang tool.
BUG=171111
Review URL: https://codereview.chromium.org/13454036
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192995 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=175012
Review URL: https://chromiumcodereview.appspot.com/13543007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192971 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@192949 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@192657 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@192647 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=226789
TEST=no logic change, simply code refactor, so everything stays the same
Review URL: https://codereview.chromium.org/13400003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@192580 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@192518 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@192406 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@192314 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@192109 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@192099 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@192011 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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: svn://svn.chromium.org/chrome/trunk/src@191968 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Miscellaneous missing dependencies and a few more exports.
BUG=158821
Review URL: https://chromiumcodereview.appspot.com/12988003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191944 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=180432
Review URL: https://chromiumcodereview.appspot.com/13390016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191861 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use PBOs in gl_helper
swizzle bytes on gpu
flip vertically on gpu
remove gl_helper_thread
Implements GLHelper::CropScaleReadbackAndCleanTexture() to be non-blocking in the client by using shared memory combined with a query (not requiring actual GL PBO support, which would not be available on Android).
Review URL: https://chromiumcodereview.appspot.com/12892005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191737 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
pipelining/performance issues on Mac tab capture.
BUG=223326
TBR=hclam,kbr,apatrick
Review URL: https://chromiumcodereview.appspot.com/13173004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191721 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
Some drivers cannot recover from device lost. IDirect3DDevice9::ResetEx returns an access denied error after a GPU hang. Although this results in a fallback to software, exiting the GPU process allows a newly launched GPU process to reinitialize D3D and GPU accelerated features continue to work.
I have observed this with an AMD driver but suspect there are issues with Intel from crash reports.
Review URL: https://chromiumcodereview.appspot.com/12617020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191705 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The scope indicates how long the vertical line should be in the tracing UI. It
can be global (full screen), process or thread (fill those tracks), or local
(the original style for INSTANT).
BUG=None
Review URL: https://chromiumcodereview.appspot.com/12252058
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190577 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This passes around ownership of the TextureDefinition between
mailbox manager and surface. It will make it easier to switch to
a refcounted scheme for mailbox textures.
I optimized Texture::Save()/Restore() just because when I first
create the TextureDefinition in ImageTransportSurface, I do not
have a TextureManager yet to figure out what the max. number of
needed levels is.
So I added a bunch of unit tests for that.
BUG=181640,220561
Review URL: https://chromiumcodereview.appspot.com/12893006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190222 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will allow us to avoid making the round-trip call to the server
every time this function is called.
BUG=222894
Review URL: https://chromiumcodereview.appspot.com/13004003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190205 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
ifndef OS_NAME -> if !defined(OS_NAME)
BUG=none
TEST=no regressions
Review URL: https://chromiumcodereview.appspot.com/12545059
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190069 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently consume is expensive. Also, we currently
have no other way of detecting compositor frames
being produced/consumed in the GPU process.
BUG=220561
NOTRY=true
No try since the aura failure isn't related.
Review URL: https://chromiumcodereview.appspot.com/12888005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189962 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Query bugs were real. Added more unit tests
CopyTextureCHROMIUM bugs are iffy. We could try to work around
them in the command buffer. Basically we'd have to set filtering
on all textures used in an FBO just before each glClear/glDraw/glRead
That would be slow so we could do that only on SGX. We could optimize
if we knew either (a) there are no textures with problematic filtering
(unlikely to be true) or (b) there are no textures with problemative filtering
on the currently bound FBO.
It's not a small change so we can do that later if we want.
There's still an issue with mailboxes that I'll fix in another CL
BUG=180432
Review URL: https://chromiumcodereview.appspot.com/12716027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189291 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=180432
Review URL: https://chromiumcodereview.appspot.com/12502009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189109 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=None
R=gman@chromium.org
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/12643012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188939 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the expression had the same lhs and rhs, it did not make much sense.
It seems this got introduced in a refactoring in r175473.
This was found by experimenting with a potential new Clang warning.
BUG=none
Review URL: https://chromiumcodereview.appspot.com/12670007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188642 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
The context can become not current after a resize callback due to a lost device. The code after the CHECK handles this fine, so convert this to a DCHECK instead.
BUG=189889
Review URL: https://chromiumcodereview.appspot.com/12880002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188599 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes the fallback pixel transfer implementation perform
texture uploads when command buffer is idle.
BUG=161337
R=epenner@chromium.org
Review URL: https://chromiumcodereview.appspot.com/12040049
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188558 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=196334
Review URL: https://chromiumcodereview.appspot.com/12830007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188514 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Automated clean up of style checker errors that were missed due to the plugin
not being executed on implementation files.
BUG=115047
TBR=ben, brettw, jamesr, joi, satorux, piman, wez
Review URL: https://chromiumcodereview.appspot.com/12813004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188311 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This extends the workaround from
https://codereview.chromium.org/11734037/
Apparently, the driver also applies an incorrect scissor after we change the texture to FBO binding with glFramebufferTexture2D().
BUG=188600
NOTRY=True
Review URL: https://codereview.chromium.org/12566032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188232 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GLES2 implementation or unit tests. Calling it on some Mac OS OpenGL drivers causes a GL_INVALID_OPERATION which breaks either the WebGL implementation or applications later.
This should have been caught by the GPU bots.
Tested with WebGL conformance tests, the shiny-teapot demo, and gpu_unittests.
BUG=192533
Review URL: https://codereview.chromium.org/12544023
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188216 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A few things:
1) I only hooked up with desktop GL backend, i.e., GL_ARB_draw_buffers. Will add GLES support later.
2) Probably we need to do something to enable this for Pepper3D also? If yes, will do so in a seperate CL.
3) I didn't add the wordarounds for Mac/Linux driver bugs. Will do so in a seperate CL.
BUG=180397
TEST=gpu_unittests, webgl conformance tests
Review URL: https://codereview.chromium.org/12545014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188129 0039d316-1c4b-4281-b951-d872f2087c98
|