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

Brian Paul brianp at vmware.com
Sat Sep 14 09:24:30 PDT 2013


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.


> 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



More information about the mesa-dev mailing list