diff options
-rw-r--r-- | tegra.txt | 23 |
1 files changed, 16 insertions, 7 deletions
@@ -1,22 +1,27 @@ -Tegra/Tegra2 reverse engineering notes. +Tegra2 reverse engineering notes. -Tegra uses PIO fifos. The design is fairly recent but I can't match it to a +Tegra2 uses PIO fifos. The design is fairly recent but I can't match it to a specific nv** version yet. Of course the offsets don't match other graphics objects, seemingly those are much smaller. Still, they speak OpenGL (ES) at the hardware level though. Color constants seem to be given as float values -always. +always. All hw regs are R/W which is very convenient to avoid duplicate state +both in memory and on the GPU; you can just glGet from the hw directly. -The graphic object layout: -0x044 put +We have a GLES2 object. GLES1 is yet unexplored (do we really care?) but seems +weird. + +The GLES2 object layout: +0x044 put+get. makes sense since regs are now all read+write 0x264 current program addr 0x3d4 active texture 0 0x3d8 active tex 1 ... 0x3e8 pixel store 0x3ec pixel store -0x3f4 utilisé dans glHint -0x3f5 utilisé dans glHint +0x3f0 GL_GENERATE_MIPMAP_HINT +0x3f4 some type of glHint? +0x3f5 some type of glHint too but unaligned? 0x4ec vertex attribute 0x4f4 glRenderbufferPparameteriv 0x4f8 blend eq separate @@ -44,6 +49,10 @@ The graphic object layout: 0x5ac scissor Y 0x5b0 scissor width 0x5b4 scissor height +0x5b8 viewport X +0x5bc viewport Y +0x5c0 viewport width +0x5c4 viewport height 0x5c8 depth near 0x5cc depth far |