Skip to content

Change Notes

richgel999 edited this page Mar 15, 2014 · 36 revisions

3/14/14: Should be pushed to github tonight or tomorrow latest:

  • All changes needed to get the Steam 10ft UI tracing/replaying are in. I've only just begun testing Steam 10ft with vogl, there could be other problems although I think full-stream is OK. Snapshotting 10ft is next.

PBO's used on various texture API's are now supported (both PIXEL_PACK and PIXEL_UNPACK buffers).

Snapshotting while buffers are mapped during replaying is now supported (but still not during tracing - that will take some more thought).

Unfortunately, playing back Steam 10ft's call streams on NVidia crashes the GPU (both a 480 and 780). No idea why really, but my guess is the constant context switching to multiplex the 5 GL contexts 10ft uses down to 1 playback thread triggers a bug somewhere. This causes massive per-frame 10-15 sec delays on my primary devbox while NVidia's driver recovers, the dmesg log is interesting, and top reports 100% CPU utilization. I tried a few drivers (331 and 334) with no luck. Until I get a fix from NVidia (hopefully soon if history is any indication) I've moved back to developing on AMD full-time. (I'm ping-ponging back and forth to keep making forward progress while I wait for driver support, much like I had to do on the Linux versions of L4D2/TF2/etc.)

  • vogl_gl_replayer::process_entrypoint_msg_print_detailed_context() - added a NULL ptr check on m_pCur_gl_packet (we made some changes at the very latest minute to allow packets to be pushed into the replayer individually, and we're still fixing some regressions due to these changes)

  • Fixed asserts while snapshotting or restoring genned, but never used display lists

  • Genned but never used display lists are now properly serialized/deserialized (discovered because apitrace doesn't support glXUseXFont(), and glxspheres uses this GLX API to fill in its display lists - so we would never see the glXUseXFont() calls)

  • Tested all the new GL code written over the previous few weeks on AMD for the first time - fixed some core profile issues. The default framebuffer's front buffer and depth/stencil surfaces are failing to snapshot on fglrx. I don't know why; the same code works fine on NVidia. Still investigating, and I just started the ball rolling with AMD.

  • Fixing core profile issues on g-truc samples - NV accepts some bad glGet's we were doing that AMD doesn't like.

  • gl-320-fbo-depth32 does not play back at all on AMD, so I've removed it from the regression test for now. This test doesn't work on AMD when I run it directly either.

  • Got our regression test suite to work on AMD (several fixes incoming)

  • Adding darwinia traces to the regression test, so we get some coverage of display list replaying and snapshotting. I'll be adding more game traces and tests, and we'll hopefully be pushing the regression test itself to github very soon.

  • Couple fixes for g-truc sample snapshotting on AMD