const buffer declarations are random if more than one kernel has const
buffers
case 1:
kernel void test2(double a[2][3], double b[2][3], double c [2], double d1,
double d2, double d3, double d4, int n, double2 g1[], double g2[], double2
g3[], double2 g4[][], out double2 out1<>, out double out2<>)
{
}
kernel void test3(double a[3][3], double b[3][3], double c [3], double d1,
double d2, double d3, double d4, int n, double2 g1[], double g2[], double2
g3[], double2 g4[][], out double2 out1<>, out double2 out2<>)
{
}
const buffer declarations for above kernels
for test2 :
dcl_cb cb0[6]
dcl_cb cb1[6]
dcl_cb cb2[2]
dcl_cb cb3[5] // all are fine
for test3 :
dcl_cb cb0[9]
dcl_cb cb1[3]
dcl_cb cb2[5]
dcl_cb cb3[9] // order changes
case 2: define test3 first and test2 second
kernel void test3(double a[3][3], double b[3][3], double c [3], double d1,
double d2, double d3, double d4, int n, double2 g1[], double g2[], double2
g3[], double2 g4[][], out double2 out1<>, out double2 out2<>)
{
}
kernel void test2(double a[2][3], double b[2][3], double c [2], double d1,
double d2, double d3, double d4, int n, double2 g1[], double g2[], double2
g3[], double2 g4[][], out double2 out1<>, out double out2<>)
{
}
const buffer declarations for above kernels
for test3 :
dcl_cb cb0[9]
dcl_cb cb1[9]
dcl_cb cb2[3]
dcl_cb cb3[5] // all are fine
for test2 :
dcl_cb cb0[6]
dcl_cb cb1[5]
dcl_cb cb2[6]
dcl_cb cb3[2] // order changes
It looks like HLSL is doing some thing wrong.
test case
Forum URL : http://forums.amd.com/forum/messageview.cfm?catid=328&threadid=108070&forumid=9