Nouveau Companion 29

Published on October 28, 2007
Written by KoalaBR
Page 2 of 3
Discuss This Article

Although those results are essential to get EXA working on NV1x (and rumor has it that texture may be put to good use later on in 3D) there were still some important parts missing: PictOps and masking.

Just before our editorial deadline, ahuillet got masking and some of the PictOps done. As NV1x has no shaders, he put register combiners to good use (see insert). However, the most important PictOp A8 + A8 (Alpha 8 bit) was not yet implemented. Reason is that NV1x doesn't support A8 as a destination. Until that is implemented, EXA on NV1x will not really feel accelerated. Read more from the IRC logs.

So ahuillet claimed victory over marcheu and jkolb in the race of which card would have EXA working first: NV1x (ahuillet, p0g) or NV3x (jkolb, marcheu). Unfortunately, marcheu noted a few hours later that NV1x EXA can't handle XBGR which (according to his numbers) would mean that most of the EXA calls would hit software fallbacks. Read more here.

So a few hours later, he committed a working fix for NV3x EXA which had all known issues ironed out. A8 op A8 was later fixed through a DRM update and is now working, and repeat of 1x1 areas is working as well. What is missing for full EXA completeness is repeat of > 1x1 areas, but it is not widely used and would require using a shader to compute the required coordinate wrapping.

Unfortunately, real NV30 cards do not work currently as the init in the DRM seems to be incorrect (These would be GeForce 5800, Quadro FX1000). Read more in the IRC log.

Insert: Register Combiners

As NV1x is missing shaders of any type. So in order to accomplish similar things like modern cards do with shaders, you'll use register (or texture) combiners.

Although register combiners and texture combiners work differently in 3D operations, for our current 2D work they can be regarded as similar (if not equal). Register combiners are hardwired into the texturing stage of the hardware. So when you setup that part of the card, you automatically get them with the default behavior.

Now what is default? If you render a pixel onto the screen it is texel modulated by the vertex color. If you want to modulate it by something else (say the alpha of another texture) you "just" setup the register combiners accordingly which would implement the IN operation which in turn is needed for masking.

After ahuillet claimed mostly working EXA, pq started testing NV10 EXA on his NV2x cards. Soon after testing he found out that DownloadFromScreen (abbreviated as DFS) was not working. He bisected back until the last binary API breakage and still found DFS not working.

jkolb and marcheu did some work on NV30. Some issue which got fixed:

· EXA positioning and size of the rectangles was sometimes off.
· The coordinates for EXA were not calculated correctly. The were transformed to be in the range [0..1] instead of [0..width]. Fixed by jkolb.

At that point the driver was unable to do transparency for e.g. icons. All transparent parts were painted black. After jkolb tried his luck and was defeated by the stubbornness of the card, marcheu tried his luck and got lucky^W^W showed his professionalism: Basically NV10 is now not very far behind the NV3x. It misses the A8+A8 PictOp.

Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. Phoronix Test Suite 4.6.0 "Utsira" Released
  2. New Intel X.Org Driver Supports All Of Haswell
  3. SQLite Now Faster With Memory Mapped I/O
  4. Microsoft Releases Skype For Linux 4.2, Has Bug-Fixes
  5. Qt For Tizen Launches, Based On Qt 5.1
  6. KTAP Released For Linux Kernel Dynamic Tracing
  7. Linux 3.10-rc2 Kernel Takes In A Few Extra Pulls
  8. QEMU 1.5 Supports VGA Passthrough, Better USB 3.0
  9. Handbrake 0.9.9 Supports OpenCL Offloading
  10. Freedreno Gallium3D Now Banging The Adreno A3XX
  11. Jolla Announces Their First Phone
Latest Forum Talk
  1. Microsoft Releases Skype For Linux 4.2, Has...
  2. Kubuntu, KDE Has Little Hope For Ubuntu's Mir
  3. Handbrake 0.9.9 Supports OpenCL Offloading
  4. Intel Linux OpenGL Driver Leading Over Apple OS X
  5. The Cost Of Ubuntu Disk Encryption
  6. Qt For Tizen Launches, Based On Qt 5.1
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite