Execute buffer miracles
Hi everyone. This is directed toward anyone who either still uses execute buffers, or used them a long time ago. Please do no response with "dOn''T uSe ExEcUtE bUfFeRs, d00d, YoU sHoUlD uSe VeRtEx BuFfErS." I have spend an entire week moving my supremo optimized execute buffer routines over to the drawprimitive calls, and I lost nearly a quarter of my speed, since my game is very optimized for exe buffers.
Anyway, to you old timers:
I do my own lighting, and right now, I create all my execute buffers from scratch, every time I want to draw the scene. Seeking EVEN MORE speed, I want to design static execute buffers that never change, and just dump them to the device whenever I need to.
The problem is... I do my own lighting. So, I CAN''T have static execute buffers, because I need to tool through them and set the color and specular components (please don''t give me a UsE DiReCtX LiGhTiNG D00D either, because the lighting I need is very simple, and doesn''t need to play with normals-- however, if there is a way to do directx lighting that doesn''t use normals and only lights vertices by distance from the light, I''d love to hear about it).
So, my question, O Execute Buffer Users, is... can I just keep a list of pointers into the execute buffers? Do they change ever change their memory locations? When I lock them over and over again, I notice that they never change position, but I don''t know if this a guarantee.
Ideally, I would keep a pointer list of long ints which can just be written to with the new lighting components, since in most cases I don''t need it to be recalculated.
Anyone played with this kind of thing?
Thanks in advance!
-- Goodlife
-----------------------------
Those whom the gods would destroy, they first drive mad.
--DirectX design team official motto
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement