|
|
Chromium Code Reviews
DescriptionFix transform feedback bugs
This CL fixes two bugs:
1. Deleting an active transform feedback object will generate
INVALID_OPERATION error (page 86, ES spec 3.0.4).
2. bindBufferBase bind the buffer object to both the general binding
point and the binding point in the array givien by index (page 35, ES
spec 3.0.4).
BUG=295792, 591258
TEST=deqp/functional/gles3/lifetime.html
CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel
Committed: https://crrev.com/4c10b3e03cdf3028c9e66aaa4d4e9236c856cf68
Cr-Commit-Position: refs/heads/master@{#380610}
Patch Set 1 #
Total comments: 2
Patch Set 2 : set correct cached buffer in command buffer #
Total comments: 4
Patch Set 3 : do validations #Patch Set 4 : add server side validation #Patch Set 5 : fix gpu_unittests #
Total comments: 14
Patch Set 6 : fix error msg #
Messages
Total messages: 35 (12 generated)
Description was changed from ========== Fix transform feedback bugs in blink This CL fixes two bugs: 1. Deleting an active transform feedback object will generate INVALID_OPERATION error (page 86, ES spec 3.0.4). 2. bindBufferBase bind the buffer object to both the general binding point and the binding point in the array givien by index (page 35, ES spec 3.0.4). BUG=295792 TEST=deqp/functional/gles3/lifetime.html ========== to ========== Fix transform feedback bugs in blink This CL fixes two bugs: 1. Deleting an active transform feedback object will generate INVALID_OPERATION error (page 86, ES spec 3.0.4). 2. bindBufferBase bind the buffer object to both the general binding point and the binding point in the array givien by index (page 35, ES spec 3.0.4). BUG=295792 TEST=deqp/functional/gles3/lifetime.html CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel ==========
qiankun.miao@intel.com changed reviewers: + bajones@chromium.org, kbr@chromium.org, xinghua.cao@intel.com, yunchao.he@intel.com, zmo@chromium.org
PTAL. Conformance test are also updated: https://github.com/KhronosGroup/WebGL/pull/1513 and https://github.com/KhronosGroup/WebGL/pull/1514 .
LGTM. Thanks for providing the spec references for easy verification.
Qiankun, I think you need to dig a bit further to find the right fix. https://codereview.chromium.org/1752703003/diff/1/third_party/WebKit/Source/m... File third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp (right): https://codereview.chromium.org/1752703003/diff/1/third_party/WebKit/Source/m... third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp:2233: webContext()->bindBuffer(target, objectOrZero(buffer)); I am not sure this is the right fix. I don't think we need to explicitly call bindBuffer(), because bindBufferBase() should take care of that. So it's either a driver bug (I doubt it), or there are some place in Chrome we fail to change the cached bound buffer. That is the bug we need to fix.
https://codereview.chromium.org/1752703003/diff/1/third_party/WebKit/Source/m... File third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp (right): https://codereview.chromium.org/1752703003/diff/1/third_party/WebKit/Source/m... third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp:2233: webContext()->bindBuffer(target, objectOrZero(buffer)); On 2016/03/01 22:33:01, Zhenyao Mo wrote: > I am not sure this is the right fix. > > I don't think we need to explicitly call bindBuffer(), because bindBufferBase() > should take care of that. So it's either a driver bug (I doubt it), or there > are some place in Chrome we fail to change the cached bound buffer. That is the > bug we need to fix. The driver really call bindBuffer() when do bindBuferBase(). But Chrome didn't change the cached bound buffer, so bindBuffer() may be not called to driver. See commit log in https://github.com/KhronosGroup/WebGL/pull/1513. bindBuffer(gl.TRANSFORM_FEEDBACK_BUFFER, buffer); // buffer_in_driver = buffer buffer_chaced_by_chrome = buffer bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, null);// buffer_in_driver = null buffer_chaced_by_chrome = buffer bindBuffer(gl.TRANSFORM_FEEDBACK_BUFFER, buffer); // buffer_in_driver = null buffer_chaced_by_chrome = buffer; Between two calls of "bindBuffer(gl.TRANSFORM_FEEDBACK_BUFFER, buffer);" bound_transform_feedback_buffer_ doesn't change, so GLES2Implementation::BindBufferHelper doesn't issue bindBuffer to command buffer server side.
On 2016/03/01 23:52:07, qiankun wrote: > https://codereview.chromium.org/1752703003/diff/1/third_party/WebKit/Source/m... > File third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp > (right): > > https://codereview.chromium.org/1752703003/diff/1/third_party/WebKit/Source/m... > third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp:2233: > webContext()->bindBuffer(target, objectOrZero(buffer)); > On 2016/03/01 22:33:01, Zhenyao Mo wrote: > > I am not sure this is the right fix. > > > > I don't think we need to explicitly call bindBuffer(), because > bindBufferBase() > > should take care of that. So it's either a driver bug (I doubt it), or there > > are some place in Chrome we fail to change the cached bound buffer. That is > the > > bug we need to fix. > > The driver really call bindBuffer() when do bindBuferBase(). But Chrome didn't > change the cached bound buffer, so bindBuffer() may be not called to driver. See > commit log in https://github.com/KhronosGroup/WebGL/pull/1513. > > bindBuffer(gl.TRANSFORM_FEEDBACK_BUFFER, buffer); // buffer_in_driver = buffer > buffer_chaced_by_chrome = buffer > bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, null);// buffer_in_driver = null > buffer_chaced_by_chrome = buffer > bindBuffer(gl.TRANSFORM_FEEDBACK_BUFFER, buffer); // buffer_in_driver = null > buffer_chaced_by_chrome = buffer; Between two calls of > "bindBuffer(gl.TRANSFORM_FEEDBACK_BUFFER, buffer);" > bound_transform_feedback_buffer_ doesn't change, so > GLES2Implementation::BindBufferHelper doesn't issue bindBuffer to > command buffer server side. That's what I am saying. We don't need to call bindBuffer() in chrome. We simply need to also update the cached bound buffer when bindBufferBase() is called. That would be the right fix.
On 2016/03/01 23:57:42, Zhenyao Mo wrote: > On 2016/03/01 23:52:07, qiankun wrote: > > > https://codereview.chromium.org/1752703003/diff/1/third_party/WebKit/Source/m... > > File third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp > > (right): > > > > > https://codereview.chromium.org/1752703003/diff/1/third_party/WebKit/Source/m... > > third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp:2233: > > webContext()->bindBuffer(target, objectOrZero(buffer)); > > On 2016/03/01 22:33:01, Zhenyao Mo wrote: > > > I am not sure this is the right fix. > > > > > > I don't think we need to explicitly call bindBuffer(), because > > bindBufferBase() > > > should take care of that. So it's either a driver bug (I doubt it), or > there > > > are some place in Chrome we fail to change the cached bound buffer. That is > > the > > > bug we need to fix. > > > > The driver really call bindBuffer() when do bindBuferBase(). But Chrome didn't > > change the cached bound buffer, so bindBuffer() may be not called to driver. > See > > commit log in https://github.com/KhronosGroup/WebGL/pull/1513. > > > > bindBuffer(gl.TRANSFORM_FEEDBACK_BUFFER, buffer); // buffer_in_driver = buffer > > buffer_chaced_by_chrome = buffer > > bindBufferBase(gl.TRANSFORM_FEEDBACK_BUFFER, null);// buffer_in_driver = null > > buffer_chaced_by_chrome = buffer > > bindBuffer(gl.TRANSFORM_FEEDBACK_BUFFER, buffer); // buffer_in_driver = null > > buffer_chaced_by_chrome = buffer; Between two calls of > > "bindBuffer(gl.TRANSFORM_FEEDBACK_BUFFER, buffer);" > > bound_transform_feedback_buffer_ doesn't change, so > > GLES2Implementation::BindBufferHelper doesn't issue bindBuffer to > > command buffer server side. > > That's what I am saying. We don't need to call bindBuffer() in chrome. We > simply need to also update the cached bound buffer when bindBufferBase() is > called. That would be the right fix. I updated the CL to set correct cached bound buffer in command buffer. PTAL.
Description was changed from ========== Fix transform feedback bugs in blink This CL fixes two bugs: 1. Deleting an active transform feedback object will generate INVALID_OPERATION error (page 86, ES spec 3.0.4). 2. bindBufferBase bind the buffer object to both the general binding point and the binding point in the array givien by index (page 35, ES spec 3.0.4). BUG=295792 TEST=deqp/functional/gles3/lifetime.html CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Fix transform feedback bugs in blink This CL fixes two bugs: 1. Deleting an active transform feedback object will generate INVALID_OPERATION error (page 86, ES spec 3.0.4). 2. bindBufferBase bind the buffer object to both the general binding point and the binding point in the array givien by index (page 35, ES spec 3.0.4). BUG=295792, 591258 TEST=deqp/functional/gles3/lifetime.html CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel ==========
Thank you. This is the right fix. Some extra validations are needed. https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... File gpu/command_buffer/client/gles2_implementation.cc (right): https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... gpu/command_buffer/client/gles2_implementation.cc:3823: switch (target) { You will need to validate index before caching the binding. https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:4540: state_.SetBoundBuffer(target, buffer); You will need to do all the validations before you can cache the state.
https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... File gpu/command_buffer/client/gles2_implementation.cc (right): https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... gpu/command_buffer/client/gles2_implementation.cc:3823: switch (target) { On 2016/03/02 17:09:36, Zhenyao Mo wrote: > You will need to validate index before caching the binding. Done. https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:4540: state_.SetBoundBuffer(target, buffer); On 2016/03/02 17:09:36, Zhenyao Mo wrote: > You will need to do all the validations before you can cache the state. The validations have been done in client side. Do we need to do them again?
On 2016/03/03 10:14:15, qiankun wrote: > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... > File gpu/command_buffer/client/gles2_implementation.cc (right): > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... > gpu/command_buffer/client/gles2_implementation.cc:3823: switch (target) { > On 2016/03/02 17:09:36, Zhenyao Mo wrote: > > You will need to validate index before caching the binding. > > Done. > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... > File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... > gpu/command_buffer/service/gles2_cmd_decoder.cc:4540: > state_.SetBoundBuffer(target, buffer); > On 2016/03/02 17:09:36, Zhenyao Mo wrote: > > You will need to do all the validations before you can cache the state. > > The validations have been done in client side. Do we need to do them again? Yes we do. As design, we don't trust client code (renderer could be corrupted), so we always validate fully on service side.
On 2016/03/07 02:43:39, Zhenyao Mo wrote: > On 2016/03/03 10:14:15, qiankun wrote: > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... > > File gpu/command_buffer/client/gles2_implementation.cc (right): > > > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... > > gpu/command_buffer/client/gles2_implementation.cc:3823: switch (target) { > > On 2016/03/02 17:09:36, Zhenyao Mo wrote: > > > You will need to validate index before caching the binding. > > > > Done. > > > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... > > File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): > > > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... > > gpu/command_buffer/service/gles2_cmd_decoder.cc:4540: > > state_.SetBoundBuffer(target, buffer); > > On 2016/03/02 17:09:36, Zhenyao Mo wrote: > > > You will need to do all the validations before you can cache the state. > > > > The validations have been done in client side. Do we need to do them again? > > Yes we do. As design, we don't trust client code (renderer could be corrupted), > so we always validate fully on service side. Is there an easy method to get similar variables like "capabilities_.max_transform_feedback_separate_attribs" and "capabilities_.max_uniform_buffer_bindings" in server side? I didn't see similar code in gles3_cmd_decoder.cc.
On 2016/03/07 02:51:34, qiankun wrote: > On 2016/03/07 02:43:39, Zhenyao Mo wrote: > > On 2016/03/03 10:14:15, qiankun wrote: > > > > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... > > > File gpu/command_buffer/client/gles2_implementation.cc (right): > > > > > > > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... > > > gpu/command_buffer/client/gles2_implementation.cc:3823: switch (target) { > > > On 2016/03/02 17:09:36, Zhenyao Mo wrote: > > > > You will need to validate index before caching the binding. > > > > > > Done. > > > > > > > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... > > > File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): > > > > > > > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... > > > gpu/command_buffer/service/gles2_cmd_decoder.cc:4540: > > > state_.SetBoundBuffer(target, buffer); > > > On 2016/03/02 17:09:36, Zhenyao Mo wrote: > > > > You will need to do all the validations before you can cache the state. > > > > > > The validations have been done in client side. Do we need to do them again? > > > > Yes we do. As design, we don't trust client code (renderer could be > corrupted), > > so we always validate fully on service side. > > Is there an easy method to get similar variables like > "capabilities_.max_transform_feedback_separate_attribs" and > "capabilities_.max_uniform_buffer_bindings" in server side? I didn't see similar > code in gles3_cmd_decoder.cc. No we don't. Assuming those get calls are trivia in GL, so it's not a big overhead to just query them on the service side. However, if you want to optimize, we could probably cache the caps in the decoder. See GLES2Decoder::GetCapabilities().
Description was changed from ========== Fix transform feedback bugs in blink This CL fixes two bugs: 1. Deleting an active transform feedback object will generate INVALID_OPERATION error (page 86, ES spec 3.0.4). 2. bindBufferBase bind the buffer object to both the general binding point and the binding point in the array givien by index (page 35, ES spec 3.0.4). BUG=295792, 591258 TEST=deqp/functional/gles3/lifetime.html CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Fix transform feedback bugs This CL fixes two bugs: 1. Deleting an active transform feedback object will generate INVALID_OPERATION error (page 86, ES spec 3.0.4). 2. bindBufferBase bind the buffer object to both the general binding point and the binding point in the array givien by index (page 35, ES spec 3.0.4). BUG=295792, 591258 TEST=deqp/functional/gles3/lifetime.html CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel ==========
On 2016/03/07 17:32:07, Zhenyao Mo wrote: > On 2016/03/07 02:51:34, qiankun wrote: > > On 2016/03/07 02:43:39, Zhenyao Mo wrote: > > > On 2016/03/03 10:14:15, qiankun wrote: > > > > > > > > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... > > > > File gpu/command_buffer/client/gles2_implementation.cc (right): > > > > > > > > > > > > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/clie... > > > > gpu/command_buffer/client/gles2_implementation.cc:3823: switch (target) { > > > > On 2016/03/02 17:09:36, Zhenyao Mo wrote: > > > > > You will need to validate index before caching the binding. > > > > > > > > Done. > > > > > > > > > > > > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... > > > > File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): > > > > > > > > > > > > > > https://codereview.chromium.org/1752703003/diff/20001/gpu/command_buffer/serv... > > > > gpu/command_buffer/service/gles2_cmd_decoder.cc:4540: > > > > state_.SetBoundBuffer(target, buffer); > > > > On 2016/03/02 17:09:36, Zhenyao Mo wrote: > > > > > You will need to do all the validations before you can cache the state. > > > > > > > > The validations have been done in client side. Do we need to do them > again? > > > > > > Yes we do. As design, we don't trust client code (renderer could be > > corrupted), > > > so we always validate fully on service side. > > > > Is there an easy method to get similar variables like > > "capabilities_.max_transform_feedback_separate_attribs" and > > "capabilities_.max_uniform_buffer_bindings" in server side? I didn't see > similar > > code in gles3_cmd_decoder.cc. > > No we don't. Assuming those get calls are trivia in GL, so it's not a big > overhead to just query them on the service side. > > However, if you want to optimize, we could probably cache the caps in the > decoder. See GLES2Decoder::GetCapabilities(). Thanks for pointing this. I updated the server side validation. Please take another look.
Sorry I didn't catch the wrong GL error in previous pass. https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/clie... File gpu/command_buffer/client/gles2_implementation.cc (right): https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/clie... gpu/command_buffer/client/gles2_implementation.cc:3828: SetGLError(GL_INVALID_OPERATION, INVALID_VALUE https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/clie... gpu/command_buffer/client/gles2_implementation.cc:3839: SetGLError(GL_INVALID_OPERATION, INVALID_VALUE https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:4542: int max_transform_feedback_separate_attribs; init it to 0 https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:4547: LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, INVALID_VALUE https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:4553: int max_uniform_buffer_bindings; init it to 0 https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:4557: LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, INVALID_VALUE https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc (right): https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc:1011: TEST_P(GLES2DecoderTest, BindBufferBaseValidArgs) { The tests look good, but can you move them to gles2_cmd_decoder_unittest_buffers.cc?
Thanks zhenyou! I updated the CL to fix your comments. https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/clie... File gpu/command_buffer/client/gles2_implementation.cc (right): https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/clie... gpu/command_buffer/client/gles2_implementation.cc:3828: SetGLError(GL_INVALID_OPERATION, On 2016/03/09 17:12:42, Zhenyao Mo wrote: > INVALID_VALUE Done. https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/clie... gpu/command_buffer/client/gles2_implementation.cc:3839: SetGLError(GL_INVALID_OPERATION, On 2016/03/09 17:12:42, Zhenyao Mo wrote: > INVALID_VALUE Done. https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:4542: int max_transform_feedback_separate_attribs; On 2016/03/09 17:12:42, Zhenyao Mo wrote: > init it to 0 Done. https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:4547: LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, On 2016/03/09 17:12:42, Zhenyao Mo wrote: > INVALID_VALUE Done. https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:4553: int max_uniform_buffer_bindings; On 2016/03/09 17:12:42, Zhenyao Mo wrote: > init it to 0 Done. https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder.cc:4557: LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, On 2016/03/09 17:12:42, Zhenyao Mo wrote: > INVALID_VALUE Done. https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... File gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc (right): https://codereview.chromium.org/1752703003/diff/80001/gpu/command_buffer/serv... gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc:1011: TEST_P(GLES2DecoderTest, BindBufferBaseValidArgs) { On 2016/03/09 17:12:42, Zhenyao Mo wrote: > The tests look good, but can you move them to > gles2_cmd_decoder_unittest_buffers.cc? Done.
WebGL2RenderingContextBase.cpp lgtm. zmo@ should re-review the command buffer code.
lgtm
The CQ bit was checked by qiankun.miao@intel.com
The patchset sent to the CQ was uploaded after l-g-t-m from bajones@chromium.org Link to the patchset: https://codereview.chromium.org/1752703003/#ps100001 (title: "fix error msg")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752703003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752703003/100001
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by qiankun.miao@intel.com
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752703003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752703003/100001
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: linux_chromium_chromeos_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by qiankun.miao@intel.com
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1752703003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1752703003/100001
Message was sent while issue was closed.
Description was changed from ========== Fix transform feedback bugs This CL fixes two bugs: 1. Deleting an active transform feedback object will generate INVALID_OPERATION error (page 86, ES spec 3.0.4). 2. bindBufferBase bind the buffer object to both the general binding point and the binding point in the array givien by index (page 35, ES spec 3.0.4). BUG=295792, 591258 TEST=deqp/functional/gles3/lifetime.html CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Fix transform feedback bugs This CL fixes two bugs: 1. Deleting an active transform feedback object will generate INVALID_OPERATION error (page 86, ES spec 3.0.4). 2. bindBufferBase bind the buffer object to both the general binding point and the binding point in the array givien by index (page 35, ES spec 3.0.4). BUG=295792, 591258 TEST=deqp/functional/gles3/lifetime.html CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel ==========
Message was sent while issue was closed.
Committed patchset #6 (id:100001)
Message was sent while issue was closed.
Description was changed from ========== Fix transform feedback bugs This CL fixes two bugs: 1. Deleting an active transform feedback object will generate INVALID_OPERATION error (page 86, ES spec 3.0.4). 2. bindBufferBase bind the buffer object to both the general binding point and the binding point in the array givien by index (page 35, ES spec 3.0.4). BUG=295792, 591258 TEST=deqp/functional/gles3/lifetime.html CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Fix transform feedback bugs This CL fixes two bugs: 1. Deleting an active transform feedback object will generate INVALID_OPERATION error (page 86, ES spec 3.0.4). 2. bindBufferBase bind the buffer object to both the general binding point and the binding point in the array givien by index (page 35, ES spec 3.0.4). BUG=295792, 591258 TEST=deqp/functional/gles3/lifetime.html CQ_INCLUDE_TRYBOTS=tryserver.chromium.win:win_optional_gpu_tests_rel Committed: https://crrev.com/4c10b3e03cdf3028c9e66aaa4d4e9236c856cf68 Cr-Commit-Position: refs/heads/master@{#380610} ==========
Message was sent while issue was closed.
Patchset 6 (id:??) landed as https://crrev.com/4c10b3e03cdf3028c9e66aaa4d4e9236c856cf68 Cr-Commit-Position: refs/heads/master@{#380610} |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
