I'm a very experienced graphics programmer for the beginning, but as everyone knows, all the mistakes are done. Unfortunately the codebase is a smart The snippet is too big to start throwing and is making the whole situation again in a different CPP / codebase, it is too long - for which I am sorry, at that time I will do my best to explain.
BTW, if someone wonders how I-or-that! D3DPOOL_DEFAULT All the resources in the pool, when the reference of the device goes away from you, you can reset your resources sooner or later. I have created a mechanism to handle it for all the relevant resources which has been working for years; But this is the fact that nothing is in the way. I have definitely checked, kept up and suspected any assumption since this bug came to light.
What happens is this: I have a rather large dynamic peak buffer, exact size of 18874368 bytes. Each buffer is locked before this buffer is generated (isosurface-related, f.y.i) (and the D3DLOCK_DISCARD flag is fully used). It works fine, unless, of course, I start resetting. It can take 1 time, it can take 2 or 5 to take a leak to set up a bug that can be either due to access to the refresh resource or the locks returned by the lock () operation due to the either can cause a simple accident - to a certain extent about such address, but without offset, who has raised it in the first case, because in that situation we are writing somewhere half way - D3D 9 DLL Lock () is about the call
I tested it on other hardware, upgraded the latest ones with my GMA X3100 driver (using MacBook with BootCamp), but I do not reproduce it on any other machine And what has happened to me is the loss about it here. I have tried to reproduce a similar situation with a similar buffer (I have found a large scratch pad filled with quads in the same type) and behave like this beyond a certain amount of bytes Started for
I am not asking for a solution here, but I am very interested if there are other developers who are struggling with the same enemy or maybe some, which can tell me in some practical direction, Probably ask some questions, which might light up
Thanks my friend raised a valid point that this video is a big buffer for the ship to RAM and it is dynamic Due to the nature of at least double or double Tripling buffer On the other hand, debug output (.d3d9 debug DLL + max warning output) remains silent
ps 2 - If it tests and still works on more machines - this may be the situation of thing is:. Huge Dynamic, internally dual / tripled buffer buffer, not very much memory and drivers, when they should not complain.
ps 3 - have been known) That lock and unlock complete copies of 18MB - that is not either very smart, but still :) (I'm using the saner strategy for the renderer's normal dynamic VB / IBS)
Comments
Post a Comment