On 09/12/2013 09:06 PM, Chia-I Wu wrote:
Hi Brian,
On Fri, Sep 13, 2013 at 8:46 AM, Brian Paul <bri...@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
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev