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

Chia-I Wu olvaffe at gmail.com
Sun Sep 15 08:31:38 PDT 2013


On Sun, Sep 15, 2013 at 12:24 AM, Brian Paul <brianp at vmware.com> wrote:
> 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?
There is already ilo_bind_sampler_states that does what
pipe_context::bind_sampler_states expects, except that the function
returns a bool.  I can make it return void so that, in your branch,
you can initialize pipe_context::bind_sampler_states to it instead of
adding ilo_bind_sampler_states2.

>
> -Brian
>



-- 
olv at LunarG.com


More information about the mesa-dev mailing list