Странное поведение в D3D12 при вызове ClearDepthStencilViewC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Странное поведение в D3D12 при вызове ClearDepthStencilView

Сообщение 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 жалуется на то, что это не так, но когда я отлаживаю свой код.
, как я уже сказал, это смешно, что это происходит только в том случае, если присутствует буфер трафарета.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... tencilview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»