I think the layered stuff should be implemented by one independent group and it should be completely encapsulated from the LM layer.
Otherwise vendors have three options:
-
In fact create a layered API, but sacrificing speed for it.
-
Don’t stick to the layering idea and also optimize some high-level stuff, therefore having an advantage above their competitor.
-
Don’t really care about the layered API at all, forcing everybody to do their own layering on top of LM.
It just feels as if nVidia would take route 2 and ATI route 3, but that’s just speculation.
Anyway, an additional disadvantage would be, that by letting the IHV also do the layered API, the actual problem that we have today (too much work for the driver-writers to do everything right), would not be solved and developers could still not know the quality of the implementation.
If we have ONE layered API and the LM API inside the driver, we would always know the quality of the layered API and errors could be detected and removed easily. If the IHVs also do the layering, we never know, if the problem is in the layered API, in the LM API (in our own code…) and if it makes sense to ditch high-level stuff and get down-dirty just to avoid possible errors in the layered API, thus making the whole layering idea completely pointless in the end.
Jan.