Когда Вы хотите удалить элемент из массива, можно использовать , удаляют оператор, как таковой:
var numbers = [1,2,3,4,5];
delete numbers[3];
//numbers is now [1,2,3,undefined,5]
, Как Вы видите, элемент был удален, но дыру покинули в массиве, так как элемент был заменен неопределенный значение.
Таким образом, для работы вокруг этой проблемы, вместо того, чтобы использовать удаляют , используют соединение встык метод массива... как таковой:
var numbers = [1,2,3,4,5];
numbers.splice(3,1);
//numbers is now [1,2,3,5]
первый аргумент [1 113] соединение встык является ординалом в массиве [индекс], и вторым является число элементов для удаления.
clCreateBuffer не будет фактически создавать буфер на устройстве. Это имеет смысл, поскольку во время создания драйвер не знает, какое устройство будет использовать буфер (напомним, что в контексте может быть несколько устройств). Буфер будет создан на реальном устройстве при постановке записи в очередь или при запуске ядра, которое принимает буфер в качестве параметра.
Что касается ограничения в 16 МБ, вы используете последнюю версию драйвера (195.xx)? В таком случае вам следует связаться с NVIDIA либо через форум , либо напрямую.
Не забывайте, какую другую память вы использовали на устройстве (и, если это также ваша видеокарта, память, которую использует ваш дисплей).
(Is есть ли способ получить текущую доступную память, или самый большой фрагмент, или что-то подобное?)