<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed., Dec. 4, 2019, 01:20 Tapani Pälli, <<a href="mailto:tapani.palli@intel.com">tapani.palli@intel.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi;<br>
<br>
On 12/4/19 2:39 AM, Marek Olšák wrote:<br>
> Hi,<br>
> <br>
> Here are 2 proposals to simplify and better optimize the GL->Gallium <br>
> translation.<br>
> <br>
> 1) Move classic drivers to a fork of Mesa, and remove them from master. <br>
> Classic drivers won't share any code with master. glvnd will load them, <br>
> but glvnd is not ready for this yet.<br>
> <br>
> 2) Keep classic drivers. Fork src/mesa for Gallium. I think only <br>
> mesa/main, mesa/vbo, mesa/program, and drivers/dri/common need to be <br>
> forked and mesa/state_tracker moved. src/gallium/state-trackers/gl/ can <br>
> be the target location.<br>
> <br>
> Option 2 is more acceptable to people who want to keep classic drivers <br>
> in the tree and it can be done right now.<br>
> <br>
> Opinions?<br>
> <br>
<br>
I'm still quite newbie with gallium side of things and I'd like to know <br>
more about the possible simplifications and optimizations that could be <br>
done if this happened. Is this more about 'cleaning up the tree' or are <br>
there also some performance opportunities we are missing right now with <br>
current state?</blockquote></div></div><div dir="auto"><br></div><div dir="auto">It's possible to reduce CPU overhead even more by moving state translation from st_validate_state to GL functions. This is possible already, but at the cost of effectively adding dead code to classic drivers. In theory we could do slightly better without classic drivers, but we don't know for sure.</div><div dir="auto"><br></div><div dir="auto">If we had nir_to_tgsi, we could remove TGSI support from st/mesa. Option 1 would leave st/mesa as the only consumer of Mesa IR and GLSL IR, so both IRs could be eliminated in favor of NIR more easily. Although I guess a simpler option is not to touch anything.</div><div dir="auto"><br></div><div dir="auto">Marek</div><div dir="auto"><br></div><div dir="auto">Marek</div><div dir="auto"></div></div>