diff options
author | Patrice Mandin <pmandin@caramail.com> | 2008-08-23 22:28:25 +0200 |
---|---|---|
committer | Patrice Mandin <pmandin@caramail.com> | 2008-08-23 22:28:25 +0200 |
commit | e1520747d8a8cdacfdefdd212da285f36403f493 (patch) | |
tree | 506b6864640d2f939bb6ea36773c5b93e59a55bb | |
parent | 12e58860f3125d349b4e7f1bd72620f637214a63 (diff) |
Separe nop/set color fp
-rw-r--r-- | tcl_init.c | 38 |
1 files changed, 31 insertions, 7 deletions
@@ -39,6 +39,29 @@ static void tcl_fp_color(void) OUT_RING ((uint32_t)fragprog_offset| NV34TCL_FP_ACTIVE_PROGRAM_DMA0); } +static void tcl_fp_nop(void) +{ + volatile unsigned int *fragprog_map; + uint64_t fragprog_offset; + + fragprog_map = screen_allocmem(0, 0x1000, &fragprog_offset); + if (!fragprog_map) { + return; + } + printf("fragprog alloc'd at 0x%08x mapped at %p\n", + fragprog_offset, fragprog_map); + /* + * NOP + */ + fragprog_map[0] = 1; + fragprog_map[1] = + fragprog_map[2] = + fragprog_map[3] = 0; + + BEGIN_RING(NvSub3D, NV34TCL_FP_ACTIVE_PROGRAM, 1); + OUT_RING ((uint32_t)fragprog_offset| NV34TCL_FP_ACTIVE_PROGRAM_DMA0); +} + void tcl_init(void) { int i; @@ -158,14 +181,14 @@ void tcl_init(void) # INST 0: MOVX R0 (TR0.xyzw), attrib.color + END 07bfef01 NV30TCL.FP_ACTIVE_PROGRAM = DMA0=TRUE | DMA1=FALSE | OFFSET=0x07bfef00 #endif - tcl_fp_color(); - - BEGIN_RING(NvSub3D, NV34TCL_TX_UNITS_ENABLE, 1); - OUT_RING(0); + /*tcl_fp_color(); BEGIN_RING(NvSub3D, NV34TCL_FP_CONTROL, 1); OUT_RING(0); BEGIN_RING(NvSub3D, NV34TCL_FP_REG_CONTROL, 1); - OUT_RING((1<<16)|4); + OUT_RING((1<<16)|4);*/ + + BEGIN_RING(NvSub3D, NV34TCL_TX_UNITS_ENABLE, 1); + OUT_RING(0); for (i=0; i<4; i++) { BEGIN_RING(NvSub3D, NV34TCL_TX_ENABLE(i), 1); OUT_RING(0); @@ -346,11 +369,12 @@ void tcl_init(void) # INST 0: NOP (FL0.xxxx) + END 07bfef41 NV30TCL.FP_ACTIVE_PROGRAM = DMA0=TRUE | DMA1=FALSE | OFFSET=0x07bfef40 #endif + tcl_fp_nop(); - /*BEGIN_RING(NvSub3D, NV34TCL_FP_CONTROL, 1); + BEGIN_RING(NvSub3D, NV34TCL_FP_CONTROL, 1); OUT_RING(0x40); BEGIN_RING(NvSub3D, NV34TCL_FP_REG_CONTROL, 1); - OUT_RING((1<<16)|4);*/ + OUT_RING((1<<16)|4); /*BEGIN_RING(NvSub3D, NV34TCL_CLEAR_DEPTH_VALUE, 2); OUT_RING(0); |