On Mon, Feb 6, 2017 at 5:15 PM, Brian Paul <bri...@vmware.com> wrote:
> On 02/03/2017 02:41 PM, Marek Olšák wrote:
>>
>> On Fri, Feb 3, 2017 at 9:45 PM, Brian Paul <bri...@vmware.com> wrote:
>>>
>>> On 02/01/2017 02:23 PM, Brian Paul wrote:
>>>>
>>>>
>>>> On 01/27/2017 04:00 AM, Marek Olšák wrote:
>>>>>
>>>>>
>>>>> On Fri, Jan 27, 2017 at 10:05 AM, Nicolai Hähnle <nhaeh...@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>>
>>>>>> On 27.01.2017 00:51, Marek Olšák wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> From: Marek Olšák <marek.ol...@amd.com>
>>>>>>>
>>>>>>> For lower memory usage and more efficient updates of the buffer
>>>>>>> residency
>>>>>>> list. (e.g. if drivers keep seeing the same buffer for many
>>>>>>> consecutive
>>>>>>> "add" calls, the calls can be turned into no-ops trivially)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> This makes sense to me, but how are you planning to deal with the bind
>>>>>> flags? They are currently set differently for different upload mgrs.
>>>>>> We
>>>>>> should probably do away with them entirely anyway.
>>>>>
>>>>>
>>>>>
>>>>> Drivers can set the bind flags they need. Some drivers will set all 3
>>>>> bind flags. Other drivers don't have to set any.
>>>>
>>>>
>>>>
>>>> I need to look into this part more closely.  I think we may have trouble
>>>> mixing constants with index/vertex data in our VMware driver...
>>>
>>>
>>>
>>> Marek,
>>>
>>> Your patch series, as-is, did indeed cause trouble with our VMware
>>> driver.
>>> We need to keep constants in a separate buffer.
>>>
>>> The good news is I don't think this is a huge problem and I've updated (a
>>> subset of) your patches to accommodate both your needs and ours.
>>>
>>> The basic idea is to add a pipe_context::get_stream_uploader() hook that
>>> allows drivers to use just one or separate uploaders for
>>> vertex/index/constant data.  Plus, I added a
>>> pipe_context::unmap_stream_uploaders() helper, but this isn't strictly
>>> necessary.
>>>
>>> WIP patch attached (only lightly tested).  Let me know what you think.
>>
>>
>> Can we simply add these 2 fields into pipe_context instead of the
>> callback?
>>
>> pipe_context::stream_uploader // vertex + index
>> pipe_context::const_uploader
>
>
> Yeah, that might work too.  Though, now I have to test the case of vertex
> data and index data being in the same VBO.  We may need three uploader
> pointers...

What's the issue with svga that it needs different buffers for each
type? OpenGL allows the same buffer to be used for vertex, index,
const, even the same buffer range.

Marek
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to