Проблема решена. Виной всему были типичные нубские ошибки: при вызове метода Map() я указывал флаг D3D10_MAP_WRITE_DISCARD, и получал указатель, в который процессор мог только записывать, и тут же считывал с него данные. Правильным было обновлять копию буфера в системной памяти, и только потом записывать с него данные в буфер. И еще - при записи в буфер для каждой вершины следовало перезаписывать значение цвета (хотя они и не изменялись вроде как), в противном случае весь массив вершин иногда окрашивался в черный цвет. Алексей, спасибо за внимание