Sh

Issue320

Title Particles example broken on NVIDIA using the ARB backend
Priority bug Status chatting
Difficulty easy Milestone 0.8.0
Superseder Nosy List francois
Assigned To Topics

Created on 2006-02-13.22:05:44 by francois, last changed 2006-02-15.22:28:42 by francois.

Messages
msg894 (view) Author: francois Date: 2006-02-15.22:28:15
Doing only one pass (not breaking up the pos and vel updates) solves the
problem.  Probably due to the fact that we're not removing the dead code
(position update) which cause problems, since it's not dead anymore...
So using FBOs or just using the draw buffers extension with PBuffers should
work-around this bug.
msg893 (view) Author: francois Date: 2006-02-15.22:17:14
It works on ATI and it seems to work on NVIDIA 7174 drivers (using either the
ARB or GLSL backends).
It also works on the latest NVIDIA drivers using GLSL.
If we generate the same ARB code than on ATI (using CMP instead of COND, 2D
textures instead of RECT), it still doesn't work on NVIDIA with the given drivers.
It does work on ARB when we remove the amount of dead code that gets eliminated
by commenting out the hasDecl() line.  The extra code that stays there doesn't
affect anything except that it may change the register allocation.
This is starting to smell like a driver bug...
msg885 (view) Author: francois Date: 2006-02-13.22:05:44
The particles now fly into space both on Windows (8198) and Linux (8178).
If one uncomments ShOptimizations.cpp:268, it works as expected:
  //          || !p->hasDecl(I->dest.node())
History
Date User Action Args
2006-02-15 22:28:42francoissetmilestone: 0.8.0
2006-02-15 22:28:15francoissetmessages: + msg894
2006-02-15 22:17:15francoissetstatus: unread -> chatting
assignedto: francois ->
milestone: 0.8.0rc1 -> (no value)
messages: + msg893
title: Particles example broken on NVIDIA -> Particles example broken on NVIDIA using the ARB backend
2006-02-13 22:05:44francoiscreate