Skip to content

Commit

Permalink
[d3d9] Use header back buffer limits during validation
Browse files Browse the repository at this point in the history
Co-authored-by: Blisto91 <47954800+Blisto91@users.noreply.github.com>
  • Loading branch information
2 people authored and doitsujin committed Nov 28, 2024
1 parent 4e07302 commit 218b67d
Showing 1 changed file with 8 additions and 4 deletions.
12 changes: 8 additions & 4 deletions src/d3d9/d3d9_interface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -418,11 +418,19 @@ namespace dxvk {
// can not be higher than D3DSWAPEFFECT_FLIPEX.
if (unlikely(pPresentationParameters->SwapEffect > D3DSWAPEFFECT_FLIPEX))
return D3DERR_INVALIDCALL;

// 30 is the highest supported back buffer count for Ex devices.
if (unlikely(pPresentationParameters->BackBufferCount > D3DPRESENT_BACK_BUFFERS_MAX_EX))
return D3DERR_INVALIDCALL;
} else {
// The swap effect value on a non-Ex D3D9 device
// can not be higher than D3DSWAPEFFECT_COPY.
if (unlikely(pPresentationParameters->SwapEffect > D3DSWAPEFFECT_COPY))
return D3DERR_INVALIDCALL;

// 3 is the highest supported back buffer count for non-Ex devices.
if (unlikely(pPresentationParameters->BackBufferCount > D3DPRESENT_BACK_BUFFERS_MAX))
return D3DERR_INVALIDCALL;
}

// The swap effect value can not be 0.
Expand All @@ -438,10 +446,6 @@ namespace dxvk {
&& pPresentationParameters->BackBufferCount > 1))
return D3DERR_INVALIDCALL;

// 3 is the highest supported back buffer count.
if (unlikely(pPresentationParameters->BackBufferCount > 3))
return D3DERR_INVALIDCALL;

// Valid fullscreen presentation intervals must be known values.
if (unlikely(!pPresentationParameters->Windowed
&& !(pPresentationParameters->PresentationInterval == D3DPRESENT_INTERVAL_DEFAULT
Expand Down

0 comments on commit 218b67d

Please sign in to comment.