Hi,

On Thursday 28 February 2008 16:49:15 Ian Romanick wrote:
> Brian Paul wrote:
> | [EMAIL PROTECTED] wrote:
> |> Hello Ian,
> |>
> |> Am Donnerstag 28 Februar 2008 01:40:40 schrieb Ian Romanick:
> |>> [EMAIL PROTECTED] wrote:
> |>> | I tried the gallium branch on my ps3. Unfortunately, all opengl
> |>>
> |>> programs segfault. I'm not sure, but I remember that SDK 3.0 (on fc8)
> |>> was not supported - is this still the case?
> |>>
> |>> To build with SDK 3.0 you need to add "-DSPU_MAIN_PARAM_LONG_LONG" to
> |>> the SPU_CFLAGS.
> |>
> |> yes - this works!
> |>
> |> Now I'm wondering what are the expected fps in gears. With all (6) spu's
> |> running with 100% (from spu-top), I get 24 fps. This may be ok,
>
> because the
>
> |> driver is still in development. What I'm wondering is, what the spu
>
> are doing
>
> |> all the time...
>
> Compiling with -O should just about double that.

even three times with "-O2 -ffast-math -ftree-vectorize". My gcc-4.3 
miscompiles something with -O3, so glxinfo crashes in tgsi. Maybe this is 
related to this warning:

gcc -mcpu=cell -c -I. -I../../../../src/gallium/include 
-I../../../../src/gallium/auxiliary -I../../../../src/gallium/drivers 
-I../../../../include  -g -O2 -ftree-vectorize -ffast-math -Wall -Winline -fPIC 
-m32 -mabi=altivec -maltivec -I. 
-I/opt/ibm/cell-sdk/prototype/sysroot/usr/include -DGALLIUM_CELL  
util/tgsi_build.c -o util/tgsi_build.o
util/tgsi_build.c: In function ‘tgsi_compare_instruction_ext_nv’:
util/tgsi_build.c:851: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c:851: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c: In function ‘tgsi_compare_instruction_ext_label’:
util/tgsi_build.c:910: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c:910: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c: In function ‘tgsi_compare_instruction_ext_texture’:
util/tgsi_build.c:951: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c:951: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c: In function ‘tgsi_compare_src_register_ext_swz’:
util/tgsi_build.c:1074: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c:1074: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c: In function ‘tgsi_compare_src_register_ext_mod’:
util/tgsi_build.c:1145: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c:1145: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c: In function ‘tgsi_compare_dst_register_ext_concode’:
util/tgsi_build.c:1291: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c:1291: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c: In function ‘tgsi_compare_dst_register_ext_modulate’:
util/tgsi_build.c:1349: warning: dereferencing type-punned pointer will break 
strict-aliasing rules
util/tgsi_build.c:1349: warning: dereferencing type-punned pointer will break 
strict-aliasing rules


> | There's a few things going on.
> |
> | First, vertex transformation is pretty darn slow.  Initially, it was
> | being done on the PPU using a vertex program interpeter.  More recently,
> | Ian has been moved vertex transformation to the SPUs, but it's still
> | interpreted code.  I think it's actually slower than PPU-based
> | transformation because gears was running around 30 fps the other week.

thanks Brian for explanation, though I didn't understood much ;-)

> This is true.  Running vertex programs on the SPUs adds communication
> overhead to the interpreter overhead.  There's a lot that can be done to
> fix that, and I hope to get to it soon.

In fact, spu-top show 100% system-load on the spu's, so I don't think they do 
anything stressful (beside waiting for something). On the other hand, the 
examples programs (like matrix_mul) show 100% user-load. 

> The SPU shaders act like a remote procedure call for the 'shader->run'
> call in draw_vertex_shader_queue_flush.  After the vertex data makes one
> round trip through the SPUs, it is sent back up for rasterization.  This
> is clearly a poor architecture for Cell.
>
> We really want to move the whole draw elements call onto the SPUs.  The
> SPUs would process a few vertices at a time in the vertex shader and
> broadcast the results for rasterization.  I'm still doing research on
> intra-SPU communication.  Once I understand that a bit better, I should
> be able to come up with a good architecture.

Thanks for working on the cell port!

Greetings

        Marvin


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Mesa3d-dev mailing list
Mesa3d-dev@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to