cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

vlj
Journeyman III

TressFX port on OpenGL, sync issues in Release Mode : catalyst bug ?

Hi,

I'm trying to port TressFX 2.2 on OpenGL. The code is available on github :

https://github.com/vlj/YAGF/blob/master/examples/tfx.cpp

It requires OpenGL 4.3. So far the rendering part is complete except for shadows, and simulation doesnt support Hair guide yet.

However I'm having a strange issue, on Windows 8.1 64b with VS 2013 on R9 290X and Catalyst 14.12. In Debug mode everything always works fine, my code

display ruby's hair rotating for a couple of second and then stopping (to check that simulation works as intended).

But in Release mode sometimes (ie once every 2 or 3 run) the simulation seems to be partly skipped : only a couple of strands are moved, sometimes

the strands "warp" even with stable framerate...

If I disable simulation I'm getting a black screen in Release Mode (while in Debug Mode I get correct frame). Since it looks like a sync issue I'm over synchronising

everything but it doesnt help.
I've tried to narrow things a bit further, it looks like the first rendering pass doesnt get the correct vertex position (they are manually read from an SSBO, like DX11

sample does).

Is there a difference in the way Catalyst enforce sync in debug and release mode ?

Regards, Vincent.

0 Likes
1 Solution
gsellers
Staff

vlj wrote:



Is there a difference in the way Catalyst enforce sync in debug and release mode ?


No. Catalyst drivers are only release mode. They have no knowledge of whether your application is running in debug or release mode. As you suggested, this may be a timing issue. It could be the result of an uninitialized variable.

Thanks,

Graham

View solution in original post

0 Likes
2 Replies
gsellers
Staff

vlj wrote:



Is there a difference in the way Catalyst enforce sync in debug and release mode ?


No. Catalyst drivers are only release mode. They have no knowledge of whether your application is running in debug or release mode. As you suggested, this may be a timing issue. It could be the result of an uninitialized variable.

Thanks,

Graham

0 Likes
vlj
Journeyman III

Oops you're right, I forgot to initialise some value in my structs passed as constant buffers. Thank for the help !

0 Likes