I have a weird problem: When running qt apps that use compositing, sometimes my monitor randomly shuts off. It only happens when doing compositing, hasn't happened at any other time yet, and always when I run an app, that has not been thoroughly tested for bugs. I am wondering, if there is some fault mechanism in the Radeon, that makes it shut off on wrong usage??
EDIT: It doesn't seem to be a performance issue, since Hans's composite demo can run for ages without shutting down. Only (possibly) faulty Qt apps display the behavior...
Edited by alfkil on 2012/3/20 16:51:26 Edited by alfkil on 2012/3/26 17:02:28
Maybe you must add +RB on the screenmodes in the Radeon Monitor file
Didn't solve it, no...
Quote:
I've had the monitor / video card shutdown after a really nasty crash before, not often though, and not repeatably.
It happens very consistently with this one app. I have a hard time seeing whether it is a hw or sw issue, and I have a hard time debugging the app under these conditions...
@alkfil Sorry that not real help, but just in case of small help: brothers do not check forums , so you for sure need to try to write about in os4-invite list, as they check it and there is more luck to catch a help about.
...but all I get is some wrong value or "infl" (or smth)... (I have also tried "%fl", it doesn't help).
I've had this problem on OS3, my suggestion is to create a wrapper function something like:
int DebugPrintDouble (const char * const str_p, const double d)
{
/* Get the length of the string, the size of the number before the decimal point, plus 10 for the decimal point, the fraction, the terminating NULL and the space. */
size_t buffer_size = strlen (str_p) + ceil (log10 (d)) + 10;
int result = 0;
No DebugPrintf doesn't use RawDoFmt else it would output '%f' unmodified and it clearly makes some attempt to process the float, but does it incorrectly
broadblues wrote: No DebugPrintf doesn't use RawDoFmt else it would output '%f' unmodified and it clearly makes some attempt to process the float, but does it incorrectly
Are you sure? Wouldn't the format string need to be "%%f" to print out "%f" since you'd need to escape the % as it's a reserved char.
I had a similar problem when i used on of the app available on os4depot that Friedens developed to show the compositing. In my case, i had a switch off for some seconds and then on and it happens only when using that app and compositing.. Never understood why..
@all I hope alfkil will forgive me as its he should answer about, but seems he have no time, so: he fix it already. The problem was that there is some limitations of the gfx cards (and so in compositing because of that), which mean that there is some limit of pushed triangles at one push. Alfkil limit it, and all is fine. There wasn't any checking on limits in compositing code, just because no one think that someone will try to put to compositing a lot of stuff at one push.
Are you sure? Wouldn't the format string need to be "%%f" to print out "%f" since you'd need to escape the % as it's a reserved char.
Would have to check about the % but I do know for certain that the 'f' is ignored by RawDoFmt so whether it outputs '%f' or just 'f' it clearly doesn't output a malformed floating point number which is what appears to happen in this case.
I am using DVI, but it doesn't matter, problem has been solved. It happens when there is a buffer overflow, that is when you are trying to draw too many triangles in one call to CompositeTags(). Setting a buffer limit to 512 triangles does it.