- Как то возникла необходимость выполнять операции прерывая рендеринг игры, пришлось использовать StateBlock'и для того чтобы никакие State игры не испортить. Оказывалось что если создать StateBlock при запуске программы CreateStateBlock(D3DSBT_ALL, ...), а потом его использовать Capture, а затем Apply то все Offset'ы Stream'ов сбросятся в 0. Поэтому пришлось сохранять все смещения потоков (GetStreamSource) и потом их восстанавливать (SetStreamSource). А если же StateBlock создавать каждый раз и применять, то почему-то ещё портятся некоторые вертексные константы с индексами свыше 128, по крайней мере такие вещи были замечены на некоторых играх, причем между Create, Apply вообще не одна константа в коде не менялась.
- Частое переключение RenderTarget'ов, DepthStencil поверхностей сильно тормозит на NVidia, а на ATI только при включение AntiAlising'а.
- На NVidia не работает 255'ая константа для VertexShader'ов.
- ID3DXFont портит какие-то State'ы из за чего появлялись глюки в некоторых играх, при рисование FPS с помощью него. Поэтому вместо него стали пользоваться AngelCode Bitmap Font
- На NVidia не работает MRT если поставить в качестве RenderTarget'ов BackBuffer'а от двух SwapChain'ов если создать из со включенным антиалайзингом.
- Не где не сказано, но видимо подозревается как само собой разумеющееся. При установке 0'го RenderTarget'а Viewport и ScissorRect устанавливаются по размерам этой поверхности.
пятница, 7 марта 2008 г.
Глюки и недокументированные вещи Direct3D, драйверов NVidia и ATI
Входе работы над нашим стерео драйвером были обнаружены множество глюков, которые в силу специфики в других приложениях видимо небыли замечены.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий