[Mesa-dev] [PATCH RFC] gallium: interface changes necessary to implement transform feedback

Marek Olšák maraeo at gmail.com
Thu Oct 6 19:04:04 PDT 2011


On Fri, Oct 7, 2011 at 3:21 AM, Zack Rusin <zackr at vmware.com> wrote:
> On Thursday, October 06, 2011 04:58:45 PM Marek Olšák wrote:
>> I am cc'ing Zack, because he was the one to design the first interface.
>
> Hi Marek.
>
> I'm swamped right now and won't have time to review the patches. FWIW, the
> interface initially did have the stream output data in the shader state,
> ultimately though Keith and I just didn't like it. I don't quite remember what
> the issue was. Also I noticed you removed draw stream output auto, which seems
> useful interface wise because it allows rendering without needing to know the
> amount of data that was written to the buffers.

The draw auto functionality was moved to pipe_draw_info.

>
> Ultimately though I think this is a perfect feature to implement in a feature
> branch. Interface changes just for the purpose of interface changes always
> endup badly. We've been huge offenders in the past because we were working on
> proprietary state trackers but we shouldn't go that road again and we should
> require that interface changes always go along an implementation.
> It just makes it a lot easier to see how everything fits together.

That's exactly my plan. It won't a Mesa branch though -- I like to
rebase and modify commits all the time.

>
>> more concerned about the queries. There is PIPE_QUERY_GPU_FINISHED,
>> which looks equivalent to fences. Besides that,
>> PIPE_QUERY_PRIMITIVES_EMITTED is a strict subset of
>> PIPE_QUERY_SO_STATISTICS, which returns a structure instead of one
>> number.
>
> Yes, the primitives emitted should go and so statistics should stay as it is.
> The d3d query model is nicer than the GL one, so I'd strongly suggest to
> follow it.
> http://msdn.microsoft.com/en-us/library/windows/desktop/bb205335(v=vs.85).aspx

I agree with the so queries, but I'd like to keep fences and not
GPU_FINISHED. The fences seem more natural to how it's done under the
hood. Both can be implemented easily though.

Marek


More information about the mesa-dev mailing list