Mercurial > hg > Game > Cerium
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 を覚えてないといけない