Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Этот автоматизированный тест проверяет, соответствует ли поведение графических драйверов или аппаратного D3D-потока требованиям Microsoft Direct3D.
Этот раздел относится к следующим тестовых заданиям:
WGF11 Streamout
WGF11 Streamout (WoW64)
Сведения о тесте
| Характеристики |
|
| Платформы |
|
| Поддерживаемые выпуски |
|
| Ожидаемое время выполнения (в минутах) | 2 |
| Категория | Совместимость |
| Время ожидания (в минутах) | 120 |
| Требуется перезагрузка | false |
| Требуется специальная конфигурация | false |
| Тип | automatic |
Дополнительная документация
Тесты в этой области функций могут содержать дополнительную документацию, включая предварительные требования, сведения о настройке и устранении неполадок, которые можно найти в следующих разделах:
Запуск теста
Перед запуском теста завершите настройку теста, как описано в разделе Требования к тестированию: Предварительные требования к тестированию графического адаптера или набора микросхем.
Устранение неполадок
Общие сведения об устранении неполадок при тестировании HLK см. в статье Устранение неполадок тестов HLK в Windows.
Сведения об устранении неполадок см. в разделе Устранение неполадок с тестированием Device.Graphics.
Все тестовые случаи возвращают значение PASS или FAIL. Просмотрите результаты теста в файле журнала, чтобы получить подробные сведения о сбоях. Тест может возвращать SKIP, если он выполняется с уровнем компонентов, который не поддерживает проверяемую функцию. Тест может вернуть значение BLOCKED, если есть неперехваченное исключение (платформа перехватывает его в конце и регистрирует его). Чтобы просмотреть сведения о тесте, просмотрите журнал тестирования из диспетчера HLK Windows.
Дополнительные сведения
Ниже приведен план тестирования соответствия StreamOut.
Общие тестовые случаи потоковой передачи
Передача входных данных в конвейер с помощью VB и потоковая передача преобразованных данных из VS или GS.
Примечание
В случае GS рассмотрите проблемы с усилением, создавая несколько выходных примитивов для каждого входного примитива.
Циклический цикл для различных примитивных типов, размеров буфера, количества имитируемых значений, смещения буфера vand.
Проверьте добавление данных SO, выполнив несколько вызовов Draw().
Для GS циклический цикл по шейдерам с разными свойствами maxvertexcount.
Иногда переполняйте это значение, чтобы сохранить только полные примитивы.
Возможно циклический цикл для различных типов примитивов входных данных и выходных топологий.
Проверка ожидаемых результатов запроса
STREAMOUTPUTSTATS
STREAMOVERFLOWPREDICATE
Проверка неполных примитивных операций записи.
Проверка порядка обмотки и обработки вершин в начале.
Допускается до 227 вершин SO на каждый буфер SO.
Примечание
Так как это такой большой ресурс, он работает, вероятно, для одного или двух тестовых случаев.
Простые тесты Single-Buffer
Цикл в нескольких сценариях объявления:
Просто.
Оставьте пробелы.
Разделение выходных регистров между несколькими элементами SO.
Объедините выходной регистр в один элемент SO.
Цикл на разных размерах вершин SO.
Проверьте ограничение 64-компонентных вершин SO.
Простые тесты с несколькими буферами
Смешивайте размеры и смещения буферов, чтобы буферы переполнены в разное время.
Цикл в нескольких сценариях объявления:
Просто.
Пропуск выходного слота.
Разделение выходных регистров между несколькими элементами SO.
Потоковая передача компонентов частичной регистрации.
Потоковая передача в один буфер в ненулевом слоте.
Пинг-понга для буферов вывода потока
Похожие на простые тесты с одним буфером и с несколькими буферами с поворотом:
Изначально привязывают буферы A и B с положительным смещением.
Привязка буфера A с помощью значения смещения -1.
Draw()
Привязка буфера B с помощью значения смещения -1.
Draw()
Повторите эту процедуру, если необходимо.
В сценариях с несколькими буферами при необходимости рассмотрите возможность ping-ponging только некоторых буферов SO между вызовами Draw().
Изменение размера вершины SO с использованием того же целевого буфера
Пользовательский тестовый случай, в котором основное внимание уделяется настройке "жирных" шагов вершин в одном буфере, затем Draw(), затем задает "тощий" шаг вершины SO, а затем Draw() снова.
Изучите STREAMOUTPUTSTATS.
Следите за переполнением во время потоковой передачи "жирных" вершин и убедитесь, что тощий вершины не могут быть добавлены к целевому объекту.
Примечание
Рассмотрите возможность пинг-понгов на этом шаге, чтобы убедиться, что переполнение является "прикрепленным" в буфере.
Адресные потоковые выходные данные (D3D11)
Тестирование RasterizedStream и нескольких векторов данных:
При отправке потока в растеризатор убедитесь, что конечный результат использует данные вершины из этого потока.
Убедитесь, что из потока на уровне компонентов 11 можно выводить несколько векторов данных, даже при использовании gs_4_x шейдера.
Тестовые шаги, которые не выровнены по размеру элемента в буфере вывода потока.
Убедитесь, что потоковые выходные данные работают, когда среда выполнения определяет шаги на основе размера, вычисленного с помощью объявления выходных данных потока. Среда выполнения делает это, если параметры шага в вызове create имеют значение NULL.
Тестирование уровня функций и поведения запросов:
При использовании уровней компонентов 10 и 10.1 убедитесь, что для вывода потока можно использовать только поток 0.
При использовании уровней компонентов 10 и 10.1 убедитесь, что можно использовать только gs_4_x шейдеры. Если используется несколько буферов, убедитесь, что из потока 0 i может быть выведен только один вектор данных.
D3D11_QUERY_SO_STATISTICS и D3D11_QUERY_SO_OVERFLOW_PREDICATE запросы должны возвращать правильные данные для суммы всех потоков. D3D11_QUERY_SO_STATISTICS_STREAMn и D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAMn запросы возвращают правильные данные для каждого потока. В настоящее время существуют тестовые случаи для одного потока. Будет проверено следующее:
Ожидаемое число примитивов, записанных в потоковые буферы вывода.
Ожидаемый размер примитивов (если все они будут выводиться в буферы).
Предикат переполнения активируется при переполнении одного буфера при записи в него.
Если заполнен один буфер в потоке, запись во все буферы в этом потоке предотвращается.
Результаты запросов для неопределенных потоков не должны быть затронуты.
Синтаксис команды
| Параметр команды | Описание |
|---|---|
Wgf11streamout |
Переведите тест в русл. Без каких-либо параметров тест перечисляет устройства. |
-FeatureLevel:XX.X |
Задает тестируемый уровень компонентов, где XX.X — это уровень компонентов, на котором будет выполняться тест: 10.0, 10.1 или 11.0. |
Примечание
Для справки командной строки для этого тестового двоичного файла введите /?.
Список файлов
| Файл | Расположение |
|---|---|
Configdisplay.exe |
<[testbinroot]>\nttest\windowstest\tools\ |
D3d11_1sdklayers.dll |
<[testbinroot]>\nttest\windowstest\graphics\d3d\support\ |
D3d11ref.dll |
<[testbinroot]>\nttest\windowstest\graphics\d3d\support\ |
D3d11sdklayers.dll |
<[testbinroot]>\nttest\windowstest\graphics\d3d\support\ |
D3dcompiler_test.dll |
<[testbinroot]>\nttest\windowstest\graphics\d3d\support |
D3dx10_test.dll |
<[testbinroot]>\nttest\windowstest\graphics\d3d\support\ |
d3dx11_test.dll |
<[testbinroot]>\nttest\windowstest\graphics\d3d\support\ |
TDRWatch.exe |
<[testbinroot]>\nttest\windowstest\graphics\ |
Wgf11streamout.exe |
<[testbinroot]>\nttest\windowstest\graphics\d3d\conf |
Параметры
| Имя параметра | Описание параметра |
|---|---|
| MODIFIEDCMDLINE | Дополнительные аргументы командной строки для тестового исполняемого файла |
| LLU_NetAccessOnly | LLU Имя сетевого пользователя |
| ConfigDisplayCommandLine | Пользовательская командная строка для ConfigDisplay. По умолчанию: логотип |
| TDRArgs | /get или /set |