<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 29, 2019 at 4:00 AM Pekka Paalanen <<a href="mailto:ppaalanen@gmail.com">ppaalanen@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Sat, 27 Apr 2019 09:38:27 -0400<br>
Marek Olšák <<a href="mailto:maraeo@gmail.com" target="_blank">maraeo@gmail.com</a>> wrote:<br>
<br>
> Those are all valid reasons, but I don't wanna expose swrast for AMD's<br>
> customers.<br>
<br>
Hi Marek,<br>
<br>
is you objection that you will never want to see any software renderer<br>
in the list, or that you don't want to see a software renderer only as<br>
long as it doesn't actually work?<br>
<br>
Why do you not "wanna expose swrast for AMD's customers"?<br>
<br>
Are you talking about swrast specifically or all the software renderers<br>
in Mesa?<br>
<br>
I'm not an AMD customer if you mean someone paying for support rather<br>
than just buying their hardware, so I cannot speak for them. However, I<br>
would be very happy to have a software renderer available to be picked<br>
the same way as any other hardware renderer, so that I can use it in<br>
graphical test suites (a point from Anholt) testing also the EGL glue<br>
in addition to the pixels produced.<br>
<br>
The thing will be run on boxes with AMD GPUs, and in those cases there<br>
must be a way to *not* use the AMD GPU, and use the software renderer<br>
instead when wanted. Not by environment variables or anything hacky<br>
like that, but by deliberately choosing the software renderer in the<br>
program. It will need an EGLSurface too.<br>
<br>
How would this be made to work in the future?<br></blockquote><div><br></div>A software renderer could be exposed by adding a new EGL function on top of EGL_EXT_device_base, for example:</div><div class="gmail_quote"></div><div class="gmail_quote"><pre>// EGL_MESA_device_software<br></pre><pre>EGLBoolean eglQuerySoftwareDeviceMESA(EGLDeviceEXT *swdevice);
</pre></div><div class="gmail_quote"><br></div><div class="gmail_quote">You would get the swrast device from that function instead of eglQueryDevicesEXT. It clearly separates hw and sw devices but keeps everything else the same.<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Marek<br></div></div>