Commit Graph
100 Commits
Author SHA1 Message Date
Rudolf Cornelissen 846f49314f added logging module info for 3D add-on. BTW bumped driverversion to 0.43
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12472 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-26 14:59:44 +00:00
Rudolf Cornelissen 9c3c151715 added second flag for 3D add-on indicating 2D modechanges
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12471 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-26 14:48:41 +00:00
Rudolf Cornelissen a3da25fc7e added loglevel use indication: 3D add-on adheres to this, 2D driver should be retuned some day
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12470 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-26 14:47:21 +00:00
Rudolf Cornelissen c9c0c72b4b added second flag for 3D add-on signalling mode changes happening for apps rendering in non-direct mode
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-26 14:45:44 +00:00
Rudolf Cornelissen 83d94df950 added a fixme note with regard to multiple 3D add-ons
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-19 18:37:22 +00:00
Rudolf Cornelissen 300af26345 Added a flag indicating a modeswitch happened/is happening so the 3D add-on can block rendering and re-inits.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12436 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-18 11:26:37 +00:00
Rudolf Cornelissen afb207ac58 pre-NV10 3D update syncing driver to current 3D add-on for nVidia; also added a flag in shared info to tell the 3d add-on to stop rendering and re-init when a mode-switch occurs. Bumped version to 0.42.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12435 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-18 11:23:37 +00:00
Rudolf Cornelissen 6ad7f78f09 test commit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-18 09:13:23 +00:00
Rudolf Cornelissen 860d572c2e finalized documentation for driver release (as V0.41). All my cards confirmed OK and very fast compared to 'the old days'.
It's confirmed BTW that GeForce PCIe/AGP 6600GT is working OK (tested on 3 cards), and also GeForce AGP 6800GT is OK (one card tested).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11454 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-22 20:52:21 +00:00
Rudolf Cornelissen 4879571b0d doc update. Version is now 0.41.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-21 16:24:41 +00:00
Rudolf Cornelissen 7540371dbb the DMA acc sub-cmd-lists are now issued to a single engine command (except for blit because it's hardware can't do that), instead of to multiple issued engine commands. (one could say 'parallel processing' but that's not the case: it remains serial: it's just faster).
DMA acceleration speed is up another 10% for rect and span commands.
commencing more testing now: code is complete (I hope).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-21 16:20:40 +00:00
Rudolf Cornelissen dffca5825b doc update, version is now 0.40.
(still one more speed update to do before testing and release :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-21 14:36:51 +00:00
Rudolf Cornelissen d0ef756a52 optimized DMA acc code more by splitting up command lists into sublists before issuing them to the engine. this further improves speed with upto about 70 percent, for a total of about doubling the speed by pure software optimation.
Note: code is now working the same as Thomas's ATI driver: he minimized calls in the same ways. (Curious how a benchmark contest would hold up now.. ;-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-21 14:34:09 +00:00
Rudolf Cornelissen 361b304a02 ... on slow CPU's it's also upto 15% gain apparantly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-21 13:15:42 +00:00
Rudolf Cornelissen 0702e3f652 (doc update..)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11428 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-21 13:02:05 +00:00
Rudolf Cornelissen 1554e5cb4c applied DMA mode speed optimations 'step 1.5': incorporated all top-level acceleration functions inside the engine's code so minimal nested calls are made. Confirmed further speedup of about 15% on fast CPU's...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-21 13:00:14 +00:00
Rudolf Cornelissen bffb1c3e50 added a comment about 'parallel processing' of rect functions (due for next speed optimize 'step 2').
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-19 17:46:32 +00:00
Rudolf Cornelissen 9e7390ba4a bumped version to 0.38.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-19 17:42:58 +00:00
Rudolf Cornelissen 18dfc8a2b0 optimizing DMA acc for speed ('step 1'). Also simplifies code.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-19 17:40:56 +00:00
Rudolf Cornelissen 27fe7559f1 updated doc once more.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-19 12:57:54 +00:00
Rudolf Cornelissen 10988528d1 added fix (not yet completely tested) for NV40/NV45 artifacts on heavy acc engine use. Bumped driverversion to 0.37.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11419 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-19 12:50:09 +00:00
Rudolf Cornelissen ba37dabf99 small cleanup, added one new registerdefine for NV40/NV45.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-19 09:56:57 +00:00
Rudolf Cornelissen cb49723124 added one (still disabled) register for framebuffer config(?) on NV40/NV45 (in test)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-19 09:54:56 +00:00
Rudolf Cornelissen 93ae86bf61 replaced some occurances of BeOS with Haiku :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-18 20:48:09 +00:00
Rudolf Cornelissen 813524fb5a updated driver documentation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-18 20:40:26 +00:00
Rudolf Cornelissen 29e629c82e shutdown panel DPMS for laptops: I don't like the looks of that!. Confirmed DPMS working OK for all DVI panels though.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11406 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-17 16:51:35 +00:00
Rudolf Cornelissen 6072aa9f44 fixed PLL locking trouble on NV36 (confirmed) and problably more cards (NV31, NV40 and higher): those with extended PLL's.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-17 13:47:54 +00:00
Rudolf Cornelissen ecaef637fa added preliminary DPMS support for all panels (still in test)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-17 13:34:13 +00:00
Rudolf Cornelissen 4157b3aeec -added the NV40 arch screen connections limitations to the doc;
-added a fixme comment in the kerneldriver: it seems we must try to map cardBIOSes to memory ourselves if possible after all (should be PCI config manager work I'd say): encountered two systems now that don't have that done (by BIOS I guess). A old PCI-only system (Pentium200), and a brand new PCIe system: Both PCI and PCIe cardBIOSes don't get mapped here which prevents us from using coldstarts on secondary cards :-/


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-17 11:53:25 +00:00
Rudolf Cornelissen 36ad4411a8 added some comments about NV40 architecture. We have several new unknown factors:
- DAC2 always detects a analog screen connected;
- it seems like there are at least two new registers we don't know about. One extra switch to place output on connectors, and one (extra) switch for pixelclock PLL to CRTC connections (one PLL drives both CRTC's in some cases, pre-programmed by the card BIOS determined on the screen configuration found at power-up.
- in a known register (TSTCTRL) b20 blocks/moves output on connectors (?).
All confirmed on NV43, GeForce PCIe 6600GT.

Driver status:
- one DVI monitor connected is OK;
- one analog screen connected on the DB15 connector is OK,
- two analog screens connected is OK and can be used for dualhead.
other combinations don't work well or at all. This is the status confirmed on
the NV43. Assuming same for other cards of NV40 architecture.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-17 11:39:07 +00:00
Rudolf Cornelissen 11058c2f96 fixed cursor visibility update on show/hide_cursor commands for secondary head on NV40 architecture (hardware bug workaround). Confirmed Dualhead up and working correctly with two analog connected screens on PCIe 6600 GT.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-14 14:16:50 +00:00
Rudolf Cornelissen de0194f56b updated docs (working cards, DMA mode info).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-13 17:54:11 +00:00
Rudolf Cornelissen 5857e1d66b added a few ID comments ('sync' to Xorg 6.8.2)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-13 11:56:27 +00:00
Rudolf Cornelissen 3a1749827c added a few ID comments ('sync' to Xorg6.8.2)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-13 11:55:11 +00:00
Rudolf Cornelissen 2e73688338 blocking exporting overlay hooks on NV40 architecture cards that are not NV40 or NV45: these newer NV40 architecture cards have a new bes, but we don't know how to set it up yet. :-/
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-12 13:26:57 +00:00
Rudolf Cornelissen 9b501a81b3 added some more PIO mode acceleration programming for NV40 and higher. This remains non-functional: aborting dev on this for now. Notes about the problem are in the code. For now I guess no-one cares about PIO mode nomore anyway... ;-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-12 13:06:46 +00:00
Rudolf Cornelissen 7139e38e41 updated a few comments, added some acc stuff for NV40+ for PIO mode: trying to get that up as well briefle now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 19:40:26 +00:00
Rudolf Cornelissen c9df9f3086 updated fixes documentation. DMA acceleration is now the default, previously it was PIO mode: DMA now works (much) better than PIO mode overall... :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11302 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-09 20:29:05 +00:00
Rudolf Cornelissen 306bf14447 added updated acc engine constraints for DMA use (mode validation). Version of driver is now 0.36.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-09 20:24:26 +00:00
Rudolf Cornelissen 3f17567e63 reverting to software retrace-sync for cursor position updates on pre-GeForce cards: it turns out there's no hardware sync here after all.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-09 18:08:03 +00:00
Rudolf Cornelissen 4f985adf3a added NV04(TNT1) DMA workaround code. TNT1 now also works with DMA acceleration. TNT2-M64 has been confirmed up also. This means all cards should work now! (Except for a NV40 artifact on blits..).
Still some finetuning to do.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11293 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-08 20:30:56 +00:00
Rudolf Cornelissen e7b37d0211 added pre-NV10 screen location and size for completeness. NV05 (TNT2) is confirmed up and running speedy now :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-08 19:31:49 +00:00
Rudolf Cornelissen c1d1fdbc43 added preliminary pre-NV10 specific DMA acceleration code. Not finished, not tested.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11290 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-08 17:09:01 +00:00
Rudolf Cornelissen 95883f1638 updated doc, added GeForce 6200 card recognition (NV44) for 10 types.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-06 20:17:32 +00:00
Rudolf Cornelissen f882db2e04 added recognition for 10 GeForce 6200 card types (NV44), version is 0.35 now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-06 20:15:19 +00:00
Rudolf Cornelissen 5417d7aedc modified a few register defines for NV44 type.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-06 11:46:23 +00:00
Rudolf Cornelissen 36b7db70d1 updated a few register defines for NV44 type.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-06 11:45:10 +00:00
Rudolf Cornelissen 7758e2a68f added NV44 device to the list. NV44 device recognition still has to be added to the driver BTW.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-06 11:35:55 +00:00
Rudolf Cornelissen 94e32479c0 fixed NV44 and NV45 programming for acceleration
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-06 11:33:17 +00:00
Rudolf Cornelissen b052127f2b added PCIe 'legacy PCI configuration space' config register defines.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-05 18:58:17 +00:00
Rudolf Cornelissen a6632f1605 added PCIe legacy PCI-config-space configuration registers. Some logged interpretation comes at later date, using a PCIE.h header file.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-05 18:55:52 +00:00
Rudolf Cornelissen 7909881256 fixed a truncate error with casting between floats and ints: this makes the centering calculation for WS panels work more precise, removing some 'noise' pixels on the right side of the screen when displaying non native aspect modes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-03 16:19:44 +00:00
Rudolf Cornelissen c826d194dc updated fixes list, bumped version to 0.34 BTW.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-01 15:09:45 +00:00
Rudolf Cornelissen fdd699c7b7 fixed DMA acc blit function crashing once you place data near the end of the cardRAM on NV40 and higher (for overlay bitmaps). These cards needs a certain unused space in front of their DMA command buffer to prevent the blit's DMA data source instance from malfunctioning (moved windows then contain rubbish instead of valid data). I would say this is a hardware fault or limitation (costs us 400kB+ of RAM).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11182 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-01 15:05:57 +00:00
Rudolf Cornelissen 54c34e6829 added NV20 arch defines.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-31 14:40:11 +00:00
Rudolf Cornelissen 63def9b208 completed NV20 architecture DMA acceleration: confirmed both NV20 and NV30 architectur up and running OK BTW.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-31 14:36:33 +00:00
Rudolf Cornelissen 5848a1aedb fixed memory size check for virtualmodes (take DMA into account)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-31 12:36:18 +00:00
Rudolf Cornelissen 9be68599ad added 3 more cardID's.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11169 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-31 11:45:55 +00:00
Rudolf Cornelissen 5370ea7d80 added 3 more cardID's (a GF6600, a GF6800 and a PCX4300).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-31 11:44:38 +00:00
Rudolf Cornelissen 8d2dfc64ee small simplification for reading and writing DMAGET and DMAPUT, gives a minor speedup (a few percent max).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11167 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-31 10:53:21 +00:00
Rudolf Cornelissen ba9ec361f2 removed two double defines for the same register, added new defines needed for NV20 and NV30 architecture DMA acceleration.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 21:19:29 +00:00
Rudolf Cornelissen 41dde765fc completed DMA acc for NV30 architecture, still untested. Fixed two doubled registerdefines which adress the same registers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 21:17:14 +00:00
Rudolf Cornelissen 7309e1cd85 needed to bump the DMA command buffer forced freespace up to 256 words: NV4_GDI_RECT needs a higher setting than the old version. Hopefully engine crashes are now past tense...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-27 15:58:59 +00:00
Rudolf Cornelissen 9c47d9cb0a updated 'docs' with the new NVx_GDI_RECT cmd's findings :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-27 15:18:51 +00:00
Rudolf Cornelissen 64efa4b4af Arrrgghh! I was still using NV3_GDI_RECTANGLE_TEXT instead of NV4_GDI_RECTANGLE_TEXT on pre-NV40 (NV11 tested). Fixed now.
Anyway: Now we know the reason the switch must be made: the old command, while being approx. of the same speed as the new one, has a hardware fault and has also therefore been removed in NV40 and later hardware.
The fault is the input->output colorspace conversion which doesn't work while being used with DMA acc. Glad I could loose that nasty workaround now!!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-27 15:12:13 +00:00
Rudolf Cornelissen 4e05353d7f fixed overlay bitmap DMA adress, fixed overlay in 15 bit mode (NV11). nVidia hardware is broken here :-/. Anyway, it works now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-27 14:32:45 +00:00
Rudolf Cornelissen fee251bc01 modified overlay to stay outside DMA buffer if it exists.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-27 12:48:44 +00:00
Rudolf Cornelissen 4dca5362df added invert_rect DMA acc function. Tested in all colorspaces on NV11 (OK).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-27 10:56:26 +00:00
Rudolf Cornelissen d4d5ee8bbb updated DMA acc to use the full DMA buffersize instead of just one quarter.
Also improved forced freespace limit setting in this buffer, now finally completely preventing engine crashes it seems.
Engine speed went up again due to larger DMA buffer.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11089 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-27 10:23:52 +00:00
Rudolf Cornelissen 1a713b1806 fixed fill_rect and fill_span 8, 15 and 16 bit colorspaces for NV10Arch. Tested and OK on NV11.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11080 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 20:54:21 +00:00
Rudolf Cornelissen e846ba3dd6 updated DMA engine error handling: the driver should nolonger hang (again) if the engine crashes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 12:58:15 +00:00
Rudolf Cornelissen ab26d7f837 finalized DMA buffer overfill checking for optimum speed. On NV11 accelerated functions are running at 130% to 200% speed in DMA mode compared to the 'old' PIO mode. Without trouble now.
Still only 32bit mode, and still missing invert_rect function though. Also still not explicitly adhering the engine constraints which needs to be rechecked/retuned compared to PIO mode (hence the non working 800x600x8 mode I expect..)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11009 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 20:11:59 +00:00
Rudolf Cornelissen 11e38e920f added checking to prevent DMA buffer overfills: it turns out for instance NV11 can't keep up with BeRoMeter and the engine crashes otherwise. It turns out NV11 is currently only working correctly in 32bit color mode BTW.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 16:14:20 +00:00
Rudolf Cornelissen e2e0a5e177 shut-down that dumb ISA access for DMA. Acc speed just went through the roof! (testing with BeRoMeter). I'll now compare DMA and non-DMA speed on NV11 8-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11003 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 11:33:13 +00:00
Rudolf Cornelissen 940dbde600 using NV4_GDI_RECTANGLE_TEXT instead of the older NV3 version for DMA acc. Seems like the old one can't be used with DMA (or I am hitting my limited knowledge on nVidia's Hash-table again..)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11002 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 11:16:39 +00:00
Rudolf Cornelissen 34b1362959 DMA versions of fill_rect and fill_span (same core func still) are up! Removed some testlogging, their load became too high with these new functions added :)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 11:14:01 +00:00
Rudolf Cornelissen de653df809 small cleanup. This fixes DMA buffer freespace tracking as well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 09:50:07 +00:00
Rudolf Cornelissen a8c119773f added acc function defines for DMA, for fill_rect.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10987 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 20:56:08 +00:00
Rudolf Cornelissen 105a3567a6 added fill_rect and fill_span functions (same). Not yet exported, not yet working either..
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10986 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 20:52:37 +00:00
Rudolf Cornelissen d4a57f2736 added timeout and abort for DMA idle waits. This keeps the system responsive if the DMA engine fails, which is way better than a complete hang. Adding this because it's not impossible to create a situation that stalls DMA: for instance if a video app writes (way) outside it's allocated overlay buffers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10976 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-23 14:36:17 +00:00
Rudolf Cornelissen 61e1618dce completed DMA buffer state vars to be all there.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 19:24:37 +00:00
Rudolf Cornelissen fc61675c5a completed DMA buffer wraparounds. DMA acceleration is now stable on NV11 and NV43. Enjoy.. (still missing acc hooks will be setup asap.)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 19:22:45 +00:00
Rudolf Cornelissen 34a71f30fe updated a register's name to reflect what it does.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 11:09:53 +00:00
Rudolf Cornelissen 1a63a6982e small cleanup (mostly comments updates)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-22 11:08:39 +00:00
Rudolf Cornelissen f174c1bdce another nice milestone: NV43 (GeForce PCIe 6600 GT tested) has acceleration up and running as well now!. Please note that the same restrictions apply here as I just mentioned for NV11: to be fixed asap of course ;-)
Jippieeee!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 23:01:06 +00:00
Rudolf Cornelissen 7b0775548b 2D acc milestone reached: NV11 DMA is now up and running!! Oh, there are still a few limitations: don't use overlay, don't use 800x600x8 bit mode, and don't work longer than it takes to get the DMA buffer totally filled up. (switching between workspaces with different settings resets the engine and the 'timer' starts anew...
General note: learn how nVidia's hardware hashtable implementation works!!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10940 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 22:28:31 +00:00
Rudolf Cornelissen 8e3d3f5e18 added explicit clearing of the hashtable engine RAM. This sneaky thing won't get to me again: it keeps it's contents even over power-outages of upto say 15 seconds!!
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10932 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-21 19:17:36 +00:00
Rudolf Cornelissen 16c2cf6bb2 small logging correction for DMA_PUT.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 18:42:54 +00:00
Rudolf Cornelissen 18b2b9dab7 The DMA_PUT register is write-only on some cards (confirmed NV11).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 18:37:27 +00:00
Rudolf Cornelissen d1a21786b1 added setting 'dma_acc' for nv.settings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10845 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 18:25:40 +00:00
Rudolf Cornelissen 6a209f3a00 added dma_acc setting for nv.settings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10844 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 18:22:04 +00:00
Rudolf Cornelissen dd446dd3f3 added a nv.settings switch 'dma_acc'. User can choose method for acceleration. Default is off, selecting (old) PIO mode. DMA still does not work, and is not completed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 18:18:09 +00:00
Rudolf Cornelissen a9d9522bc6 removed a define that's not needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 17:14:19 +00:00
Rudolf Cornelissen e4d42ef757 fixed a stupid error I introduced with cleaning up some stuff: FIFO channel assignments should now work. Confirmed NV11 BTW being at the same level as NV43: DMA works, engine not yet.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-18 17:10:22 +00:00
Rudolf Cornelissen fa6815fa24 added NV4/NV10 architecture register define needed for DMA stuff
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10801 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-17 15:53:57 +00:00
Rudolf Cornelissen e0cbecd9c9 completed NV10 architecture DMA programming to the same level as NV43. Hopefully this engine will show more signs of life than NV43 still does..
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10800 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-17 15:51:39 +00:00
Rudolf Cornelissen 4cd3f831c2 added cmd defines (CTX registers) for pre-NV40 cards, corrected a CTX programming error for NV40 and higher (2d_surface).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10798 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-17 15:12:54 +00:00
Rudolf Cornelissen 8118b7593e added pattern cmd colorspace define (PIO/DMA)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10796 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-17 13:11:39 +00:00
Rudolf Cornelissen 20f1908010 added setting pattern colorspace (DMA)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10795 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-17 13:10:02 +00:00
Rudolf Cornelissen 6c001eb7a2 added more DMA defines (for FIFO channel assigment).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10794 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-17 12:18:44 +00:00