Если я пытаюсь использовать усилитель C++ и есть статические массивы постоянных данных, к которым должны иметь доступ ограниченные функции AMP, как я могу это легко сделать (желательно, не меняя код тоже ? много)Незаконная внешняя ссылка в функции с ограничением по ограничению
так у меня есть массив:
static unsigned char perm[512] = {151,160,137,91,90,15,...};
И ампер ограниченного тело, которое использует этот массив ..
float Perlin::noise(float x) restrict(amp)
{
...
n0 = t0 * t0 * grad(perm[i0 & 0xff], x0);
// causes "illegal external reference in amp-restricted function"
}
http://msdn.microsoft.com/en-us/library/hh388953.aspx - прямо указывает, что глобальные переменные не разрешены в ограниченных функциях. – riv
Это так хромает. Значит, мне нужно было бы КОПИРОВАТЬ весь массив в _each function_, а затем создать 'array_view' для внутренней функции? – bobobobo
«Нет глобальных переменных» не подразумевает никаких полей-членов для array_view? Похоже, что руководство предназначено для использования tile_static: http://msdn.microsoft.com/en-us/library/hh388954.aspx –