changeset 1168:f308a6bd5479 draft

minor change
author yutaka@charles
date Sun, 22 May 2011 19:31:18 +0900
parents d8b5648668bb
children b93ff55ba015
files Renderer/Engine/Makefile.def Renderer/Engine/polygon_pack.h Renderer/Engine/spe/AllocateSegment.cc Renderer/Engine/spe/CreateSpan.cc Renderer/Engine/task/AllocateSegment.cc Renderer/Engine/task/CreateSpan.cc
diffstat 6 files changed, 9 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/Renderer/Engine/Makefile.def	Sat May 21 19:21:41 2011 +0900
+++ b/Renderer/Engine/Makefile.def	Sun May 22 19:31:18 2011 +0900
@@ -6,7 +6,7 @@
 ABI = -m$(ABIBIT)
 CC      = g++
 #OPT	=  -g -DUSE_TASKARRAY -DUSE_PIPELINE -DUSE_SEGMENT 
- OPT	= -O9 -DUSE_TASKARRAY -DUSE_PIPELINE #-DUSE_SEGMENT  
+ OPT	= -O9 -DUSE_TASKARRAY -DUSE_PIPELINE -DUSE_SEGMENT  
 
 CFLAGS  = -Wall $(ABI) $(OPT)  #  -DDEBUG
 
--- a/Renderer/Engine/polygon_pack.h	Sat May 21 19:21:41 2011 +0900
+++ b/Renderer/Engine/polygon_pack.h	Sun May 22 19:31:18 2011 +0900
@@ -4,7 +4,7 @@
 #include "types.h"
 
 #define MAX_SIZE_TRIANGLE 128
-//#define MAX_SIZE_TRIANGLE 1
+//#define MAX_SIZE_TRIANGLE 64
 
 #define POLYGONPACK_SEGMENT_NUM 2
 
--- a/Renderer/Engine/spe/AllocateSegment.cc	Sat May 21 19:21:41 2011 +0900
+++ b/Renderer/Engine/spe/AllocateSegment.cc	Sun May 22 19:31:18 2011 +0900
@@ -26,15 +26,14 @@
      * SpanPack size 3888
      *
      * texture tile の size 内でやりくりすれば、問題なく動くのだが、、
-     *p 32768 - (14384 * 2) - (3888 * 2) = -3776 、でマイナス。
-     * MAX_TILE を 128 から 64 に落としたら動いた。
+     * 32768 - (14384 * 2) - (3888 * 2) = -3776 、でマイナス。
+     * MAX_TILE を 128 から 64 に落としたら動いた
+     * texture をキャッシュしないなら MAX_TILE は 2 でいい。2つのSegmentを使って、double buffering する感じ。
      */
 
     MemList *ml = smanager->createMemList(sizeof(uint32) * TEXTURE_BLOCK_SIZE, MAX_TILE);
     smanager->global_set(GLOBAL_TILE_LIST, (void *)ml);
 
-    /*LSに入らないみたい。Code Load やるか*/
-
 #ifdef USE_SEGMENT
 
     ml = smanager->createMemList(sizeof(PolygonPack), POLYGONPACK_SEGMENT_NUM);
--- a/Renderer/Engine/spe/CreateSpan.cc	Sat May 21 19:21:41 2011 +0900
+++ b/Renderer/Engine/spe/CreateSpan.cc	Sun May 22 19:31:18 2011 +0900
@@ -550,7 +550,6 @@
     NormalPackPtr normal1,normal2, normal3;
     SpanPackPtr *spackList = (SpanPackPtr*)smanager->get_input(rbuf, 1);
 
-    send_spack = (SpanPackPtr)smanager->allocate(sizeof(SpanPack));
     prev_index = (long)smanager->get_param(0);
 
 
@@ -564,6 +563,7 @@
 #else
 
     spack = (SpanPackPtr)smanager->get_input(rbuf, 2);
+    send_spack = (SpanPackPtr)smanager->allocate(sizeof(SpanPack));
 
     // spack と send_spack は swap しながら DMA を繰り返すので
     // 自分で allocate した send_spack を覚えてないといけない
--- a/Renderer/Engine/task/AllocateSegment.cc	Sat May 21 19:21:41 2011 +0900
+++ b/Renderer/Engine/task/AllocateSegment.cc	Sun May 22 19:31:18 2011 +0900
@@ -27,14 +27,13 @@
      *
      * texture tile の size 内でやりくりすれば、問題なく動くのだが、、
      * 32768 - (14384 * 2) - (3888 * 2) = -3776 、でマイナス。
-     * MAX_TILE を 128 から 64 に落としたら動いた。
+     * MAX_TILE を 128 から 64 に落としたら動いた
+     * texture をキャッシュしないなら MAX_TILE は 2 でいい。2つのSegmentを使って、double buffering する感じ。
      */
 
     MemList *ml = smanager->createMemList(sizeof(uint32) * TEXTURE_BLOCK_SIZE, MAX_TILE);
     smanager->global_set(GLOBAL_TILE_LIST, (void *)ml);
 
-    /*LSに入らないみたい。Code Load やるか*/
-
 #ifdef USE_SEGMENT
 
     ml = smanager->createMemList(sizeof(PolygonPack), POLYGONPACK_SEGMENT_NUM);
--- a/Renderer/Engine/task/CreateSpan.cc	Sat May 21 19:21:41 2011 +0900
+++ b/Renderer/Engine/task/CreateSpan.cc	Sun May 22 19:31:18 2011 +0900
@@ -550,7 +550,6 @@
     NormalPackPtr normal1,normal2, normal3;
     SpanPackPtr *spackList = (SpanPackPtr*)smanager->get_input(rbuf, 1);
 
-    send_spack = (SpanPackPtr)smanager->allocate(sizeof(SpanPack));
     prev_index = (long)smanager->get_param(0);
 
 
@@ -564,6 +563,7 @@
 #else
 
     spack = (SpanPackPtr)smanager->get_input(rbuf, 2);
+    send_spack = (SpanPackPtr)smanager->allocate(sizeof(SpanPack));
 
     // spack と send_spack は swap しながら DMA を繰り返すので
     // 自分で allocate した send_spack を覚えてないといけない