DX12: dx_end_frame was not called when disconnecting during active game.
This commit is contained in:
parent
e918bf846b
commit
79545d341f
|
|
@ -1390,6 +1390,9 @@ void dx_begin_frame() {
|
|||
}
|
||||
|
||||
void dx_end_frame() {
|
||||
if (!dx.active)
|
||||
return;
|
||||
|
||||
dx.command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(dx.render_targets[dx.frame_index],
|
||||
D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT));
|
||||
|
||||
|
|
|
|||
|
|
@ -1115,8 +1115,8 @@ void RB_ExecuteRenderCommands( const void *data ) {
|
|||
backEnd.smpFrame = 1;
|
||||
}
|
||||
|
||||
bool vk_begin_frame_called = false;
|
||||
bool vk_end_frame_called = false;
|
||||
bool begin_frame_called = false;
|
||||
bool end_frame_called = false;
|
||||
|
||||
while ( 1 ) {
|
||||
switch ( *(const int *)data ) {
|
||||
|
|
@ -1131,11 +1131,11 @@ void RB_ExecuteRenderCommands( const void *data ) {
|
|||
break;
|
||||
case RC_DRAW_BUFFER:
|
||||
data = RB_DrawBuffer( data );
|
||||
vk_begin_frame_called = true;
|
||||
begin_frame_called = true;
|
||||
break;
|
||||
case RC_SWAP_BUFFERS:
|
||||
data = RB_SwapBuffers( data );
|
||||
vk_end_frame_called = true;
|
||||
end_frame_called = true;
|
||||
break;
|
||||
case RC_SCREENSHOT:
|
||||
data = RB_TakeScreenshotCmd( data );
|
||||
|
|
@ -1148,8 +1148,11 @@ void RB_ExecuteRenderCommands( const void *data ) {
|
|||
backEnd.pc.msec = t2 - t1;
|
||||
|
||||
// VULKAN
|
||||
if (com_errorEntered && (vk_begin_frame_called && !vk_end_frame_called))
|
||||
// DX12
|
||||
if (com_errorEntered && (begin_frame_called && !end_frame_called)) {
|
||||
vk_end_frame();
|
||||
dx_end_frame();
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user