NV04ToDo

List of not implemented features for nv0x

Primitives

1. Lines, points, AA lines, AA points [ugly code exist]

2. TRI_FAN and others.

Fragment processing:

1. OpenGL LogicOp

Vertex processing:

1. Polygon offset

Generic

1. Fast glReadPixels [blob can do 25MPix/s on AGP hardware with TNT2]

2. faster primitive submission code (VBO interface to Mesa?)

Interesting regs

1. <reg32 offset="0x0310" name="BLEND"> - bits 0-4 control texture blending.

Guess blend reg control full blending, according to DirectFB driver source? For example, full BLEND reg defined there as

1514 #define TXTRI_BLEND                          0x00000310
1515 #define   TXTRI_BLEND_TEXTUREMAPBLEND_DECAL            0x00000001
1516 #define   TXTRI_BLEND_TEXTUREMAPBLEND_MODULATE         0x00000002
1517 #define   TXTRI_BLEND_TEXTUREMAPBLEND_DECALALPHA       0x00000003
1518 #define   TXTRI_BLEND_TEXTUREMAPBLEND_MODULATEALPHA    0x00000004
1519 #define   TXTRI_BLEND_TEXTUREMAPBLEND_DECALMASK        0x00000005
1520 #define   TXTRI_BLEND_TEXTUREMAPBLEND_MODULATEMASK     0x00000006
1521 #define   TXTRI_BLEND_TEXTUREMAPBLEND_COPY             0x00000007
1522 #define   TXTRI_BLEND_TEXTUREMAPBLEND_ADD              0x00000008
1523 #define   TXTRI_BLEND_OPERATION_MUX_TALPHALSB          0x00000010
1524 #define   TXTRI_BLEND_OPERATION_MUX_TALPHAMSB          0x00000020
1525 #define   TXTRI_BLEND_SHADEMODE_FLAT                   0x00000040
1526 #define   TXTRI_BLEND_SHADEMODE_GOURAUD                0x00000080
1527 #define   TXTRI_BLEND_SHADEMODE_PHONG                  0x000000C0
1528 #define   TXTRI_BLEND_TEXTUREPERSPECTIVE_ENABLE        0x00000100
1529 #define   TXTRI_BLEND_SPECULAR_ENABLE                  0x00001000
1530 #define   TXTRI_BLEND_FOG_ENABLE                       0x00010000
1531 #define   TXTRI_BLEND_ALPHABLEND_ENABLE                0x00100000
1532 #define   TXTRI_BLEND_SRCBLEND_ZERO                    0x01000000
1533 #define   TXTRI_BLEND_SRCBLEND_ONE                     0x02000000
1534 #define   TXTRI_BLEND_SRCBLEND_SRCCOLOR                0x03000000
1535 #define   TXTRI_BLEND_SRCBLEND_INVSRCCOLOR             0x04000000
1536 #define   TXTRI_BLEND_SRCBLEND_SRCALPHA                0x05000000
1537 #define   TXTRI_BLEND_SRCBLEND_INVSRCALPHA             0x06000000
1538 #define   TXTRI_BLEND_SRCBLEND_DESTALPHA               0x07000000
1539 #define   TXTRI_BLEND_SRCBLEND_INVDESTALPHA            0x08000000
1540 #define   TXTRI_BLEND_SRCBLEND_DESTCOLOR               0x09000000
1541 #define   TXTRI_BLEND_SRCBLEND_INVDESTCOLOR            0x0A000000
1542 #define   TXTRI_BLEND_SRCBLEND_SRCALPHASAT             0x0B000000
1543 #define   TXTRI_BLEND_DESTBLEND_ZERO                   0x10000000
1544 #define   TXTRI_BLEND_DESTBLEND_ONE                    0x20000000
1545 #define   TXTRI_BLEND_DESTBLEND_SRCCOLOR               0x30000000
1546 #define   TXTRI_BLEND_DESTBLEND_INVSRCCOLOR            0x40000000
1547 #define   TXTRI_BLEND_DESTBLEND_SRCALPHA               0x50000000
1548 #define   TXTRI_BLEND_DESTBLEND_INVSRCALPHA            0x60000000
1549 #define   TXTRI_BLEND_DESTBLEND_DESTALPHA              0x70000000
1550 #define   TXTRI_BLEND_DESTBLEND_INVDESTALPHA           0x80000000
1551 #define   TXTRI_BLEND_DESTBLEND_DESTCOLOR              0x90000000
1552 #define   TXTRI_BLEND_DESTBLEND_INVDESTCOLOR           0xA0000000
1553 #define   TXTRI_BLEND_DESTBLEND_SRCALPHASAT            0xB0000000

2. <reg32 offset="0x0314" name="CONTROL"> - <bitfield name="Z_FORMAT" high="31" low="30" type="int"/> - strange, some sources talks about 24/16 bit floating/integer Z buffer on tnt2 hw. Currently bit 30 set to "1", and it works in 32 bpp color mode, but 16-bit X mode makes DRI painfully slow.