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() {
|
void dx_end_frame() {
|
||||||
|
if (!dx.active)
|
||||||
|
return;
|
||||||
|
|
||||||
dx.command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(dx.render_targets[dx.frame_index],
|
dx.command_list->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(dx.render_targets[dx.frame_index],
|
||||||
D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT));
|
D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1115,8 +1115,8 @@ void RB_ExecuteRenderCommands( const void *data ) {
|
||||||
backEnd.smpFrame = 1;
|
backEnd.smpFrame = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool vk_begin_frame_called = false;
|
bool begin_frame_called = false;
|
||||||
bool vk_end_frame_called = false;
|
bool end_frame_called = false;
|
||||||
|
|
||||||
while ( 1 ) {
|
while ( 1 ) {
|
||||||
switch ( *(const int *)data ) {
|
switch ( *(const int *)data ) {
|
||||||
|
|
@ -1131,11 +1131,11 @@ void RB_ExecuteRenderCommands( const void *data ) {
|
||||||
break;
|
break;
|
||||||
case RC_DRAW_BUFFER:
|
case RC_DRAW_BUFFER:
|
||||||
data = RB_DrawBuffer( data );
|
data = RB_DrawBuffer( data );
|
||||||
vk_begin_frame_called = true;
|
begin_frame_called = true;
|
||||||
break;
|
break;
|
||||||
case RC_SWAP_BUFFERS:
|
case RC_SWAP_BUFFERS:
|
||||||
data = RB_SwapBuffers( data );
|
data = RB_SwapBuffers( data );
|
||||||
vk_end_frame_called = true;
|
end_frame_called = true;
|
||||||
break;
|
break;
|
||||||
case RC_SCREENSHOT:
|
case RC_SCREENSHOT:
|
||||||
data = RB_TakeScreenshotCmd( data );
|
data = RB_TakeScreenshotCmd( data );
|
||||||
|
|
@ -1148,8 +1148,11 @@ void RB_ExecuteRenderCommands( const void *data ) {
|
||||||
backEnd.pc.msec = t2 - t1;
|
backEnd.pc.msec = t2 - t1;
|
||||||
|
|
||||||
// VULKAN
|
// 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();
|
vk_end_frame();
|
||||||
|
dx_end_frame();
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user