If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

so in the linux ecosystem, we have some paid hardcore developers and we have a lot of hobbyists. hobbyists will never ever individualy on their own design a modern graphics driver thats competitive with todays standards, and thats ok. now as we have seen in the linux graphics stack over the past few years, paid hardcore developers have come a long way in creating a very competative graphics stack, but we really want hobbyists to be a part of that too, and while some have, i think a lot of people while willing a possibly able to conribute, still feel overwhelmed with the complexity of it all.

This is one of the interesting tradeoffs. Do you want the driver to be simple and accessible so more people can potentially contribute, or do you want it to be sufficiently sophisticated that it could potentially match the performance of proprietary drivers at the cost of reducing the pool of potential contributors ?

The current open source driver standards seem to be aimed at the knee of the curve, where they're sufficiently complex to allow writing "fairly performant" without becoming "twice as complex for a small increase in performance". Seems like a good compromise, but it's important to understand that it *is* a compromise.

As an example, the open source drivers have a relatively large amount of common code and a relatively small amount of HW-specific code but if you want to get that last 20% of potential performance you generally need to move the line up and have substantially more of the driver stack being hardware-specific. That makes the driver code larger and more complex, which in turn makes it a lot harder for potential developers to contribute.

getting more the the point i guess, is that if tgsi is a simpler ir to transport between various componants, if i was a newcomer wanting to develop a componant, it would be easier to deal with tgsi. if it is then nessicary to convert it to something more specific to what i am doing, (whitch is what ive been hearing all along is that its too hard to create one all encompasing ir that is perfect for all state trackers and all hardware drivers), then that is what would hae to be done. at least then you could try to make your internal ir something specific to your hardware, for instance, i sure the nvfx/nv30 driver, with its ununified shader cores, is much diferent than the nv50 or nv0c or whatever.

IR is affected both by hardware characteristics and choice of compiler frameworks being used. If everyone settles on a single compiler framework then that IR will probably win -- otherwise TGSI will probably get extended so that it can serve as a common language between the different compiler stacks. The interesting question is whether it will be noticeably faster to convert directly from one structured IR to another, or whether going through a common "flat" IR will be close enough in performance that the benefits outweigh the costs.

it would be best if other parts of gallium had that same kind of mentality, for instance, memory management is one where initialy gallium was sold as being able to abstract memory management compleatly into the sinsys portion of the driver, but whate ive read before is that a lot of the memory management has been implemented in the hardware drivers usualy due to some feature missing from gallium or it just being easier for whoever is doing it to do it in the driver (im guessing proboobly a lot of that comes from the initial testing and learning stages).

The winsys layer was supposed to *abstract* things like memory management not *implement* them. The implementation was always expected to be in the lower level drivers (eg the kernel driver aka drm)-- the Gallium3D abstractions just provide a standard way to call those functions.

Comment

This is one of the interesting tradeoffs. Do you want the driver to be simple and accessible so more people can potentially contribute, or do you want it to be sufficiently sophisticated that it could potentially match the performance of proprietary drivers at the cost of reducing the pool of potential contributors ?

Excuse me for short intervention, but what about complexity of Linux? Was it fatal? Has number of hackers reduced from version 0.01 till recent or increased? We don't get 80% performance, we get 20%. We are missing raw programming resource, everyone knows this. Also, everyone knows we don't achieve this resource by talking it over and over, or by endlessly changing points of view and finding array of arguments. If we are to change something, we are to pick direction and follow it. This will never happen, it is fact. Again, excuse me for interruption.

I think you'll find the average is more like 45-50% these days and continuing to increase. You can still cherry-pick numbers to get 20% (eg recent Llano benchmarks with lower clocks for open source than for Catalyst) but it's getting harder every month.

Agreed - the number of developers per KSLOC is maybe 1/2 as high for the "desktop bits" (X, graphics drivers etc..) as it is for the "server bits" (kernel, filesystems etc..). That is probably related to the higher $$ earned from server Linux business but that's just a guess.

If we are to change something, we are to pick direction and follow it. This will never happen, it is fact.

That's not what happened with the Linux kernel either and my impression was that you thought the Linux kernel was a good example to follow.

Linux started out with fairly basic implementations of all the major functions, then over the years different subsystems were gradually replaced with more complex but more featureful and higher performing implementations. That's the same pattern we are seeing with graphics -- UMS gets replaced with KMS, shader translators get replaced with shader compilers, classic Mesa HW layer gets replaced with Gallium3D layer, layers get blended together for performance (eg Intel plans to use GLSL IR in the graphics HW layer) etc...

That seems like the right approach to me, but it is not consistent with "open source drivers running faster than proprietary drivers in the first couple of years" which is what everyone except the developers seemed to expect. Now I guess the popular sentiment is "things aren't moving as fast as I hoped so open source drivers are always going to suck", which is just as wrong.

Comment

I think you'll find the average is more like 45-50% these days and continuing to increase. You can still cherry-pick numbers to get 20% (eg recent Llano benchmarks with lower clocks for open source than for Catalyst) but it's getting harder every month.

in your rhetoric we only get 45-50% in "LOL-OEM-LOL" products and we get it because the "LOL-OEM-LOL" take care about opensource drivers.

and we get 10-20% performance with the Llano because amd sell these GPUs with there CPUs directly to the customer and no "LOL-OEM-LOL" is there to protect us from AMD's make fun on open-source customers LOL!

amd should really stop to sell APUs to customers directly then maybe the performance increase from 10-20% to 45-50%

i'll take you seriously again if the products AMD sell directly to consumers are on the same performance level than the products from the LOL-OEM-LOL companies.

i can only recommend to buy INTEL if someone don't wanna spend expensive money on a LOL-OEM-LOL graphic card product.

Comment

in your rhetoric we only get 45-50% in "LOL-OEM-LOL" products and we get it because the "LOL-OEM-LOL" take care about opensource drivers.

and we get 10-20% performance with the Llano because amd sell these GPUs with there CPUs directly to the customer and no "LOL-OEM-LOL" is there to protect us from AMD's make fun on open-source customers LOL!

amd should really stop to sell APUs to customers directly then maybe the performance increase from 10-20% to 45-50%

i'll take you seriously again if the products AMD sell directly to consumers are on the same performance level than the products from the LOL-OEM-LOL companies.

i can only recommend to buy INTEL if someone don't wanna spend expensive money on a LOL-OEM-LOL graphic card product.

its magic you are not a AMD customer anymore if you buy your AMD chip hardware from a OEM or Bord-Manufacturer only because the OEM's and Board-Manufacturers buy the chips from AMD and sell it to you LOL! ..

I think you're the last person here that should interpret others rhetoric... And it's even more funny that you mention "the art of being right", because you use at least 3 of the stratagems in each of your post (with your favorite being 14, 20, 36 and the most favorite of yours 38) ;-)

Comment

"And it's even more funny that you mention "the art of being right", because you use at least 3 of the stratagems in each of your post (with your favorite being 14, 20, 36 and the most favorite of yours 38) ;-)"

if you are right here and i'm just using the "The Art of Being Right" then this is the voucher for it that I can see someone doing the same because the same is the same and a dog recognizes a different dog when he barks.