-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Soft BreakPoint called, pbly Heap corruption while running "example-06-bump" #10
Comments
I'll take a look, can you post some info about your GPU and drivers? |
Here are some info: DriverDriver Packaging Version 8.97.100.3-120703a-145534C-ATI Hardware: ATI Radeon HD 4850Graphics Card Manufacturer Built by AMD |
Are you getting assert even with example 01-cubes? |
No, only with the bump sample. |
I didn't find a way to control the scissor test explicitly. Is there any ? (only looked at the openGL renderer on this point) This look like a potential bug... |
That's from some ancient days. Nowadays viewport does clipping too. Scissor test is needed only when you want to clip inside viewport. Anyhow, reason why I don't have scissor test API exposed is because I didn't need it yet. Everything in bgfx gets added when it's needed and when I have coverage test for the feature. That way library can stay lean and avoid bugs from code that exist but never gets touched in my tests. Anyhow, I see you'll need scissor test here: If you commit other changes I can grab it and test it, and see what are requirements for scissor test for your lib and add it so that you could use it. For now you could use just views to provide scissoring for UI objects. Also it's great that you picked GUI lib because it can be used to demonstrate sequential drawing. That's said keep in mind that bgfx by default doesn't draw in the order of submission, but rather sorts all primitives by certain criteria and submits in that sorted order. Also if the original bug you reported appears only in your code and you can't reproduce it in any of bgfx examples, it would be better if you could create small reproducible case so that I can test it and fix it. |
Ok, I'll try to implement the renderer using viewport and see how it goes. "Also if the original bug you reported appears only in your code and you The original bug appears 100% of the time with the sample "06-bump", when My own code is not doing anything yet... 2013/2/13 Branimir Karadžić notifications@github.com
|
setViewRect is global, there are 32 of them. Anyhow, as a first pass try just rendering everything in main view, and then we'll see about scissor. I can't repro crash on mine here with 06-bump example, but I'm going to debug it more tomorrow. |
I'm unable to reproduce this issue, you'll need to debug on your machine and give me more info about the error (in DX control panel enable debug runtime) or create repro case. |
I enabled DirectX debug, not sure if it helps.
Maybe it's in my ATI driver ? |
I don't think it's ATI drivers... It seems there is memory corruption somewhere. I'm not seeing this, but I'm going to run it with ApplicationVerifier to check, maybe it will point out what's wrong. |
Found it, DX9 lock texture for BC5 texture lowest mip level returns 8 bytes instead 16... Since it's 4x4 block it should be 16 bytes, but for some reason memory available is only 8 bytes. I need to research more about why this happens. |
It should be fixed: 8a499e6 |
The crash is gone ! |
Also (it is not new) But geometryc doesn't compile in release under vs2010 due to warning as error:
A simple fix is to add
at line 500 to close the compiler mouth, since the logic seems fine and the warning not legit. |
It's known issue, it's just there for me as reminder that I have to fix it.
I'll fix this one later. |
not removing the egl/ppapi gles2 contexts
Respect BGFX_RESET_FLIP_AFTER_RENDER during Init
* Option to pick a device by indexing into the enumeration returned by the API (VK only) * save out final device index * select the first suitable GPU instead of the last, and if the user requests a specific GPU don't override it.
This occurs systematically with a DX9 renderer.
Switchint to MonoThreaded help tracking down the issue:
It leads to Line 649 of renderer_d3d9.cpp.
for (uint32_t stage = 0; stage < BGFX_STATE_TEX_COUNT; ++stage)
{
(there) --> DX_CHECK(m_device->SetTexture(stage, NULL) );
}
I try to fix it, but I didn't get to find the root cause.
Googling doesn't help.
However the case below seems to share root cause similarities:
http://stackoverflow.com/questions/14034101/unbind-texture-bound-using-id3dxeffect-settexture
Any idea ?
Btw, thx a lot for sharing bgfx. It is a beautiful code base.
Never seen a renderer so bold and uncluttered.
Didn't dig everywhere yet, but it looks like a pure submission engine, which is pretty exciting to say the least :)
The text was updated successfully, but these errors were encountered: