Nouveau Companion 38

Published on April 03, 2008
Written by KoalaBR
Page 2 of 2
Discuss This Article

Now that we have covered Marcheu, stillunknown, pq and Malc0 let's see what Darktama was up to. Well, he wrote a test program to talk directly to the NV5x hardware. That program is able to render triangles ignoring the non-existent DRM support for NV5x for now. That may not seem to be much, but it is a first: The proof that we (well, Darktama) can get the 3D engine to not only clear something (Milestone reached last issue) but render to something too. That was not an easy one, let's give him a pat on the back :) Not to be accused of laziness, Darktama continued his work on NV4x too. That won't take much longer though because we are nearly done with 3D on NV4x. Currently there are only two major issues remaining:

The memory management isn't using TTM yet. This will result in otherwise working OpenGL clients to crash out soon after start. How soon (or if at all) depends on the program and the hardware used. Rest assured, though: It will crash often.

The other problem is that every time we render we *have* to flush commands straight to the GPU, which is bad for a number of reasons:
- GPUs performance is best when they can process large batches of commands
- with TTM it'll become far too many kernel calls for my liking

Currently when rendering a scene, the driver will do: clear (maybe up to three times), flush, render, flush, swap buffers, flush which each flush meaning entering the kernel when using TTM. That is obviously not the best solution, so more thought is required here. That 3 times clearing needs some explanation though: That has to do with how Gallium handles some clears, it "bypasses" the driver and does them with quads separately for each buffer. That's bad when NVidia hardware is capable of far better methods.Regarding TTM: Apart from the problem noted above, Nouveau is nearly TTM ready. Basically someone could "just" start to (*ahem* some driver knowledge needed) plug the calls from Nouveau to TTM. Marcheu is sure this can be done differently, keeping objects much longer "pinned" by the TTM. That needs some more technical investigation.

Before you run and starting cheering: There is still some work left, we still have to deal with problems on our side (which I got covered for this issue) as well as with problems on the Gallium side of things. For example, when trying to get reflections working, we noticed that this isn't easy to do with current Gallium. Shortly put: On NVidia it is currently impossible to get glClipPlane() functionality without using shaders. However, exactly that is an assertion of Gallium. Only solution for now: A software fallback, which slows things down quite a bit (Try Neverball with and without reflections if you are curious). Darktama has a patch ready for Gallium which is currently review by the mighty ones of Gallium. Have a look here for a more detailed explanation here.

Other topics, which are worth mentioning:
- Malc0 fixed the broken back light code for Apple laptops.
- Some tests for NV5x mode setting and reverse engineering 3D rendering were done

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.

2
Next Page >>
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. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  2. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  3. F2FS File-System Shows Regressions On Linux 3.10
  4. Previewing The Radeon Gallium3D Shader Optimizations
Latest Linux News
  1. DNF Still Advancing As Experimental Yum For Fedora
  2. Logitech Begins Supporting Linux Users
  3. Modern Intel Gallium3D Driver Still Being Toyed With
  4. Linux 3.10 Kernel Benchmarks On A Core i7 Laptop
  5. GCC 4.8.1 Compiler Due To Be Out Next Week
  6. Linux 3.10 Kernel Benchmarks For Intel Ivy Bridge
  7. Linux's "Ondemand" Governor Is No Longer Fit
  8. Firefox 22 Beta Enables WebRTC Support
  9. OpenSUSE 13.1 Milestone 1 Released
  10. DRM Graphics Driver Comes For Dove/Cubox
  11. JADE: An LLVM-Based Video Decoder For MPEG RVC
Latest Forum Talk
  1. Logitech supports linux!
  2. OpenSUSE Considers Replacing LXDE With E17
  3. Logitech Begins Supporting Linux Users
  4. DRM Moves Ahead With HTML5 Specification
  5. Linux's "Ondemand" Governor Is No...
  6. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  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