Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(874)

Side by Side Diff: third_party/WebKit/Source/platform/graphics/gpu/DrawingBufferTest.cpp

Issue 1812363002: Remove genSyncTokenCHROMIUM from WebGraphicsContext3D. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@simples-tplus
Patch Set: gensynctoken: rebase Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 MOCK_METHOD1(ReleaseTexImage2DMock, void(GLint imageId)); 156 MOCK_METHOD1(ReleaseTexImage2DMock, void(GLint imageId));
157 void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) 157 void ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId)
158 { 158 {
159 if (target == imageTextureTarget()) { 159 if (target == imageTextureTarget()) {
160 m_imageSizes.set(m_currentImageId, IntSize()); 160 m_imageSizes.set(m_currentImageId, IntSize());
161 m_imageToTextureMap.remove(imageId); 161 m_imageToTextureMap.remove(imageId);
162 ReleaseTexImage2DMock(imageId); 162 ReleaseTexImage2DMock(imageId);
163 } 163 }
164 } 164 }
165 165
166 void GenSyncTokenCHROMIUM(GLuint64 fenceSync, GLbyte* syncToken) override
167 {
168 memcpy(syncToken, &fenceSync, sizeof(fenceSync));
169 }
170
166 uint32_t boundTexture() const { return m_boundTexture; } 171 uint32_t boundTexture() const { return m_boundTexture; }
167 uint32_t boundTextureTarget() const { return m_boundTextureTarget; } 172 uint32_t boundTextureTarget() const { return m_boundTextureTarget; }
168 uint32_t mostRecentlyWaitedSyncToken() const { return m_mostRecentlyWaitedSy ncToken; } 173 uint32_t mostRecentlyWaitedSyncToken() const { return m_mostRecentlyWaitedSy ncToken; }
169 uint32_t currentImageId() const { return m_currentImageId; } 174 uint32_t currentImageId() const { return m_currentImageId; }
170 IntSize mostRecentlyProducedSize() const { return m_mostRecentlyProducedSize ; } 175 IntSize mostRecentlyProducedSize() const { return m_mostRecentlyProducedSize ; }
171 bool allowImageChromium() const { return m_allowImageChromium; } 176 bool allowImageChromium() const { return m_allowImageChromium; }
172 177
173 void setAllowImageChromium(bool allow) { m_allowImageChromium = allow; } 178 void setAllowImageChromium(bool allow) { m_allowImageChromium = allow; }
174 179
175 private: 180 private:
176 uint32_t m_boundTexture = 0; 181 uint32_t m_boundTexture = 0;
177 uint32_t m_boundTextureTarget = 0; 182 uint32_t m_boundTextureTarget = 0;
178 uint32_t m_mostRecentlyWaitedSyncToken = 0; 183 uint32_t m_mostRecentlyWaitedSyncToken = 0;
179 WGC3Dbyte m_currentMailboxByte = 0; 184 WGC3Dbyte m_currentMailboxByte = 0;
180 IntSize m_mostRecentlyProducedSize; 185 IntSize m_mostRecentlyProducedSize;
181 bool m_allowImageChromium = true; 186 bool m_allowImageChromium = true;
182 uint32_t m_currentImageId = 1; 187 uint32_t m_currentImageId = 1;
183 HashMap<uint32_t, IntSize> m_textureSizes; 188 HashMap<uint32_t, IntSize> m_textureSizes;
184 HashMap<uint32_t, IntSize> m_imageSizes; 189 HashMap<uint32_t, IntSize> m_imageSizes;
185 HashMap<uint32_t, uint32_t> m_imageToTextureMap; 190 HashMap<uint32_t, uint32_t> m_imageToTextureMap;
186 }; 191 };
187 192
188 class WebGraphicsContext3DForTests : public MockWebGraphicsContext3D { 193 class WebGraphicsContext3DForTests : public MockWebGraphicsContext3D {
189 public: 194 public:
190 WebGraphicsContext3DForTests(PassOwnPtr<GLES2InterfaceForTests> contextGL) 195 WebGraphicsContext3DForTests(PassOwnPtr<GLES2InterfaceForTests> contextGL)
191 : m_contextGL(std::move(contextGL)) 196 : m_contextGL(std::move(contextGL))
192 { 197 {
193 } 198 }
194 199
195 bool genSyncTokenCHROMIUM(WGC3Duint64 fenceSync, WGC3Dbyte* syncToken) overr ide
196 {
197 memcpy(syncToken, &fenceSync, sizeof(fenceSync));
198 return true;
199 }
200
201 WGC3Duint mostRecentlyWaitedSyncToken() 200 WGC3Duint mostRecentlyWaitedSyncToken()
202 { 201 {
203 return m_contextGL->mostRecentlyWaitedSyncToken(); 202 return m_contextGL->mostRecentlyWaitedSyncToken();
204 } 203 }
205 204
206 IntSize mostRecentlyProducedSize() 205 IntSize mostRecentlyProducedSize()
207 { 206 {
208 return m_contextGL->mostRecentlyProducedSize(); 207 return m_contextGL->mostRecentlyProducedSize();
209 } 208 }
210 209
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 WebExternalTextureMailbox mailbox; 454 WebExternalTextureMailbox mailbox;
456 455
457 // Produce mailboxes. 456 // Produce mailboxes.
458 m_drawingBuffer->markContentsChanged(); 457 m_drawingBuffer->markContentsChanged();
459 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken()); 458 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken());
460 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 459 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
461 // prepareMailbox() does not wait for any sync point. 460 // prepareMailbox() does not wait for any sync point.
462 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken()); 461 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken());
463 462
464 WGC3Duint64 waitSyncToken = 0; 463 WGC3Duint64 waitSyncToken = 0;
465 webContext()->genSyncTokenCHROMIUM(m_gl->InsertFenceSyncCHROMIUM(), reinterp ret_cast<WGC3Dbyte*>(&waitSyncToken)); 464 m_gl->GenSyncTokenCHROMIUM(m_gl->InsertFenceSyncCHROMIUM(), reinterpret_cast <WGC3Dbyte*>(&waitSyncToken));
466 memcpy(mailbox.syncToken, &waitSyncToken, sizeof(waitSyncToken)); 465 memcpy(mailbox.syncToken, &waitSyncToken, sizeof(waitSyncToken));
467 mailbox.validSyncToken = true; 466 mailbox.validSyncToken = true;
468 m_drawingBuffer->mailboxReleased(mailbox, false); 467 m_drawingBuffer->mailboxReleased(mailbox, false);
469 // m_drawingBuffer will wait for the sync point when recycling. 468 // m_drawingBuffer will wait for the sync point when recycling.
470 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken()); 469 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken());
471 470
472 m_drawingBuffer->markContentsChanged(); 471 m_drawingBuffer->markContentsChanged();
473 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 472 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
474 // m_drawingBuffer waits for the sync point when recycling in prepareMailbox (). 473 // m_drawingBuffer waits for the sync point when recycling in prepareMailbox ().
475 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken()); 474 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken());
476 475
477 m_drawingBuffer->beginDestruction(); 476 m_drawingBuffer->beginDestruction();
478 webContext()->genSyncTokenCHROMIUM(m_gl->InsertFenceSyncCHROMIUM(), reinterp ret_cast<WGC3Dbyte*>(&waitSyncToken)); 477 m_gl->GenSyncTokenCHROMIUM(m_gl->InsertFenceSyncCHROMIUM(), reinterpret_cast <WGC3Dbyte*>(&waitSyncToken));
479 memcpy(mailbox.syncToken, &waitSyncToken, sizeof(waitSyncToken)); 478 memcpy(mailbox.syncToken, &waitSyncToken, sizeof(waitSyncToken));
480 mailbox.validSyncToken = true; 479 mailbox.validSyncToken = true;
481 m_drawingBuffer->mailboxReleased(mailbox, false); 480 m_drawingBuffer->mailboxReleased(mailbox, false);
482 // m_drawingBuffer waits for the sync point because the destruction is in pr ogress. 481 // m_drawingBuffer waits for the sync point because the destruction is in pr ogress.
483 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken()); 482 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken());
484 } 483 }
485 484
486 class DrawingBufferImageChromiumTest : public DrawingBufferTest { 485 class DrawingBufferImageChromiumTest : public DrawingBufferTest {
487 protected: 486 protected:
488 void SetUp() override 487 void SetUp() override
(...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 } 728 }
730 729
731 TEST_F(DrawingBufferTest, verifySetIsHiddenProperlyAffectsMailboxes) 730 TEST_F(DrawingBufferTest, verifySetIsHiddenProperlyAffectsMailboxes)
732 { 731 {
733 blink::WebExternalTextureMailbox mailbox; 732 blink::WebExternalTextureMailbox mailbox;
734 733
735 // Produce mailboxes. 734 // Produce mailboxes.
736 m_drawingBuffer->markContentsChanged(); 735 m_drawingBuffer->markContentsChanged();
737 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 736 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
738 737
739 mailbox.validSyncToken = webContext()->genSyncTokenCHROMIUM(m_gl->InsertFenc eSyncCHROMIUM(), mailbox.syncToken); 738 m_gl->GenSyncTokenCHROMIUM(m_gl->InsertFenceSyncCHROMIUM(), mailbox.syncToke n);
739 mailbox.validSyncToken = true;
740 m_drawingBuffer->setIsHidden(true); 740 m_drawingBuffer->setIsHidden(true);
741 m_drawingBuffer->mailboxReleased(mailbox); 741 m_drawingBuffer->mailboxReleased(mailbox);
742 // m_drawingBuffer deletes mailbox immediately when hidden. 742 // m_drawingBuffer deletes mailbox immediately when hidden.
743 743
744 WGC3Duint waitSyncToken = 0; 744 WGC3Duint waitSyncToken = 0;
745 memcpy(&waitSyncToken, mailbox.syncToken, sizeof(waitSyncToken)); 745 memcpy(&waitSyncToken, mailbox.syncToken, sizeof(waitSyncToken));
746 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken()); 746 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken());
747 747
748 m_drawingBuffer->beginDestruction(); 748 m_drawingBuffer->beginDestruction();
749 } 749 }
(...skipping 26 matching lines...) Expand all
776 m_drawingBuffer->markContentsChanged(); 776 m_drawingBuffer->markContentsChanged();
777 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 777 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
778 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize()); 778 EXPECT_EQ(initialSize, webContext()->mostRecentlyProducedSize());
779 EXPECT_FALSE(mailbox.allowOverlay); 779 EXPECT_FALSE(mailbox.allowOverlay);
780 780
781 m_drawingBuffer->mailboxReleased(mailbox, false); 781 m_drawingBuffer->mailboxReleased(mailbox, false);
782 m_drawingBuffer->beginDestruction(); 782 m_drawingBuffer->beginDestruction();
783 } 783 }
784 784
785 } // namespace blink 785 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698