[Mesa-dev] gallium-bind-sampler-states branch

Roland Scheidegger sroland at vmware.com
Mon Sep 16 07:56:15 PDT 2013


Am 14.09.2013 18:24, schrieb Brian Paul:
> On 09/12/2013 09:06 PM, Chia-I Wu wrote:
>> Hi Brian,
>>
>> On Fri, Sep 13, 2013 at 8:46 AM, Brian Paul <brianp at vmware.com> wrote:
>>>
>>> I just pushed a gallium-bind-sampler-states branch to my git repo at
>>> git://people.freedesktop.org/~brianp/mesa
>>>
>>> It replaces the four
>>> pipe_context::bind_fragment/vertex/geometry/compute_sampler_states()
>>> functions with a single bind_sampler_states() function:
>>>
>>>   void (*bind_sampler_states)(struct pipe_context *,
>>>                               unsigned shader, unsigned start_slot,
>>>                               unsigned num_samplers, void **samplers);
>>>
>>> At this point start_slot is always zero (at least for non-compute
>>> shaders).
>>> And as the updated gallium docs explain, at some point calls to
>>> bind_sampler_states() will be used to updated sub-ranges, but that never
>>> happens currently.
>>>
>>> I've updated all the drivers, state trackers, utils, etc.
>>>
>>> I've tested the svga, llvmpipe and softpipe drivers.  'make check' and a
>>> texture subset of piglit pass w/out regressions.  I'd appreciate it
>>> if other
>>> driver developers would test their favorite driver.
>> For ilo, the new code does not follow the doc and unbinds samplers not
>> in range.
> 
> I think that's OK.  The CSO module (used by the state tracker) currently
> always calls pipe_context::bind_sampler_states() with start=0 and count
> such that it sets/replaces all samplers, never a sub-range.  That
> could/should change in the future.
> 
> See single_sampler_done() in cso_context.c.

Not all state trackers use cso though. While this can be fixed later, I
think I'd prefer if the docs would state this isn't really meant to be
that way and should be changed in the future in cso and certainly fixed
in the drivers.

Roland



> 
> 
>> Is it fine if I implement the new bind_sampler_states as a helper
>> function on master branch, so that you hook it up to
>> pipe_context::bind_sampler_states in your branch and remove the old
>> ones?
> 
> I'm not quite sure that I understand what you mean.  Can you elaborate?
> 
> -Brian
> 
> _______________________________________________
> 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