[Mesa-dev] [PATCH 04/11] st/mesa: Use Array._DrawVAO in st_atom_array.c.

Erik Faye-Lund erik.faye-lund at collabora.com
Tue Dec 11 11:05:03 UTC 2018


On Tue, 2018-12-11 at 11:42 +0100, Mathias Fröhlich wrote:
> Erik,
> 
> > Yeah, in both D3D11 and D3D12, InstanceDataStepRate is per element,
> > not
> > per input slot. So I guess this is the most flexible way of
> > describing
> > this, and we'll have to duplicate the bindings in cases like these.
> More an answer to your below question.
> But I think you are giving the answer to your below question
> yourself.
> If we have have something like nine running on top of virgl, we have
> to
> assume that you get in data using DirectX semantics. The argument is
> just you
> can potentially get in data by the current 'on the virtio wire'
> protocol that cannot
> be handled correctly in virglrenderer, so fix that.
> 
> OTOH, you probably want to work around that issue in virgil as well
> as you may
> find yourself with a new distribution with a new mesa running on top
> of an older
> unpatched virglrenderer. To make that work you problably have to emit
> something
> that is known to work with an old and unfixed virgelrenderer in case
> your lower layers
> on the driver stack - virglrenderer - is too old. Just replicate out
> the pipe_vertex_buffers
> for each pipe_vertex_element into the 'virtio wire' when sending that
> to a too old
> and unfixed virglrenderer.
> 
> Means probably you have to fix both sides finally to make them cope
> with
> any combination of fixed and unfixed.

Yeah.

I actually think the nicest fix would do DX->GL semantics
transformations in Mesa rather than in virglrenderer. We don't need to
do exactly the same as gallium.

But to avoid breaking the protocol (and old virglrenderers as you point
out), I guess we'd have to do a 1:1 mapping, which is seems quite
wasteful. So we probably want a "new" and "old" part of the protocol
here.

>  Sorry for braking that in the first place.

This broke because we made some bad assumptions in virglrenderer, I
wouldn't say that's your fault by any reasonable measure :)

Thanks a lot for figuring this one out, though :)



More information about the mesa-dev mailing list