Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[Manta] r1810 - in trunk: Engine/Control Interface


Chronological Thread 
  • From: boulos@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [Manta] r1810 - in trunk: Engine/Control Interface
  • Date: Sat, 3 Nov 2007 23:02:13 -0600 (MDT)

Author: boulos
Date: Sat Nov  3 23:02:12 2007
New Revision: 1810

Modified:
   trunk/Engine/Control/RTRT.cc
   trunk/Interface/Transaction.h
Log:
Interface/Transaction.h

 Adding a new NO_UPDATE type of Transaction that signals that the
 transaction doesn't require a re-render. I originally called this
 idempotent (but it's not) and then thought about side effect
 free. NO_UPDATE seems simpler though.

Engine/Control/RTRT.cc

 If the type of transaction is a NO_UPDATE then don't set the update
 bool to true (avoiding unnecessary pipeline restart), otherwise do
 set it.


Modified: trunk/Engine/Control/RTRT.cc
==============================================================================
--- trunk/Engine/Control/RTRT.cc        (original)
+++ trunk/Engine/Control/RTRT.cc        Sat Nov  3 23:02:12 2007
@@ -965,7 +965,6 @@
 
     // Lock the queue.
     transaction_lock.lock();
-    changed = true;
 
     while (transactions.size()) {
       // Pop the first transaction from the queue.
@@ -988,15 +987,20 @@
       // Determine if the transaction contains any queue operations.
       if (flag == TransactionBase::CONTINUE) {
         // Stop processing transactions and continue the pipeline.
+        changed = true;
         break;
       }
       else if (flag == TransactionBase::PURGE) {
         // Remove all remaining transactions from the queue.
+        changed = true;
         while (transactions.size()) {
           transaction = *(transactions.begin());
           transactions.pop_front();
           delete transaction;
         }
+      }
+      else if (flag == TransactionBase::NO_UPDATE) {
+        // Do nothing and don't set changed
       }
     }
 

Modified: trunk/Interface/Transaction.h
==============================================================================
--- trunk/Interface/Transaction.h       (original)
+++ trunk/Interface/Transaction.h       Sat Nov  3 23:02:12 2007
@@ -19,7 +19,8 @@
                     // (Until either all are processed or another flag is 
encountered.)
       CONTINUE,     // Process this transaction and then continue render.
                     // (Other transactions processed following the next 
frame.)
-      PURGE         // Process this transaction and then purge all remaining 
from the queue.
+      PURGE,        // Process this transaction and then purge all remaining 
from the queue.
+      NO_UPDATE     // This transaction shouldn't update the changed bit for 
the pipeline
     };
 
     virtual void apply() = 0;




  • [Manta] r1810 - in trunk: Engine/Control Interface, boulos, 11/04/2007

Archive powered by MHonArc 2.6.16.

Top of page