mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-02-21 22:54:16 +01:00
[d3d9] Add additional ValidateBufferProperties validations
This commit is contained in:
parent
931796d1c2
commit
88be8256e6
@ -46,7 +46,20 @@ namespace dxvk {
|
|||||||
|
|
||||||
|
|
||||||
HRESULT D3D9CommonBuffer::ValidateBufferProperties(const D3D9_BUFFER_DESC* pDesc) {
|
HRESULT D3D9CommonBuffer::ValidateBufferProperties(const D3D9_BUFFER_DESC* pDesc) {
|
||||||
if (pDesc->Size == 0)
|
if (unlikely(pDesc->Size == 0))
|
||||||
|
return D3DERR_INVALIDCALL;
|
||||||
|
|
||||||
|
// Neither vertex nor index buffers can be created in D3DPOOL_SCRATCH
|
||||||
|
// or in D3DPOOL_MANAGED with D3DUSAGE_DYNAMIC.
|
||||||
|
if (unlikely(pDesc->Pool == D3DPOOL_SCRATCH
|
||||||
|
|| (pDesc->Pool == D3DPOOL_MANAGED && (pDesc->Usage & D3DUSAGE_DYNAMIC))))
|
||||||
|
return D3DERR_INVALIDCALL;
|
||||||
|
|
||||||
|
// D3DUSAGE_AUTOGENMIPMAP, D3DUSAGE_DEPTHSTENCIL and D3DUSAGE_RENDERTARGET
|
||||||
|
// are not permitted on index or vertex buffers.
|
||||||
|
if (unlikely((pDesc->Usage & D3DUSAGE_AUTOGENMIPMAP)
|
||||||
|
|| (pDesc->Usage & D3DUSAGE_DEPTHSTENCIL)
|
||||||
|
|| (pDesc->Usage & D3DUSAGE_RENDERTARGET)))
|
||||||
return D3DERR_INVALIDCALL;
|
return D3DERR_INVALIDCALL;
|
||||||
|
|
||||||
return D3D_OK;
|
return D3D_OK;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user