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

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

Issue 1459043003: Revert "Replaced blink sync points with new sync tokens." (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 ASSERT_EQ(target, static_cast<WGC3Denum>(GL_TEXTURE_2D)); 84 ASSERT_EQ(target, static_cast<WGC3Denum>(GL_TEXTURE_2D));
85 ASSERT_TRUE(m_textureSizes.contains(texture)); 85 ASSERT_TRUE(m_textureSizes.contains(texture));
86 m_mostRecentlyProducedSize = m_textureSizes.get(texture); 86 m_mostRecentlyProducedSize = m_textureSizes.get(texture);
87 } 87 }
88 88
89 IntSize mostRecentlyProducedSize() 89 IntSize mostRecentlyProducedSize()
90 { 90 {
91 return m_mostRecentlyProducedSize; 91 return m_mostRecentlyProducedSize;
92 } 92 }
93 93
94 WGC3Duint64 insertFenceSyncCHROMIUM() override 94 bool insertSyncPoint(WGC3Dbyte* syncToken) override
95 { 95 {
96 static WGC3Duint64 syncPointGenerator = 0; 96 static WGC3Duint syncPointGenerator = 0;
97 return ++syncPointGenerator; 97 WGC3Duint newSyncPoint = ++syncPointGenerator;
98 } 98 memcpy(syncToken, &newSyncPoint, sizeof(newSyncPoint));
99
100 bool genSyncTokenCHROMIUM(WGC3Duint64 fenceSync, WGC3Dbyte* syncToken) overr ide
101 {
102 memcpy(syncToken, &fenceSync, sizeof(fenceSync));
103 return true; 99 return true;
104 } 100 }
105 101
106 void waitSyncTokenCHROMIUM(const WGC3Dbyte* syncToken) override 102 void waitSyncToken(const WGC3Dbyte* syncToken) override
107 { 103 {
108 memcpy(&m_mostRecentlyWaitedSyncToken, syncToken, sizeof(m_mostRecentlyW aitedSyncToken)); 104 memcpy(&m_mostRecentlyWaitedSyncToken, syncToken, sizeof(m_mostRecentlyW aitedSyncToken));
109 } 105 }
110 106
111 WGC3Duint createGpuMemoryBufferImageCHROMIUM(WGC3Dsizei width, WGC3Dsizei he ight, WGC3Denum internalformat, WGC3Denum usage) override 107 WGC3Duint createGpuMemoryBufferImageCHROMIUM(WGC3Dsizei width, WGC3Dsizei he ight, WGC3Denum internalformat, WGC3Denum usage) override
112 { 108 {
113 m_imageSizes.set(m_currentImageId, IntSize(width, height)); 109 m_imageSizes.set(m_currentImageId, IntSize(width, height));
114 return m_currentImageId++; 110 return m_currentImageId++;
115 } 111 }
116 112
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 { 394 {
399 WebExternalTextureMailbox mailbox; 395 WebExternalTextureMailbox mailbox;
400 396
401 // Produce mailboxes. 397 // Produce mailboxes.
402 m_drawingBuffer->markContentsChanged(); 398 m_drawingBuffer->markContentsChanged();
403 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken()); 399 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken());
404 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 400 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
405 // prepareMailbox() does not wait for any sync point. 401 // prepareMailbox() does not wait for any sync point.
406 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken()); 402 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken());
407 403
408 WGC3Duint64 waitSyncToken = 0; 404 WGC3Duint waitSyncToken = 0;
409 webContext()->genSyncTokenCHROMIUM(webContext()->insertFenceSyncCHROMIUM(), reinterpret_cast<WGC3Dbyte*>(&waitSyncToken)); 405 webContext()->insertSyncPoint(reinterpret_cast<WGC3Dbyte*>(&waitSyncToken));
410 memcpy(mailbox.syncToken, &waitSyncToken, sizeof(waitSyncToken)); 406 memcpy(mailbox.syncToken, &waitSyncToken, sizeof(waitSyncToken));
411 mailbox.validSyncToken = true; 407 mailbox.validSyncToken = true;
412 m_drawingBuffer->mailboxReleased(mailbox, false); 408 m_drawingBuffer->mailboxReleased(mailbox, false);
413 // m_drawingBuffer will wait for the sync point when recycling. 409 // m_drawingBuffer will wait for the sync point when recycling.
414 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken()); 410 EXPECT_EQ(0u, webContext()->mostRecentlyWaitedSyncToken());
415 411
416 m_drawingBuffer->markContentsChanged(); 412 m_drawingBuffer->markContentsChanged();
417 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 413 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
418 // m_drawingBuffer waits for the sync point when recycling in prepareMailbox (). 414 // m_drawingBuffer waits for the sync point when recycling in prepareMailbox ().
419 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken()); 415 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken());
420 416
421 m_drawingBuffer->beginDestruction(); 417 m_drawingBuffer->beginDestruction();
422 webContext()->genSyncTokenCHROMIUM(webContext()->insertFenceSyncCHROMIUM(), reinterpret_cast<WGC3Dbyte*>(&waitSyncToken)); 418 webContext()->insertSyncPoint(reinterpret_cast<WGC3Dbyte*>(&waitSyncToken));
423 memcpy(mailbox.syncToken, &waitSyncToken, sizeof(waitSyncToken)); 419 memcpy(mailbox.syncToken, &waitSyncToken, sizeof(waitSyncToken));
424 mailbox.validSyncToken = true; 420 mailbox.validSyncToken = true;
425 m_drawingBuffer->mailboxReleased(mailbox, false); 421 m_drawingBuffer->mailboxReleased(mailbox, false);
426 // m_drawingBuffer waits for the sync point because the destruction is in pr ogress. 422 // m_drawingBuffer waits for the sync point because the destruction is in pr ogress.
427 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken()); 423 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken());
428 } 424 }
429 425
430 class DrawingBufferImageChromiumTest : public DrawingBufferTest { 426 class DrawingBufferImageChromiumTest : public DrawingBufferTest {
431 protected: 427 protected:
432 virtual void SetUp() 428 virtual void SetUp()
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
643 } 639 }
644 640
645 TEST_F(DrawingBufferTest, verifySetIsHiddenProperlyAffectsMailboxes) 641 TEST_F(DrawingBufferTest, verifySetIsHiddenProperlyAffectsMailboxes)
646 { 642 {
647 blink::WebExternalTextureMailbox mailbox; 643 blink::WebExternalTextureMailbox mailbox;
648 644
649 // Produce mailboxes. 645 // Produce mailboxes.
650 m_drawingBuffer->markContentsChanged(); 646 m_drawingBuffer->markContentsChanged();
651 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0)); 647 EXPECT_TRUE(m_drawingBuffer->prepareMailbox(&mailbox, 0));
652 648
653 mailbox.validSyncToken = webContext()->genSyncTokenCHROMIUM(webContext()->in sertFenceSyncCHROMIUM(), mailbox.syncToken); 649 mailbox.validSyncToken = webContext()->insertSyncPoint(mailbox.syncToken);
654 m_drawingBuffer->setIsHidden(true); 650 m_drawingBuffer->setIsHidden(true);
655 m_drawingBuffer->mailboxReleased(mailbox); 651 m_drawingBuffer->mailboxReleased(mailbox);
656 // m_drawingBuffer deletes mailbox immediately when hidden. 652 // m_drawingBuffer deletes mailbox immediately when hidden.
657 653
658 WGC3Duint waitSyncToken = 0; 654 WGC3Duint waitSyncToken = 0;
659 memcpy(&waitSyncToken, mailbox.syncToken, sizeof(waitSyncToken)); 655 memcpy(&waitSyncToken, mailbox.syncToken, sizeof(waitSyncToken));
660 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken()); 656 EXPECT_EQ(waitSyncToken, webContext()->mostRecentlyWaitedSyncToken());
661 657
662 m_drawingBuffer->beginDestruction(); 658 m_drawingBuffer->beginDestruction();
663 } 659 }
664 660
665 } // namespace blink 661 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698