[D3D12] ROV: Unbind resolve RT after using

This commit is contained in:
Triang3l 2018-11-01 22:13:45 +03:00
parent fd12302108
commit 5a79f675bd
2 changed files with 6 additions and 0 deletions

View File

@ -1027,6 +1027,8 @@ void D3D12CommandProcessor::PerformSwap(uint32_t frontbuffer_ptr,
graphics_system->StretchTextureToFrontBuffer( graphics_system->StretchTextureToFrontBuffer(
descriptor_gpu_start, &gamma_ramp_gpu_handle, descriptor_gpu_start, &gamma_ramp_gpu_handle,
use_pwl_gamma_ramp ? (1.0f / 128.0f) : (1.0f / 256.0f), command_list); use_pwl_gamma_ramp ? (1.0f / 128.0f) : (1.0f / 256.0f), command_list);
// Ending the current frame's command list anyway, so no need to unbind
// the render targets when using ROV.
PushTransitionBarrier(swap_texture_, D3D12_RESOURCE_STATE_RENDER_TARGET, PushTransitionBarrier(swap_texture_, D3D12_RESOURCE_STATE_RENDER_TARGET,
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE); D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE);

View File

@ -1444,6 +1444,10 @@ bool RenderTargetCache::ResolveCopy(SharedMemory* shared_memory,
command_list->RSSetScissorRects(1, &scissor); command_list->RSSetScissorRects(1, &scissor);
command_list->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST); command_list->IASetPrimitiveTopology(D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST);
command_list->DrawInstanced(3, 1, 0, 0); command_list->DrawInstanced(3, 1, 0, 0);
if (command_processor_->IsROVUsedForEDRAM()) {
// Clean up - the ROV path doesn't need render targets bound.
command_list->OMSetRenderTargets(0, nullptr, FALSE, nullptr);
}
// Copy the resolve target to the buffer. // Copy the resolve target to the buffer.