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

Christoph Bumiller e0425955 at student.tuwien.ac.at
Fri Oct 7 01:38:55 PDT 2011


On 07.10.2011 04:04, Marek Olšák wrote:
> 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.

Could we please keep GPU_FINISHED, it coincides with the D3D EVENT query
(it doesn't require a call to begin_query, only to end).

And no it's not more natural to how it's done by hardware, nv50+ fences
are also just queries.
(https://github.com/chrisbmr/Mesa-3D/blob/d3d1x/src/gallium/drivers/nvc0/nvc0_query.c#L309)

Thanks.

> Marek
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>



More information about the mesa-dev mailing list