Sun Aug 13 01:57:07 2000
 cob addr was wrong so textures were owerwriting cursor. and cob. and
 strange things happened
Sun Aug 13 02:35:25 2000 
 fixed alpha test on explosions in quake, alpharef and alphafunc
 are global, so have to wait for 3d idle when drawctrl changes
Tue Aug 15 02:47:24 2000
 - fixed transparent parts of console (colorkey was turned on)
 - now registers are uploaded if they change
 - proper detecting of changes of global registers and waiting for 
   pipeline to empty before changing them
 - separate s3savLine_NT, s3savLine_TX, s3savTriangle_NT, s3savTriangle_TX
   for textured and nontextured primitives
Thu Aug 17 01:55:31 2000
- trying to do uploading of smaller mipmap levels
- textures 2xn and 1xn do not work and i dont know why   
- quake3 exits with signal 11 and i dont know why, i cannot gdb it without
  second terminal :( it must be something with textures amd code i added tonight
Thu Aug 17 02:50:57 2000
- yup ! pImg->Data CAN be zero, it seems quake3 doesnt define all mipmap levels
  sometimes
- some investigations about rendering of vertex buffers. it can be done but
  it is weird and now probably only implemented in MGA
  look into vbrender.c render_tmp.h    
Fri Aug 18 01:16:25 2000
- i have tried to use one 4k wide surface for both back and z buffer,
  but it looks it doesnt work, it is enabled using UNIFIED_BUFFER in s3savglx.h
Fri Aug 18 02:00:10 2000
- well, last vertex in every primitive is duplicated (we are sending
  one extra vertex). metal does it too with #ifdef REV_B
  windows say that my hercules terminator beast 99 is Rev B.
  it has magically cured all weird triangles that plagued quake 3
- fixed vertex alpha, i was setting MODULATE instead of MODULATE_ALPHA
  texture env. what is difference between DECAL and DECAL_ALPHA ???  
Thu Aug 24 00:20:26 2000
- added checking for pci chip id in HookServerSymbols. now driver will
  not initialize when on Savage4/Savage2k.
- now we call ?properly? DestroyImage(old_image) in CreateImage in s3savglx.c
  so bug with multiple window resizes is fixed. 
Thu Aug 24 01:28:41 2000
- 32 bit rendering now works. PBD was not set correctly. when 32 bit  
  tile format was set 0x04000000 and should be 0x03000000. never trust
  S3BCI.H from xserver sources anymore ;)
Tue Nov  7 19:32:35 2000
- fog added, lots of changes s3savtri.c   
  cannot test if because mesa seems not to generate fog coords 
  mesa 3.4 relnotes state that there was bug in mesa and it didnt
  generate fog coords when there was no z buffer
- direct rendering added !!!
  there is shared memory segment stS3Sav.pSHM
  it contains aBCI buffer
  direct rendering client writes to this buffer instead of BCI
  on BCIRST, WaitFIFO and SwapBuffers requests are send to xserwer
  to flush this pseudo BCI buffer to real BCI
- i have experienced some problems with driver hanging sometimes
  everything is working fine in 1024x768x16 and hangs are very infrequent
  but when i have switched resolution to 640x480 i couldnt run any
  opengl application because it hanged right on the start, i dont know
  what could be wrong
- instead of waiting like stupid for bci queue to drain and 3d engine to
  become idle when some global register changes just insert BCI WAIT command
    
Thu Nov  9 14:22:33 2000
- i have added backface culling in triangle funtion. now on chip backface
  culling is turned off. when drawing lines we dont have to turn it off
  and on back. also two sided lighting should be working now :)
  we had to make poly area calculation to determine which side of triangle is
  visible for two sided lighting so backface culling is for free.
  we are also writting less into BCI so we dont stress bus too much.
- driver freezes also in 800x600 res
  Raja tells me that reading status register from MMIO may lock bus
  he advises to use shadow registers in memory. i could try it but
  i dont know how to find out PHYSICAL page address after mlocking it.
- there is some bug with bak to front blitting in 800x600 windowed mode, it seems
  something (buffer maybe ???) is not aligned properly to 64 pixels
  800 mod 64 = 32        
Wed Nov 15 17:28:06 2000
- switched to using shadow status instead of mmio, should improve
  driver stability a little
  why there is no function to find out physical address of locked
  page in memory in linux ???
  had to use stupid hack to find out physical address of page
  shadow status is mapped into driver shared memory area, its page is
  locked
- found two stupid bugs
  1) if (blah) BCISETREG ... at the end s3savline.h, of course
  BCISETREG macro is two BCIWR macros, so even if blah was false
  second BCIWR was sending trash to BCI
  2) after direct swap buffers stS3Sav.uBCIPtr wasnt cleared
  although pseudo bci buffer was flushed. so parts of scene could be
  rendered two times and event tags were corrupted.
Tue Dec 12 16:46:35 2000
- fixed some stupid compilation error on newest redhat/mandrake gcc
  and added newlines at the end of s3savpriv.h and s3savhw.h
  (thanks to Francois Pons of Mandrake)
- added handling of pixmap cache when initializing glx
  unfortunately 2d driver uses all memory after frontbuffer as pixmap
  cache so unless you modify your 2d driver you still have to disable
  pixmap cache
  