I'm struggling with the following:
- when I run windowed, no (d3d) errors at all
- when I run fullscreen, I get the following d3d error:
ASSERTION FAILED! File s:\gfx_aug09\windows\directx\dxg\inactive\d3d9\d3d\fw\lhddi.c Line 14641: FALSE == pDevice->bPresentSubmitted
Through debugging I found that the following code triggers the error:
1 - drawtext LPD3DXFONT before d3d seems to be 'OK'/ running in fullscreen
2 - when I load my meshed into managed pool instead of systemmem
I don't think it has something to do with memory/ pointers, because adding a Sleep(20) in my render function, makes the errors disappear (caused by cause 2 above).
I use the following present parameters for 'presenting':
mD3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
mD3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;
Ways I tried to check if the device is ready in fullscreen are: (if(m3ddev != NULL) if(m3ddev->TestCooperativeLevel == D3D_OK)
They both are being passed and drawtext is done, with begin/endscene around it and present (clear before beginscene).
When I run everything windowed without sleep or other code changes, I get no errors at all. By the way also in fullscreen I don't notice any strange/ functional things that are not ok, except 'drawtext' prints are not always visible (because D3D seems to be still initizaling the fullscreen mode, when I'm already trying to 'drawtext' and present it).
Do you have any idea what to look for?