Browse Source

anv/entrypoints: Expose the different dispatch tables

Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
tags/18.0-branchpoint
Jason Ekstrand 8 years ago
parent
commit
2f493121ae
1 changed files with 12 additions and 8 deletions
  1. 12
    8
      src/intel/vulkan/anv_entrypoints_gen.py

+ 12
- 8
src/intel/vulkan/anv_entrypoints_gen.py View File

}; };
}; };


%for layer in LAYERS:
extern const struct anv_dispatch_table ${layer}_dispatch_table;
%endfor

% for e in entrypoints: % for e in entrypoints:
% if e.guard is not None: % if e.guard is not None:
#ifdef ${e.guard} #ifdef ${e.guard}
% endif % endif
% endfor % endfor


const struct anv_dispatch_table ${layer}_layer = {
const struct anv_dispatch_table ${layer}_dispatch_table = {
% for e in entrypoints: % for e in entrypoints:
% if e.guard is not None: % if e.guard is not None:
#ifdef ${e.guard} #ifdef ${e.guard}
anv_resolve_entrypoint(const struct gen_device_info *devinfo, uint32_t index) anv_resolve_entrypoint(const struct gen_device_info *devinfo, uint32_t index)
{ {
if (devinfo == NULL) { if (devinfo == NULL) {
return anv_layer.entrypoints[index];
return anv_dispatch_table.entrypoints[index];
} }


const struct anv_dispatch_table *genX_table; const struct anv_dispatch_table *genX_table;
switch (devinfo->gen) { switch (devinfo->gen) {
case 10: case 10:
genX_table = &gen10_layer;
genX_table = &gen10_dispatch_table;
break; break;
case 9: case 9:
genX_table = &gen9_layer;
genX_table = &gen9_dispatch_table;
break; break;
case 8: case 8:
genX_table = &gen8_layer;
genX_table = &gen8_dispatch_table;
break; break;
case 7: case 7:
if (devinfo->is_haswell) if (devinfo->is_haswell)
genX_table = &gen75_layer;
genX_table = &gen75_dispatch_table;
else else
genX_table = &gen7_layer;
genX_table = &gen7_dispatch_table;
break; break;
default: default:
unreachable("unsupported gen\\n"); unreachable("unsupported gen\\n");
if (genX_table->entrypoints[index]) if (genX_table->entrypoints[index])
return genX_table->entrypoints[index]; return genX_table->entrypoints[index];
else else
return anv_layer.entrypoints[index];
return anv_dispatch_table.entrypoints[index];
} }


/* Hash table stats: /* Hash table stats:

Loading…
Cancel
Save