<p>If you believe that it is easier to implement features on your hardware by straying from Gallium or Mesa interfaces, you are welcome to do so.</p>
<p>Posting from a mobile, pardon my terseness. ~ C.</p>
<p><blockquote type="cite">On Apr 11, 2010 6:53 PM, &quot;Luca Barbieri&quot; &lt;<a href="mailto:luca@luca-barbieri.com">luca@luca-barbieri.com</a>&gt; wrote:<br><br>&gt; include this deprecated GL feature<br>
<br>
While it is deprecated by Khronos, I&#39;m not sure it will every go away.<br>
nVidia explicitly states they have no intention to drop the<br>
compatibility profile and even intend to keep it performing optimally.<br>
While I couldn&#39;t find any statement from ATI, it seems unlikely they<br>
would drop it as it would risk send a segment of the market to the<br>
competition.<br>
<br>
Since drivers are likely going to continue supporting it, applications<br>
will tend to use it too.<br>
<br>
Thus. it&#39;s not obvious it will ever go away. I&#39;d guess it never will.<br>
<br>
While hard to implement, it&#39;s actually a very convenient API for the users.<br>
With the OpenGL compatibility subset, it&#39;s easy to, say, draw a<br>
Gouraud shaded triangle.<br>
With DirectX or non-compatibilty OpenGL you have to write shaders,<br>
setup CSOs and setup vertex buffers just for that simple task.<br>
<br>
&gt; as part of gallium, for instance --<br>
&gt; much more likely would be to put some effort into optimizing the VBO<br>
&gt; module, or creating a gallium-specific version of that code.<br>
<br>
An option could be to add the interface to Gallium, but also provide<br>
an auxiliary module to implement in the terms of the rest of it.<br>
This would basically result in moving the VBO module to Gallium, and<br>
wouldn&#39;t have any adverse effects on its usability.<br>
<br>
&gt; If you were absolutely committed to making use of this hardware<br>
&gt; feature, one option might be to use the high vantage point of the<br>
&gt; target/ directory, and allow that stack-constructing code to have<br>
&gt; meaningful things to say about how to assemble the components above<br>
&gt; the gallium driver level.  For instance, the nvidia-gl targets could<br>
&gt; swap in some nv-aware VBO module replacement, which was capable of<br>
&gt; talking to hardware and interacting somehow with the nv gallium<br>
&gt; implementation.<br>
<br>
This is an option, but I&#39;m not sure it is really ideal.<br>
In general, this is a broader problem, and also involves the fixed<br>
function support.<br>
<br>
Several cards have features that are not in the current Gallium model<br>
nor the DirectX 10/GL3/GL4 one, and the classic Mesa interfaces are<br>
being kept to support them, as opposed to extending Gallium with them.<br>
This tends to result in a codebase where Gallium is grafted on the<br>
OpenGL implementation, as opposed to the OpenGL implementation being<br>
built around Gallium.<br>
<br>
Of course, this is how historically Gallium began, but keeping the<br>
classic interfaces makes it very hard to prevent refactoring in the<br>
sense of better integrating Mesa and Gallium.<br>
<br>
Going forward, a choice can be made between:<br>
1. Dropping support for non-DirectX 10-like features and cards<br>
2. Continuing to make those available via the classic Mesa interfaces,<br>
keeping the &quot;split&quot; mesa + mesa/st codebase and maybe adding<br>
&quot;driver-specific state tracker extensions&#39; like the one proposed<br>
3. Making Gallium capable of supporting all hardware features and all<br>
programming models (and porting all classic Mesa drivers to it)<br>
<br>
Currently, (2) is being chosen, which is essentially the &quot;status quo&quot;<br>
historically.<br>
In my opinion, it would be worth considering switching to (3) instead,<br>
and even (1) might be better than (2).<br>
<br>
This would allow to actually have Gallium as the single interface for<br>
all 3D hardware and APIs, making it possible to significantly<br>
streamline Mesa around it, and making it cleaner and more efficient.<br>
Also, all driver efforts would then be concentrated on Gallium, as<br>
opposed to being split between it and classic Mesa, hopefully<br>
resulting in it improving at a faster rate, and actually being the<br>
&quot;definitive&quot; solution it is supposed to be, as opposed to current<br>
&quot;somewhat experimental&quot; status.<br>
<br>
Clearly this is a lot of work, and this may actually prove an<br>
impediment to doing it, but I think in principle this is something to<br>
be considered.<br>
<br>
Some of this was already touched upon in the &quot;Provide dri shared<br>
library building and SDK installation&quot; thread, but only tangentially.<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></p>