On Tue, Nov 26, 2013 at 09:29:32AM -0800, Chris Wilson wrote:
> On Tue, Nov 26, 2013 at 08:51:22AM -0800, [email protected] wrote:
> > +static const struct drm_i915_cmd_descriptor*
> > +find_cmd_in_table(const struct drm_i915_cmd_table *table,
> > +             u32 cmd_header)
> > +{
> > +   int i;
> > +
> > +   for (i = 0; i < table->count; i++) {
> > +           const struct drm_i915_cmd_descriptor *desc = &table->table[i];
> > +           u32 masked_cmd = desc->cmd.mask & cmd_header;
> > +           u32 masked_value = desc->cmd.value & desc->cmd.mask;
> > +
> > +           if (masked_cmd == masked_value)
> > +                   return desc;
> 
> Maybe pre-sort the cmd table and use bsearch? And a runtime test on
> module load to check that the table is sorted correctly.

So far it doesn't look like the search is a bottleneck, but I've tried to keep
the tables sorted so that we could easily switch to bsearch if needed. Would
you prefer to just use bsearch from the start?

I agree that the module load check makes sense if we do switch.

> -Chris
> 
> -- 
> Chris Wilson, Intel Open Source Technology Centre
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to