Hi,
I have a strange problem with the scatter procject.
If i add a classical kernel in the file scatter.br i have some strange behaviour during the build
Examples:
"
WARNING: ASSERT(GetResultSymbol().IsValid() + mDataTypeValue.IsValid() >= 1) failed
1>While processing :72
1>In compiler at AST:elayedLookup::ResolveSymbols()[astdelayedlookup.cpp:139]
1> *mName = c
1>Message: unknown symbol
1>WARNING: ASSERT(GetResultSymbol().IsValid() + mDataTypeValue.IsValid() >= 1) failed
1>While processing :82
1>In compiler at AST:elayedLookup::ResolveSymbols()[astdelayedlookup.cpp:139]
1> *mName = c
"
Moreover, when i add a scatter function in another project which gives some good results i have the same problem of build and i have a crash whereas the new scatter function is not called in my code !!!
Example of crash :
Invalid Buffer, unable to write to file
Assertion failure: calcontext.cpp (807): Problem compiling shader with calclComp
ile.
Assertion failed: 0, file c:\brookamd\platform\runtime\src\cal\calbase.hpp, line
92
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
In details, i have put this scatter function gives in scatter's project :
kernel
void scatter(float4 a[][], float4 b<>, float
width, out float4 c[])
{
// Get the position in the stream of the current thread
float
idx = indexof(c);
float2 apos = {idx % width, floor(idx / width) };
// Write out to the scatter buffer
c[idx] = a[apos] + b;
}
The kernel scatter is not called by any functions and i have a crash, if i don't put this function in my br files i have not any problem.
I have tried to link with amdcalcl.lib, amdcalrt.lib and calutAMDhlslCompiler.lib but i have always the same probleme
Thanks in advance
Best regards
Jonathan
Thanks but i have a HD3870
....
Another bug in the scatter project
If in one scatter kernel , i change the exit c by d i have the same warning in code generation
it's very strange
I also get the same error. Whenever I use a scatter kernel, like this one:
kernel void scatter(float4 a<>, out float4 b[])
{
b[0] = a + 1;
}
the program aborts with the error message:
Invalid Buffer, unable to write to file
Assertion failure: calcontext.cpp (807): Problem compiling shader with calclCompile.
test2: calbase.hpp:92: void CALAssertImpl(const char*, int, const char*): Assertion `0' failed.
Aborted
The warning messages that Jonathan describes disappear when the program is very short, but it still crashes at runtime. Is this a hardware incompatibility? My card is a HD 2600 pro. Unfortunately, software emulation (brcc -p cpu) also won't work, it crashes even earlier.
Ingo
Originally posted by: ryta1203
Is this related to the fact that each kernel has to have the same "out" variable? I get the same error when I have two kernels with different outs.
Is this the way it was meant to be implemented?
Oh I got a solution to a problem from this thread
Edit:Removed Advertising from the post