On Mon, Jan 25, 2010 at 6:43 PM, Tristam MacDonald <[email protected]>wrote:

> On Mon, Jan 25, 2010 at 6:39 PM, Florian Bösch <[email protected]> wrote:
>
>>
>>  As I see it, the "perfect" opengl 3 application from the point of view
>> of khronos is one that generates all its drawing data once, and then
>> never updates or changes anything, also, you shall do it in the most
>> inflexible fashion humanly imaginable (since you already "agreed" that
>> you're doing their idea of a perfect application, right?).
>>
>
> No, no, no. This is definitely the mindset of a lot of programmers stuck in
> the 'proto-shader age', but it couldn't be farther from the truth.
>
> The new graphics programming model is implement your dynamism on the GPU
> (thus the move towards OpenCL / DX Compute). With the right techniques, you
> can do this today on GL 3 (and even GL 2) implementations.
>
> Look around at the fantastic work being done in GPU particle systems, fluid
> dynamics on the GPU, isosurface extraction (i.e. marching cubes) on the GPU,
> etc.
>

I hope you don't feel that I am beating up on you here - that certainly
isn't my intention. However, I thought it might be worth offering a further
word of clarification here.

While I don't think that Khronos and the ARB did a particularly good job
with OpenGL 3, the particular issues mentioned in this thread aren't their
fault. The trend towards inflexibility in the API isn't an arbitrary
decision by Khronos/ARB, instead it is a trend forced by the realities of
current graphics hardware.

While the CPU in a modern computer is fairly fast, main memory is
horrifically slow, and the bus connecting main memory to the graphics card
is slower still. When you compute on the CPU and then upload textures/vertex
buffers to the GPU, you hit every bottleneck possible in the process, and
end up stalling out the GPU while it waits for the bus transfer.

Computing directly on the GPU removes all of those bottlenecks, as the CPU
and bus are used solely to calculate and transfer control data to the GPU.
Further, the GPU is many, many times faster than the CPU at updating
vertex/pixel data - we are looking at 1,500+ shader cores on a
current-generation GPU, and unlike multiple cores in a CPU, it isn't
unreasonable to run them all flat out.

-- 
Tristam MacDonald
http://swiftcoder.wordpress.com/

-- 
You received this message because you are subscribed to the Google Groups 
"pyglet-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/pyglet-users?hl=en.

Reply via email to