'Texture lookups' Driver bug in ATI's drivers ?
category: general [glöplog]
Hello out there,
We have been writting some shaders the other day, to test the Radeon 9600.
The profile we have been using is the arbfp1.0. One of the things we tried was a 'blur' filter with
8 samples. It was working fine on GF fx, but refused to work on the Radeon. The error we got was
'too many indirections'. This is caused by having more than 4 dependent texture reads, on after the other.
(A dependent texture read is when you use the result of one texture lookup
,as the texture coordinates for another lookup.). This was not the case of course, as the TEX commands
had nothing to do with each other. After searching, I quote:
There is currently a driver bug in ATI's drivers that causes it to misinterpret some texture lookups
as dependent even if they are independent, thus overflowing the number of indirection limit.
Rearranging, and using temporaries everywhere, fixes it.
My question is whether anyone has noticed this problem,
and what exactly happens with Cg (where the arrangement of the asm instruction is performed in the 'background')
We have been writting some shaders the other day, to test the Radeon 9600.
The profile we have been using is the arbfp1.0. One of the things we tried was a 'blur' filter with
8 samples. It was working fine on GF fx, but refused to work on the Radeon. The error we got was
'too many indirections'. This is caused by having more than 4 dependent texture reads, on after the other.
(A dependent texture read is when you use the result of one texture lookup
,as the texture coordinates for another lookup.). This was not the case of course, as the TEX commands
had nothing to do with each other. After searching, I quote:
There is currently a driver bug in ATI's drivers that causes it to misinterpret some texture lookups
as dependent even if they are independent, thus overflowing the number of indirection limit.
Rearranging, and using temporaries everywhere, fixes it.
My question is whether anyone has noticed this problem,
and what exactly happens with Cg (where the arrangement of the asm instruction is performed in the 'background')
I haven't seen it myself, did you try emailing devrel@ati.com?
devrel@ati.com doesn't work anymore i think
Then just email to any of ATi dev guys, many of them sit on eg. DX mailing list (I used to mail to R.Huddy).
weird
ok now what about nvidia wold domination ?
( *slap* *slap* no! NO! let me go! *slap* slap* *slap* )
:)))))))))
ok now what about nvidia wold domination ?
( *slap* *slap* no! NO! let me go! *slap* slap* *slap* )
:)))))))))
the last time i sent an email to devrel@ati.com, i had an answer in less than one hour. To me, it sounds like ati's developper relations are at top. you should take advantage of it. ;)
The devrel address still works; I just confirmed with ATI.
grrr.
then their spamfilter hates me :S
then their spamfilter hates me :S
Ah, the good people at Nvidia replied and saved the day :
> Cg 1.2.1 supports a "MaxTexIndirections" profile
> option when compiling
> under arbfp1.
> If set to a value less than the maximum number of
> texture instructions,
> the compiler
> will attempt to minimize texture indirections by
> ordering instructions
> exactly as
> Kostas requests.
>
> MaxTexIndirections will be set to the appropriate
> value automatically if
> compiling
> via the Cg runtime and cgGLSetOptimalOptions() is
> called.
>
> If compiling offline, you can specify the option
> via, e.g.
> "cgc -profile arbfp1 -profileopts
> MaxTexIndirections=4 prog.cg"
No answer from ATI yet :-(
> Cg 1.2.1 supports a "MaxTexIndirections" profile
> option when compiling
> under arbfp1.
> If set to a value less than the maximum number of
> texture instructions,
> the compiler
> will attempt to minimize texture indirections by
> ordering instructions
> exactly as
> Kostas requests.
>
> MaxTexIndirections will be set to the appropriate
> value automatically if
> compiling
> via the Cg runtime and cgGLSetOptimalOptions() is
> called.
>
> If compiling offline, you can specify the option
> via, e.g.
> "cgc -profile arbfp1 -profileopts
> MaxTexIndirections=4 prog.cg"
No answer from ATI yet :-(