Когда я очищаю текстуру буфера глубины с помощью cleardepthstencilview, я получаю сообщение об ошибке один раз: < /p>
ID3D12CommandQueue::ExecuteCommandLists: Using ClearDepthStencilView on Command List
(0x000001C4D608F4E0:'Unnamed ID3D12GraphicsCommandList Object'): Resource state (0x0: D3D12_RESOURCE_STATE_[COMMON|PRESENT]) of resource (0x000001C4D608E630:'TestTexture') (subresource: 1)
is invalid for use as a depth buffer. Expected State Bits (all): 0x10: D3D12_RESOURCE_STATE_DEPTH_WRITE, Actual State: 0x0: D3D12_RESOURCE_STATE_[COMMON|PRESENT],
Missing State: 0x10: D3D12_RESOURCE_STATE_DEPTH_WRITE.
< /code>
Эта ошибка, кажется, происходит только в том случае, если я передаю бит d3d12_clear_flag_stencil в функцию.
Текстура создается с помощью следующего описания: < /p>
Dimension D3D12_RESOURCE_DIMENSION_TEXTURE2D (3)
Alignment 0
Width 256
Height 256
DepthOrArraySize 1
MipLevels 1
Format DXGI_FORMAT_R24G8_TYPELESS
SampleDesc {Count=1 Quality=0 }
Layout D3D12_TEXTURE_LAYOUT_UNKNOWN (0)
Flags D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL (2)
< /code>
Я использую dxgi_format_r24g8_typeless, чтобы иметь возможность читать из значений глубины текстуры позже (это не имеет никакого значения, если это DXGI_FORMAT_R24G8_TYPELSE или DXGI_FORMAT_D24_UNORM_S8_UINT Тип) < /p>
amunorm_unorm_s8_uint). DXGI_FORMAT_D24_UNORM_S8_UINT AS FORMAT.
Потому что ресурс находится в состоянии D3D12_Resource_state_common. Я вставляю переходный барьер перед вызовом ClearDepthStencilView, который (должен) устанавливает текстуру в состоянии ресурса d3d12_resource_state_depth_write. Кажется, что D3D12 жалуется на то, что это не так, но когда я отлаживаю свой код.
, как я уже сказал, это смешно, что это происходит только в том случае, если присутствует буфер трафарета.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... tencilview
Странное поведение в D3D12 при вызове ClearDepthStencilView ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1755760736
Anonymous
Когда я очищаю текстуру буфера глубины с помощью cleardepthstencilview, я получаю сообщение об ошибке один раз: < /p>
ID3D12CommandQueue::ExecuteCommandLists: Using ClearDepthStencilView on Command List
(0x000001C4D608F4E0:'Unnamed ID3D12GraphicsCommandList Object'): Resource state (0x0: D3D12_RESOURCE_STATE_[COMMON|PRESENT]) of resource (0x000001C4D608E630:'TestTexture') (subresource: 1)
is invalid for use as a depth buffer. Expected State Bits (all): 0x10: D3D12_RESOURCE_STATE_DEPTH_WRITE, Actual State: 0x0: D3D12_RESOURCE_STATE_[COMMON|PRESENT],
Missing State: 0x10: D3D12_RESOURCE_STATE_DEPTH_WRITE.
< /code>
Эта ошибка, кажется, происходит только в том случае, если я передаю бит d3d12_clear_flag_stencil в функцию.
Текстура создается с помощью следующего описания: < /p>
Dimension D3D12_RESOURCE_DIMENSION_TEXTURE2D (3)
Alignment 0
Width 256
Height 256
DepthOrArraySize 1
MipLevels 1
Format DXGI_FORMAT_R24G8_TYPELESS
SampleDesc {Count=1 Quality=0 }
Layout D3D12_TEXTURE_LAYOUT_UNKNOWN (0)
Flags D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL (2)
< /code>
Я использую dxgi_format_r24g8_typeless, чтобы иметь возможность читать из значений глубины текстуры позже (это не имеет никакого значения, если это DXGI_FORMAT_R24G8_TYPELSE или DXGI_FORMAT_D24_UNORM_S8_UINT Тип) < /p>
amunorm_unorm_s8_uint). DXGI_FORMAT_D24_UNORM_S8_UINT AS FORMAT.
Потому что ресурс находится в состоянии D3D12_Resource_state_common. Я вставляю переходный барьер перед вызовом ClearDepthStencilView, который (должен) устанавливает текстуру в состоянии ресурса d3d12_resource_state_depth_write. Кажется, что D3D12 жалуется на то, что это не так, но когда я отлаживаю свой код.
, как я уже сказал, это смешно, что это происходит только в том случае, если присутствует буфер трафарета.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79741968/strange-behavior-in-d3d12-when-call-cleardepthstencilview[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия