Полагаю, вы говорите о DirectX9. В документации ничего не говорится об этом конкретном случае, но я могу сказать вам следующее:
Я просто предполагаю, что окончательные изменения не будут записаны в текстуру, пока устройство-> End не будет вызвано
Это неверное предположение. Подумайте об этом, вы предполагаете, что все пиксели всех нарисованных треугольников будут сохранены «где-то», и все ваши выборки текстур будут выполнены без записи пикселей обратно в цель рендеринга. Это требует произвольного количества памяти и, следовательно, невозможно.
На практике:
- аппаратное обеспечение обычно обрабатывает треугольники по мере их поступления, многие сразу
- обновляет буфер кадров (который в вашем случае является резервной копией памяти текстур), когда это требуется, при условии, что не может быть условий гонки
Итак, если DX9 не жалуется (попробуйте, если вы действительно хотите знать, я больше не делаю DX9), будет неопределенным.
Тем не менее, DirectX10 более четко говорит об этом ( source ):
Если какие-либо субресурсы также в настоящее время
Обязательно для чтения или письма (возможно
в другой части трубопровода),
эти точки привязки будут обнулены
чтобы предотвратить тот же субресурс из
быть прочитанным и написанным одновременно
в одной операции рендеринга.
Итак, в DirectX10 ваши настройки текстуры будут удалены API.